k13*_*13i 5 java spring dependency-injection inversion-of-control new-operator
是手动创建对象,即使用new运算符而不是注册Springbean并使用依赖注入被认为是不好的做法?我的意思是,Spring IoC容器必须知道应用程序中的所有对象吗?如果是这样,为什么?
您希望 Spring 为以下类创建 bean:
服务、控制器或拦截器就是其中的例子。
例如,控制器可能需要注入服务或拦截器。
以及您不想通过为每个类实现自己的单例模式来处理这些类的实例化。这可能容易出错并且需要样板代码。
所以您希望所有这些类都是由 Spring 管理的 bean。
但是您不希望 Spring为以下类创建 bean:
实体、DTO、值对象就是其中的例子。
例如,实体永远不需要作为依赖项注入到另一个实体或服务中,因为实体不是在容器启动时创建的,而是通常在方法内部创建的,并且范围仅限于方法的生命周期。
以及您不需要 Spring 来创建生命周期是一种方法的实例。该new运营商做得很好的工作。
因此,将它们定义为 bean 实例是没有意义的,而且看起来甚至违反直觉。
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |