在Java的POJO类中添加@Component或@Bean很好吗?

时间:2018-09-04 06:51:37

标签: spring spring-boot

该对象的作用域在方法级别 ,用 @Componet或@Bean以及范围请求或原型,以便我们可以将其注入所需的类中,以避免手动进行对象实例化。

这是一个好习惯吗?

1 个答案:

答案 0 :(得分:2)

要注释什么?

在Spring Framework中,仅在标有@Configuration的类中使用@Bean注释。

尽管可以在@Component类中使用@Bean,但不建议这样做,因为您将创建轻型bean(这被认为是不好的做法)。

何时使用@Bean与@Component?

黄金法则,在您自己的分类中使用@Component(或@Service),并使用@Configuration + @Bean作为第三方代码。

不使用@Component或@Bean注释的内容

不要注释域类或实体(例如您的人员类),仅注释被认为是无状态的类。 (就像您的ManagerPerson类一样。)

请勿注释您的DTO。

如果您当前有任何注释,我强烈建议您先跳回到Spring Framework教程。

请注意:这仅适用于@Component和@Bean,其他注释(如@Entity)适用于您的域类(如Person类)。

那范围呢?

去看看https://www.baeldung.com/spring-bean-scopes

只有一对,即:

  • 单例(默认范围)应用程序的单个Spring Bean实例-在整个应用程序中使用的同一实例。)
  • 原型(用于任何地方的新bean)
  • 请求(每个请求的Spring Bean仅适用于Spring MVC)
  • 会话(每个会话的Spring Bean仅适用于Spring MVC)
  • 自定义范围(是,您可以创建自己的...,但不能;))