我用@Inject注入了一个实现类的接口
FlowProcessManager ;
也使用Aop将其添加了
Aop.addMapping(FlowProcessManager.class,FlowProcessService.class);
但是却无法获取FlowProcessManager实例,返回null值;在另外一个方法中,却可以获取。十分不解。
Aop.get(...) 获取
@Inject 可以使用的地方如下:
1:Controller 中
2:Interceptor 中
3:Validator 中
4:以上三个组件注入的组件的子组件,例如:
MyController 中使用 @Inject Aaa 注入了 Aaa 对象, Aaa 中又使用了 @Inject Bbb 注入了 Bbb 对象,这样可以一直无限注入下去
简单说,只要是从上述三个组件开始注入的,就可以一直不停地注入下去
但是,假定你有一个 MyKit , 该类的实例化对象如果是在上述三个组件中注入的是可以的,否则需要使用 Aop.get(...)
上述机制的原因如下:
使用 @Inject 注入需要 jfinal 接管对象的创建,而 Controller、Interceptor、Validator 组件的创建本身就是 jfinal 接管的,所以在这三类组件中可以使用 @Inject
文档中已经说得很详细:
https://www.jfinal.com/doc/4-5
注意看红色字体强调的部分