我想要根据 Activity Spring 配置文件具有不同的 Spring 配置。如果我用 --spring.profiles.active=blabla 启动 jar,我使用一个配置,如果启动参数中没有配置文件,我使用另一个配置。现在我可以使用 blabla 配置文件,但是如果我在没有配置文件的情况下启动 jar,它会同时使用两者。
默认配置:
@SpringBootApplication(
exclude = {
DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class,
SecurityAutoConfiguration.class})
@Slf4j
public class DefaultConfig {
public DefaultConfig() {
log.error("Using default config");
}
}
布拉布拉配置:
@Profile("blabla")
@Configuration
@Import({
DispatcherServletAutoConfiguration.class,
ErrorMvcAutoConfiguration.class,
JacksonAutoConfiguration.class,
WebMvcAutoConfiguration.class,
ServletWebServerFactoryAutoConfiguration.class,
})
@Slf4j
public class BlablaConfig {
public BlablaConfig() {
log.error("Using bla bla config");
}
}
现在:
java -jar app.jar:
...
Using default config
Using bla bla config
...
java -jar app.jar --spring.profiles.active=blabla:
...
Using bla bla config
...
应该是:
java -jar app.jar:
...
Using default config
...
java -jar app.jar --spring.profiles.active=blabla:
...
Using bla bla config
...
最佳答案
将@Profile("!blabla")
添加到您的DefaultConfig
中。
关于java - 使用不同的配置取决于 spring Activity 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58083585/