我的应用程序中有一些模型对象或所谓的POJO对象。 这些对象仅用于存储数据,不会执行任何操作。
我知道在大多数情况下,Spring Beans不是POJO。例如,我主要将DAO,服务,控制器类声明为Spring Beans。
但是如果我用新关键字初始化POJO甚至是List对象 我将它紧密地耦合到实现类。
因此,如果稍后某人将扩展我的POJO以添加一些成员变量,他将无法将其注入服务类。
我想过使用Application context Aware来做这件事,但后来我把我的应用程序紧密地耦合到了Spring。
所以我的问题是
初始化POJO对象的最佳方法是什么,以后可以扩展。 我更喜欢使用spring Spring IOC容器
答案 0 :(得分:1)
首先,我并不担心将代码绑定到实现类。您是正确的,因为IoC用于为代码库提供灵活点(扩展而不是修改),但除非您正在编写框架,否则没有理由不使用{{1用于实例化POJO的关键字。当有人要扩展您的POJO时,他们很可能有足够的能力将扩展注入相关服务。
如果你真的想使用Spring,你必须在IoC容器中注册一个bean。如果你不想要单例,你可以使用new
让Spring在每次请求bean时实例化一个新实例:
@Scope