Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何设计Play2 java应用程序以符合;第二个游戏“思考”;_Java_Playframework 2.1 - Fatal编程技术网

我应该如何设计Play2 java应用程序以符合;第二个游戏“思考”;

我应该如何设计Play2 java应用程序以符合;第二个游戏“思考”;,java,playframework-2.1,Java,Playframework 2.1,我正在用Java构建一个Play2应用程序,它将接收两个电话号码,并将其发送到发送SMS的rest服务 我已经创建了一个控制器,我认为该控制器将处理请求,执行对Java列表的解组。然后我考虑创建一个SmsService类来处理调用。我不明白的是我应该如何以Play2的方式实现这个 我是否在控制器中通过键入new来实例化SmsService?或者我使用 依赖注入?也许我会被我的春天背景染上颜色,忘掉一切吧 注入并写入控制器中的所有内容?可能会使方法保持静态 并使用类似于SmsService.sen

我正在用Java构建一个Play2应用程序,它将接收两个电话号码,并将其发送到发送SMS的rest服务

我已经创建了一个控制器,我认为该控制器将处理请求,执行对Java列表的解组。然后我考虑创建一个SmsService类来处理调用。我不明白的是我应该如何以Play2的方式实现这个

我是否在控制器中通过键入new来实例化SmsService?或者我使用 依赖注入?也许我会被我的春天背景染上颜色,忘掉一切吧 注入并写入控制器中的所有内容?可能会使方法保持静态 并使用类似于SmsService.sendSms(数字)的SMSSService

我已经检查了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);
    }
}
公共类Sms扩展控制器{
私有静态最终ObjectMapper mapper=新ObjectMapper();
@Of(value=BodyParser.Json.class)
公共静态结果inviteToReview(){
ObjectNode result=Json.newObject();
JsonNode json=request().body().asJson();
if(json==null){
结果。put(“状态”、“KO”);
结果。输入(“消息”、“丢失的电话号码列表[电话号码]”);
返回请求(结果);
}
列表编号=新的ArrayList();
TypeReference collectionType=新的TypeReference(){
};
试一试{
numbers=mapper.readValue(json.get(“电话号码”),collectionType);
}捕获(IOE异常){
//处理错误
}
SmsService SmsService=新SmsService();
结果=smsService.sendSms(数字);
返回ok(结果);
}
}

既然我现在得到了答案,我就这样做了

全球:

public class Global extends GlobalSettings {

    private static final Injector INJECTOR = createInjector();  

   /**
     * Need for injection.
     *
     * @param controllerClass
     * @param <A>
     * @return
     * @throws Exception
     */
    @Override
    public <A> A getControllerInstance(Class<A> controllerClass) throws Exception {
        return INJECTOR.getInstance(controllerClass);
    }

    private static Injector createInjector() {
        return Guice.createInjector();
    }
}
建造:

val appDependencies = Seq(
      javaCore,
    "com.google.inject" % "guice" % "3.0",    
  )
GET /sms/invite    @controllers.Sms.invite()
val appDependencies = Seq(
      javaCore,
    "com.google.inject" % "guice" % "3.0",    
  )