java - 使用不同的配置取决于 spring Activity 配置文件

标签 java spring spring-boot

我想要根据 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/

相关文章:

java - 计算总工作时间

java - 如何根据父子关系获取项目中嵌套(层次结构)的所有项目的列表?

java - Spring +Ehcache : Not able to get the cache back from cacheManager without key

java - Spring Boot 为 POST 到未知 URL 返回 405 而不是 404

java - 按执行顺序列出给定进程的所有任务

java - 为什么AbstractList的源代码中listIterator参数应该是final的?

java - 如何在selenium中上传多个文件进行验证?

java - 在 Web 应用程序上下文中从 Uri 转换为文件路径

spring - Spring Integration 的带注释的配置用法

Spring Boot + Thymeleaf 找不到消息属性