春季托管与非托管Bean

时间:2018-07-04 15:59:32

标签: spring containers autowired

我有一个简单的Result数据持有者对象,该对象从方法中返回。

我对使用Spring Boot使用或创建此对象的正确方法感到困惑。

  1. 该类是否应使用@Component注释标记?
  2. 我可以只使用'new Result()'创建该对象吗?还是应该自动装配并使用它?
  3. 如果我使用“ new Result()”,那么该实例将不受Spring的管理。这种理解正确吗?托管和非托管Bean的优缺点是什么?

谢谢, 苏达

1 个答案:

答案 0 :(得分:0)

  

如果我使用'new Result()',那么该实例将不受Spring的管理。这种理解正确吗?托管与非托管Bean的优缺点是什么?

最大的区别是控制反转 IoC(又称​​依赖注入 DI)。如果Result由spring管理,则可以自动装配其他spring bean(例如服务,组件,存储库等),而且可以将Result bean自动装配到其他spring bean。更多详细信息,请参见here

  

我可以只使用'new Result()'创建该对象吗?还是应该自动装配并使用它?

这取决于您的情况。例如,如果您在Spring控制器中具有JSON响应,那么在这种情况下,最好使用经典的POJO并创建它,因为它取决于您的业务逻辑。 另一方面,您的bean是一种服务,可以在项目的其他地方使用,因为它提供了一些方法,在这种情况下,我想将其自动接线并使其成为弹簧bean是很好的

  

该类是否应使用@Component注释标记?

正如我之前所说,这取决于您的情况。在您描述的情况下(一种方法的结果),也许最好使用经典的POJO。但是您没有提供足够的信息