我正在研究一个代码库,其中每个POJO都由spring管理,并使用lookup annotation
注入。
@Lookup
public Publisher getPublisher() {
return new Publisher();
}
@Lookup
public Book getBook() {
return new Book();
}
这些Publisher和Book对象只是POJO,只有getter / setter。这些类是作为原型bean进行弹簧管理的。我在想,它是过度使用查找注释和开销,我们可以只使用工厂方法或只是创建新实例。您是否认为对此用例使用查找注释有用/高效?
答案 0 :(得分:1)
一般来说,如果从不需要这些bean来利用Spring功能,并且如果这些bean永远不会被注入其他bean或者从不需要在其他bean中注入其他bean,那么使类的实例与某些spring bean无关自己的实例。
@Lookup
是旧XML lookup-method
属性的基于注释的方式。除了使用此注释创建的bean也有多个限制。对于新项目,我从不使用它
作为替代,您需要在java类中声明bean,@Bean
注释创建"不限制"通常应该优先考虑豆而不是。
编辑:
I wrote an answer昨天提到了一个非常相关的问题:Spring - is using new a bad practice? 我刚刚将其更新为更详尽。