gpt4 book ai didi

java - 以 @ConfigurationProperties 为条件的 Spring Boot

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:37:29 25 4
gpt4 key购买 nike

我有一个身份验证服务,我想在运行时自动配置它,但它会被模拟用于开发和测试。我想使用 @ConfigurationProperties 功能来定义必要的参数,但我还需要能够有条件地创建 AuthenticationManager 实例,具体取决于实时服务是否已配置。

我想采用的方法是使用类似 @ConditionalOnBean(AuthProperties.class) 的方法,但是Spring Boot 会创建我的 @ConfigurationProperties 类的 bean,而不管这些属性是否存在。我可以对字段应用验证注释,但如果未配置实时服务,则上下文根本不会启动。

是否有一种干净的方法可以使配置部分以在 @ConfigurationProperties 类中指定的属性为条件,而无需在 @ConditionalOnProperty 中重复属性名称?

最佳答案

你不能只使用你的 application-some_profile.properties 文件的配置文件,然后像这样有条件地创建你的属性 bean

@Profile("some_profile")
@Component
@ConfigurationProperties(prefix = "some.selector")

public Class YourConfiguration{
private property option;
}

这样它只会根据您选择实时或模拟的配置文件有条件地创建。比起您可以将选定的配置文件用于您的 @Configuration 身份验证类以使用单独的方法,或者遵循 @ConditionalOnBean。这就是配置文件的用途,或者我可能误解了这个问题。

关于java - 以 @ConfigurationProperties 为条件的 Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27845102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com