spring - 互斥的 bean 加载

标签 spring spring-boot

我正在使用 spring-boot,并且希望根据传递的配置文件有条件地加载两个 bean。

@Configuration
@Profile("secure")
public class Secured ... //this should only load when "secure" is supplied

@Configuration
public class NotSecured ... //this should be the default

所以基本上:

如果用户传递了--spring.profiles.active=secured,我希望加载Secured bean,但不加载NotSecured bean。默认情况下,它应该只加载 NotSecured bean。

这可能吗?

最佳答案

您可以使用“!” not 运算符,即使用 @Profile("!secure") 注释 Bean/Configuration 类,并且仅当“secure”配置文件未激活时才会使用它。

关于spring - 互斥的 bean 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29112334/

相关文章:

elasticsearch - 配置的节点均不可用 spring boot 问题

java - HttpClientErrorException.getStatusText 和 HttpClientErrorException.getResponseBodyAsString 之间的区别

java - 如何将 Spring Retry 与带有 VaultPropertySource 的 Spring Vault 配置一起使用?

java - JPA 使用 Spring Data Specification 进行删除和更新

spring - 如何保证Spring @Autowired注入(inject)在构造函数中可以访问

javascript - 如何在 Spring MVC 中加载 js 源

java - 如果 3 个按钮相同,如何使用 selenium 代码选择第二个按钮

java - SpringBoot : Unsatisfied dependency NoSuchBeanDefinitionException, 期望至少有 1 个有资格作为 Autowiring 候选者的 bean

带有 sbt : Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory 的 Spring 启动

java - @Mock、@MockBean 和 Mockito.mock() 之间的区别