9

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

Play 2.0 有一个 Guice 插件,但它看起来在 2.1 时会过时,我有一种预感,即 2.1 不再那么远了。

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

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

4

1 回答 1

9

我会选择 2.1 版本,以及来自 Global 对象的新控制器实例。

这是文档中的 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();
    }

  }

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

GET    /myUrl       @controllers.MyController.myMethod()

你也可以看看这个使用 Spring 的演示:https ://github.com/guillaumebort/play20-spring-demo

于 2012-11-13T10:03:15.860 回答