chr*_*ke- 7 java spring spring-boot
我有一个身份验证服务,我想在运行时自动配置,但将被模拟用于开发和测试.我想使用该@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;
}
Run Code Online (Sandbox Code Playgroud)
这样,它只会根据您选择的实时或模拟配置文件有条件地创建。您可以为 @Configuration 身份验证类使用选定的配置文件以实现单独的方法,也可以使用 @ConditionalOnBean。这就是配置文件的用途,或者也许我误解了这个问题。
| 归档时间: |
|
| 查看次数: |
3650 次 |
| 最近记录: |