我正在使用 Java 构建一个 Play2 应用程序,它将接收几个电话号码并将其发布到发送 SMS 的休息服务。
我创建了一个控制器,我认为控制器将处理请求,执行解组到 Java 列表。然后我正在考虑创建一个 SmsService 类来处理调用。我无法理解的是我应该如何以 Play2 方式实现这一点。
我是否在 Controller 中通过键入 new 来实例化 SmsService?还是我使用依赖注入?也许我会被我的 Spring 背景着色,忘记所有关于注入并在 Controller 中编写所有内容?也许将方法设为静态并使用 SmsService 之类的 SmsService.sendSms(numbers)
我已经检查了 Play2 的 2.1 文件夹后面的示例,但那里的示例不处理这种情况。我可能错过了文档中的某些内容。
你会怎么做?为什么?
短信控制器:
public class Sms extends Controller {
private static final ObjectMapper mapper = new ObjectMapper();
@BodyParser.Of(value = BodyParser.Json.class)
public static Result inviteToReview() {
ObjectNode result = Json.newObject();
JsonNode json = request().body().asJson();
if(json == null) {
result.put("status", "KO");
result.put("message", "Missing phone number list [phone_numbers]");
return badRequest(result);
}
List<String> numbers = new ArrayList<String>();
TypeReference collectionType = new TypeReference<ArrayList<String>>() {
};
try {
numbers = mapper.readValue(json.get("phone_numbers"), collectionType);
} catch (IOException e) {
// handle error
}
SmsService smsService = new SmsService();
result = smsService.sendSms(numbers);
return ok(result);
}
}