正在创建对象by hand,即使用new
操作员而不是注册Spring
bean 和使用依赖注入被认为是不好的做法吗?我的意思是,确实Spring IoC
容器必须了解应用程序中的所有对象吗?如果是这样,为什么?
你希望 Spring 创建 bean对于以下课程:
- 你想要/需要在其他 bean 中注入实例
- 您需要在它们自己的实例中注入bean(或依赖项)。
- 您希望它们受益于 Spring 功能(实例化管理、事务管理、Spring 授权的代理类,例如存储库/拦截器等等......)
服务、控制器或拦截器就是其中的例子。
例如,控制器可能需要注入服务或拦截器。
您也不想通过为每个类实现单例模式来处理这些类的实例化。这可能容易出错并且需要样板代码。
所以您希望所有这些类都是由 Spring 管理的 bean。
但你不想 Spring 创建 bean对于以下课程:
- 你不想/不需要在其他 bean 中注入实例
- 你不需要在它们自己的实例中注入bean(或rdependency)
- 你不需要它们从 Spring 功能中受益
实体、DTO、值对象就是其中的示例。
例如,一个实体永远不需要作为依赖项注入到另一个实体或服务中,因为实体不是在容器启动时创建的,而是通常在方法内部创建的,并且其范围仅限于方法的生命周期。
而且您不需要 Spring 创建生命周期为方法的实例。这new
操作员做得很好。
因此将它们定义为 bean 实例是没有意义的,甚至显得违反直觉。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)