【问题标题】:@Inject a Controller@Inject 控制器
【发布时间】:2011-12-12 23:26:39
【问题描述】:

我们实际上是在尝试注入不同的控制器类来实现精简版和完整版。

我们看一下 spring 和 guice,所有文档都即将注入变量,例如

@inject
static MyBean bean;

但是是否可以为这样的类进行注入声明

@Inject
public class MyRealBean implement MyBean

?

我认为不是,但也许... ;) 所以问题是,将控制器的注入注解放在播放框架中的什么位置。 我想出了一种技巧,但我对此并不幸运。 我创建了一个包装控制器,它拥有 bean-controller 并将所有消息发送给它。

public Wrapper extends Controller {
@Inject
static MyBean bean;

public static void index() {
    bean.index();
}

也许有人知道更好的方法,或者我们走错了路……

谢谢

【问题讨论】:

  • 对我来说你想要达到的目标并不明显,试着用更多描述性的例子来解释你的问题。

标签: dependency-injection playframework guice


【解决方案1】:

@Inject注解放在构造函数之前。

【讨论】:

  • 好的,我们尝试了,并在 AbstractModule 实现中绑定了一个构造函数来绑定正确的类(参见code.google.com/p/google-guice/wiki/ToConstructorBindings)。并创建构造函数public MyRealBean(MyBean bean){};。但现在我们得到一个 IllegalStateException:Unable to create Guice injector 错误
  • 您是否正在创建一个扩展 AbstractModule 的类并在某处执行以下操作:Guice.createInjector(new YouModule())?
  • @caarlos0 我做的正是你写的这样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 2016-07-12
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多