Spring查找方法注释过度使用

时间:2018-04-24 14:32:00

标签: java spring spring-boot

我正在研究一个代码库,其中每个POJO都由spring管理,并使用lookup annotation注入。

@Lookup
public Publisher getPublisher() {
    return new Publisher();
}

@Lookup
public Book getBook() {
    return new Book();
}

这些Publisher和Book对象只是POJO,只有getter / setter。这些类是作为原型bean进行弹簧管理的。我在想,它是过度使用查找注释和开销,我们可以只使用工厂方法或只是创建新实例。您是否认为对此用例使用查找注释有用/高效?

1 个答案:

答案 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? 我刚刚将其更新为更详尽。