いくつかの電話番号を受け取り、SMS を送信する残りのサービスに投稿する Java を使用して Play2 アプリケーションを構築しています。
コントローラーを作成しましたが、コントローラーがリクエストを処理し、Java リストへのアンマーシャリングを実行すると考えています。次に、呼び出しを処理する SmsService クラスを作成することを考えていました。私が理解できないのは、これを Play2 の方法で実装する方法です。
Controller で、new と入力して SmsService をインスタンス化しますか? それとも、依存性注入を使用しますか? 多分私は春のバックグラウンドに彩られ、インジェクションのことはすべて忘れて、コントローラーにすべてを書きますか? おそらくメソッドを静的にして、SmsService.sendSms(numbers) のような SmsService を使用します。
Play2 の 2.1 フォルダーに続くサンプルを確認しましたが、そこにあるサンプルはこのケースを処理しません。私はおそらくドキュメントで何かを見逃しています。
これをどのように行いますか。また、その理由は何ですか。
SMS コントローラー:
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);
}
}