java – Play框架依赖注入
我一直在寻找一些有关如何在Play Framework 2.1中使用Guice /
Spring DI的有用信息
我想要做的是在一些DAO中注入几个服务,反之亦然. 只需要对此进行一些澄清 – 使用play 2.1,你是否必须在路径文件中使用@ annotation进行DI? 我在这里查看了这个指南 – https://github.com/playframework/Play20/blob/master/documentation/manual/javaGuide/main/inject/JavaInjection.md 并应用以下步骤在app中创建Global类并在Build.scala中添加GUICE依赖项,但在调用注入的对象时继续获取空指针异常. 有没有人能够使用Guice在Play 2.1中使用DI?我在互联网上看到了一些例子,但他们似乎都在控制器中使用DI. 解决方法
我注意到你正在使用Java.以下是我如何使用它来注入控制器.
首先,我创建了以下4个类: myController的: package controllers; import play.mvc.*; import javax.inject.Inject; public class MyController extends Controller { @Inject private MyInterface myInterface; public Result someActionMethodThatUsesMyInterface(){ return ok(myInterface.foo()); } } MyInterface的: package models; public interface MyInterface { String foo(); } MyImplementation2Inject: package models; public class MyImplementation2Inject implements MyInterface { public String foo() { return "Hi mom!"; } } MyComponentModule: package modules; import com.google.inject.AbstractModule; import models.MyInterface; import models.MyImplementation2Inject; public class ComponentModule extends AbstractModule { @Override protected void configure() { bind(MyInterface.class). to(MyImplementation2Inject.class); } } 现在最后一部分,我花了很长时间才弄清楚,是注册模块.您可以通过将以下行添加到application.conf文件的末尾来执行此操作,该文件位于conf目录中: play.modules.enabled += "modules.MyComponentModule" 我希望这对你有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |