Java Spring Boot:@EnableAutoConfiguration如何重用?
目前,我通过以下方式指定我的Spring Boot自动配置:Java Spring Boot:@EnableAutoConfiguration如何重用?,java,spring,spring-boot,Java,Spring,Spring Boot,目前,我通过以下方式指定我的Spring Boot自动配置: @EnableAutoConfiguration(exclude = { ... }) @ComponentScan("my.company") class Application { static void main(String[] args) { ... } } 由于Spring Boot将在公司范围内使用,我们希望提供一些默认配置类,如MyCompanyDefaultConfiguration
@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 {
...
}
我曾在某个地方读到这不起作用,因为每个应用程序应该只有一个代码> @ eababyAutoDebug 注释,因为Spring Bug只考虑第一个找到的那个。在本例中,是应用程序类上的一个
考虑到这一限制,以可重用的方式组织此配置的解决方案是什么?制作带注释的注释,如
@EnableAutoConfiguration
本身就是带注释的注释
@EnableAutoConfiguration(exclude = { /* application specific excludes */ })
public @interface MyCompanyEnableAutoConfiguration {
}
然后使用它做一个带注释的注释,比如
@EnableAutoConfiguration
本身就是一个带注释的注释
@EnableAutoConfiguration(exclude = { /* application specific excludes */ })
public @interface MyCompanyEnableAutoConfiguration {
}
并使用它