我使用配置类(Java类带有@Configuration
注释)来配置我的bean。通常情况下,我想避免使用成见的注释(例如@Service
和@Component
)以及组件扫描整个项目。
是否有任何最佳实践可以指导配置类放置的位置?以下是一些不同的设置:
- 将配置类放在模块根级别的单独包中
- src
- config
- SomeServiceConfiguration.class
- dao
- controller
- service
- SomeService.class
在SomeServiceConfiguration
中注册SomeService
bean。我的最大问题是您失去了使用可见性修饰符的机会。为了构造bean,每个类都必须在每个包中公开,这对于更大的项目可能会很糟糕。优点是我可以只扫描config
包来注册我的beans。
- 将配置类放在要注册的类的同一个包中
- src
- dao
- controller
- service
- SomeService.class
- SomeServiceConfiguration.class
这样可以使用可见性修饰符,但是管理配置文件会变得棘手。您的配置文件现在遍布整个应用程序,您将不得不花更多的精力来管理它们。尽管我开始认为这可能是比较好的方法。
社区是否有任何首选方法?哪种方法适用于大型项目?哪种方法的可伸缩性最好?请注意,我不想使用刻板注释。
@ComponentScan(lazyInit = true)
和@Lazy
。在开发过程中,您只需查找注释以确定不同组件的内容/位置,而不是阅读初始化这些组件的过程代码,这样可以节省很多时间。特别是对于大型项目来说,这一点尤为重要 ;) - kenny_k