Spring bean是否必须始终是POJO?
有没有其他方法可以创建一个不是POJO的bean?
答案 0 :(得分:4)
Spring bean可以是任何东西。可以通过xml或Java-Config配置可以正常实例化的类(即Java Bean或任何其他常规类)。
任何更复杂的事情都可以通过FactoryBean创建。
所以,回答你的问题:任何Java对象都可以成为一个Spring Bean。
答案 1 :(得分:2)
我认为存在误解
POJO表示Plain Old Java Object。
它指的是一个不受框架扩展困扰的Java对象。
我们将Spring与POJO联系起来表示,使用Spring,bean保持简单,可测试,适应性等等,而不是或者很少与特定的框架接口或实现相结合。
POJO通常使用诸如XML或代码注释之类的元数据(通常优选较为冗长且直接位于相关类中)来将bean与框架绑定,从而带来低耦合。
POJO可能与作为EJB 2.X的侵入式框架相对立,从而在bean和EJB框架之间创建了强大的耦合。
现在,您的咖啡豆可能是POJO
当然,出于解释的原因,应该推广第一种方式
通过使用Spring,您通常没有理由不为您的bean专门使用POJO类,因为POJO更好,而Spring通常不会强迫您将bean类耦合到某些特定的Spring类或接口。
请注意,在某些情况下,我们必须将您的bean类中的Spring框架类耦合到一起,因为您希望从Spring功能增强中受益,例如Spring Repository
。
但在这些情况下,你会得到更多"而不是一个豆。