目前我正在指定我的Spring Boot自动配置以下列方式排除:
@EnableAutoConfiguration(exclude = { ... })
@ComponentScan("my.company")
class Application {
static void main(String[] args) {
...
}
}
由于Spring Boot将在整个公司范围内使用,我们希望提供一些默认配置类,如MyCompanyDefaultConfiguration
和一些自动配置排除,并且只在需要时指定每个应用程序的添加排除。
这样的事情:
@Import(MyCompanyDefaultConfiguration.class)
@EnableAutoConfiguration(exclude = { /* application specific excludes */ })
class Application {
static void main(String[] args) {
...
}
}
@EnableAutoConfiguration(exclude = { /* company-wide excludes */ })
@ComponentScan("my.company")
class MyCompanyDefaultConfiguration {
...
}
我已经在某个地方读过这个不可行的地方,因为每个应用程序应该只有一个@EnableAutoConfiguration
注释,因为Spring Boot只会考虑首先找到的注释。在这种情况下是Application类中的那个。
考虑到这一限制,以可重用的方式组织此配置的解决方案是什么?
答案 0 :(得分:0)
制作带注释的注释,例如@EnableAutoConfiguration
本身是带注释的注释。
@EnableAutoConfiguration(exclude = { /* application specific excludes */ })
public @interface MyCompanyEnableAutoConfiguration {
}
并使用它