【问题标题】:Should we always create classes annotated with Spring annotations?我们是否应该始终创建带有 Spring 注解的类?
【发布时间】:2023-02-21 00:09:23
【问题描述】:

我有一个服务类,它执行标准的 crud 操作,但是我想验证以前和当前实体之间的差异。我用公共非静态方法创建了一个单独的类,该方法执行一些操作并返回布尔值。此类不是通过服务中的构造函数注入的,而是通过 new 关键字创建的。好不好?是否应该将此类注释为组件?此外,如果调用此类来执行此验证,则似乎很难测试此类服务。

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    我建议使用 @Component 注释,或者如果您将该类中的代码视为业务逻辑的一部分,我会为它使用 @Service 注释。

    在我看来,当您使用注释和依赖注入来创建类的对象时,代码会更清晰。当您的代码增长并且您已使用 new 构造函数在多个位置自行初始化类时,重新处理它可能会很耗时。

    不使用 Component 注释时会丢失一些东西:

    • 从应用程序 yaml 注入属性
    • 注入其他组件
    • @Transactional
    • ...以及所有其他弹簧魔法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-30
      • 2015-07-06
      • 2016-12-05
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      相关资源
      最近更新 更多