【Spring】- @Lookup
原创
©著作权归作者所有:来自51CTO博客作者笨笨小菜鸟的原创作品,请联系作者获取转载授权,否则将追究法律责任
【使用场景】
- 当我们在一个单例Bean中需要引用一个原型Bean时,可以使用@Lookup方法注解
- 只能用于抽象类或接口中的方法定义,且必须在单例Bean中使用,否则会出现无限递归调用的问题
【注意事项】
- @Lookup 注解只能用于方法上,并且这个方法必须是抽象方法即不能是 final 方法。(注:官方推荐使用抽象方法,但网上有案例使用的普通方法)
- 返回类型必须是一个实现类,且该类需要由spring容器管理
【官方demo】
public Object process(Object commandState) {
Command command = createCommand();
command.setState(commandState);
return command.execute();
}
@Lookup("myCommand")
protected abstract Command createCommand();
参考文献:Method Injection :: Spring Framework