在Java的POJO类中添加@Component或@Bean好不好?
Posted
技术标签:
【中文标题】在Java的POJO类中添加@Component或@Bean好不好?【英文标题】:Is it good to add @Component or @Bean in POJO classes in Java? 【发布时间】:2019-02-09 03:19:21 【问题描述】:我的对象作用域在方法级别,用POJO类装饰好不好 @Componet 或 @Bean 具有范围请求或原型,以便我们可以将其注入所需的类中,以避免手动进行对象实例化。
这是一个好习惯吗?
【问题讨论】:
POJO 不应该有 anny 注释 感谢 Jens,可用于在服务器端验证的 bean 验证注释呢?你是说我们不应该在模态对象(POJO)中使用这样的 【参考方案1】:注释什么?
在 Spring Framework 中,仅在标有@Configuration 的类中使用@Bean 注解。
虽然可以在@Component 类中使用@Bean,但不建议这样做,因为您将创建轻量bean(这被认为是不好的做法)。
什么时候使用@Bean vs @Component?
黄金法则,在自己的类中使用@Component(或@Service),在第三方代码中使用@Configuration + @Bean。
什么不能用@Component 或@Bean 注释
不要注释域类或实体(例如你的 person 类),只注释被认为是无状态的类。 (就像你的 ManagerPerson 类)。
不要注释你的 DTO。
如果您目前有任何这些注释,我强烈建议您首先跳回 Spring Framework 教程。
注意这仅适用于@Component 和@Bean,@Entity 等其他注解适用于您的域类,如 Person 类。
范围呢?
去看看https://www.baeldung.com/spring-bean-scopes
只有一对:
单例(默认范围) 应用程序的单个 Spring Bean 实例 - 在整个应用程序中使用的同一实例。) 原型(新的 bean 用于任何地方) Request(Spring Bean per Request 仅适用于 Spring MVC) Session(Spring Bean per Session 仅适用于 Spring MVC) 自定义范围(是的,您可以创建自己的...但不要;))【讨论】:
以上是关于在Java的POJO类中添加@Component或@Bean好不好?的主要内容,如果未能解决你的问题,请参考以下文章