Java Spring配置课程安排最佳实践
我使用配置类(带有Java Spring配置课程安排最佳实践,java,spring,spring-boot,Java,Spring,Spring Boot,我使用配置类(带有@configuration注释的Java类)来配置我的bean。一般来说,我希望避免原型注释(如@Service和@Component)和组件扫描我的整个项目 在将配置类放在何处有什么最佳实践吗?我想到了不同的设置: 将配置类放在模块根级别的单独包中 您可以在SomeServiceConfiguration中注册SomeServicebean。我最大的问题是,您失去了使用可见性修改器的机会。为了构造bean,每个包中的每个类都必须是公共的,这在更大的项目中可能是一个真正的
@configuration
注释的Java类)来配置我的bean。一般来说,我希望避免原型注释(如@Service
和@Component
)和组件扫描我的整个项目
在将配置类放在何处有什么最佳实践吗?我想到了不同的设置:
- 将配置类放在模块根级别的单独包中
SomeServiceConfiguration
中注册SomeService
bean。我最大的问题是,您失去了使用可见性修改器的机会。为了构造bean,每个包中的每个类都必须是公共的,这在更大的项目中可能是一个真正的麻烦。好处是我可以扫描config
包来注册我的bean
- 将配置类与要注册的类放在同一个包中
controller/config
这可能取决于你有多少豆子。。。您应该避免使用大量bean定义的大型类。。。因此,根据这一点,最好是拆分或不拆分…组件扫描整个应用程序有什么问题?主要是应用程序启动速度较慢。这对于更大的项目来说是相当可观的。如果您关心自动缩放的应用程序启动速度,我建议查看
@ComponentScan(lazyInit=true)
和@Lazy
。在开发过程中,您只需寻找注释来找出不同组件的位置,以及过度阅读初始化这些组件的过程代码,就可以节省大量时间。尤其是大型项目;)好吧,这个问题也源于这样一个事实,即在查找组件/配置类时,只需遍历每个类文件,而惰性bean初始化并不能解决这个问题。
- src
- config
- SomeServiceConfiguration.class
- dao
- controller
- service
- SomeService.class
- src
- dao
- controller
- service
- SomeService.class
- SomeServiceConfiguration.class