我们有一个新的 Play 2.0 项目,我们计划在添加一些复杂的第 3 方集成代码时引入 DI。
Play 2.0 有一个 Guice 插件,但看起来它将在 2.1 中过时,而且我有预感 2.1 已经不远了。
https://github.com/typesafehub/play-plugins/tree/master/guice https://github.com/typesafehub/play-plugins/tree/master/guice
Guice 是 Play 2.0/2.1 的安全选择还是我们应该考虑其他选择?
我会选择 2.1 版本,以及来自 Global 对象的新控制器实例化。
这是来自的 Guice 示例doc https://github.com/playframework/Play20/blob/master/documentation/manual/javaGuide/main/inject/JavaInjection.md:
import play.GlobalSettings;
import com.google.inject.Guice;
import com.google.inject.Injector;
public class Global extends GlobalSettings {
private static final Injector INJECTOR = createInjector();
@Override
public <A> A getControllerInstance(Class<A> controllerClass) throws Exception {
return INJECTOR.getInstance(controllerClass);
}
private static Injector createInjector() {
return Guice.createInjector();
}
}
您必须为这些控制器声明特殊的路由,并使用特殊的@
:
GET /myUrl @controllers.MyController.myMethod()
您还可以使用 Spring 看一下这个演示:https://github.com/guillaumebort/play20-spring-demo https://github.com/guillaumebort/play20-spring-demo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)