我有一个DecoraManager实现:AppDecoraManager,并希望注入一个服务,例如:FooService作为:
@PetiteInject
FooService fooService;
当调用resolveDecorator((时,我想使用fooService来确定一些参数,但它的值为null。
这可能是什么原因,我该如何解决?
DecoraManager
由DecoraServletFilter
中的servlet容器创建。
目前,还没有与现有的Petite IOC集成,因此您必须执行以下操作:
- 首先,您需要有一个对
PetiteContainer
的公共静态引用。例如,在创建容器的过程中存储它 - 在实现中覆盖
createDecoraManager()
- 在
DecoraManager
的实现中使用PetiteContainer.wire(this)
到目前为止,这是唯一的方法。
另一种选择是:
- 将
DecoraManager
注册为@PetiteBean
- 再次获取对
PetiteContainer
的静态引用 - 在
createDecoraManager
中,使用PetiteContainer.get()
获取实例
在第一个示例中,DecoraManager
刚刚连线;在第二个示例中,它也存储在Petite容器中。