播放2.0/2.1 for Java和依赖注入

Pet*_*rta 9 java dependency-injection guice playframework-2.0 playframework-2.1

我们有一个新的Play 2.0项目,我们计划在添加一些复杂的第三方集成代码时引入DI.

有一个适用于Play 2.0的Guice插件,但看起来它在2.1时已经过时了,我有一种预感2.1不再那么远了.

https://github.com/typesafehub/play-plugins/tree/master/guice

Guice是Play 2.0/2.1的安全赌注,还是我们应该考虑其他选择?

nde*_*rge 9

我将使用2.1版本,以及来自Global对象的新控制器实例化.

这是来自doc的Guice示例:

  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();
    }

  }
Run Code Online (Sandbox Code Playgroud)

你必须为这些控制器声明一个特殊的路由,特殊的@:

GET    /myUrl       @controllers.MyController.myMethod()
Run Code Online (Sandbox Code Playgroud)

您还可以使用Spring查看此演示:https://github.com/guillaumebort/play20-spring-demo