Spring Configuration类放置最佳实践

时间:2020-04-20 08:55:57

标签: java spring spring-boot

我使用配置类(带有@Configuration注释的Java类)来配置我的bean。总的来说,我想避免使用构造型注释(例如@Service@Component),而不必对整个项目进行组件扫描。

在哪里放置我的配置类是否有最佳实践?我想到了不同的设置:

  • 将配置类放在模块根目录下的单独包中
- src
 - config
  - SomeServiceConfiguration.class
 - dao
 - controller
 - service
  - SomeService.class

SomeService中注册SomeServiceConfiguration bean的位置。我最大的问题是,您失去了使用可见性修改器的机会。每个类都必须在每个包中都是公共的,以构造Bean,这在较大的项目中可能真是无可奈何。好处是,我显然可以扫描config软件包以注册我的bean。

  • 将配置类与要注册的类放在同一包中
- src
 - dao
 - controller
 - service
  - SomeService.class
  - SomeServiceConfiguration.class

这允许您使用可见性修饰符,但是管理配置文件变得很麻烦。现在,您的配置文件遍布整个应用程序,您将需要投入更多精力来管理它们。尽管我开始认为这可能是一种有利的方法。

社区有没有首选的方法?较大的项目首选哪一个?哪一个规模最佳?请注意,我不想使用构造型注释。

1 个答案:

答案 0 :(得分:0)

但是管理配置文件变得很麻烦。您的配置文件现在遍及整个应用程序,您将需要付出更多的努力来管理它们

不同意。如果您知道必须修改特定控制器Bean的定义,那么您就会知道-> Caused by: org.postgresql.util.PSQLException: ERROR: cannot cast type bytea to bigint

这可能取决于您拥有的bean的数量...您应该避免使用具有大量bean定义的大型类...因此,根据这一点,分割还是不分割会更好...