Spring ConditionalOnProperty 无法读取 custom.properties 文件中的属性
Posted
技术标签:
【中文标题】Spring ConditionalOnProperty 无法读取 custom.properties 文件中的属性【英文标题】:Spring ConditionalOnProperty cannot read property in custom.properties file 【发布时间】:2020-07-22 03:47:38 【问题描述】:您好,我有一些自定义属性文件,例如 application.properties。我在这些文件中放置了一些属性。我的问题是 @ConditionalOnProperty 无法读取 customproperties 文件中的 myproperties。 如果我将相同的属性放在 application.properties ConditionalOnProperty 有效,但是当我将 myproperty 放在 customproperties 文件中时它不起作用。除了 ConditionalOnProperty 我从自定义属性文件中读取值没有任何问题。有没有办法从Spring Boot 中的 ConditionalOnProperty。
@Congiuration
@PropertySource("classpath:myproperties.properties")
@ConfigurationProperties(prefix="mycustomprop")
public class MyProperties
private String myproperty;
@Configuration
@ConditionalOnProperty(name = "mycustomprop.myproperty", havingValue = "false") //not work when myproperty in customproperty file
public class MyConfiguration implements WebMvcConfigurer
@SpringBootApplication
@PropertySources(
@PropertySource("classpath:myproperties.properties")
)
public class MyApplication
【问题讨论】:
【参考方案1】:您的 @PropertySource annotation
需要使用 @Configuration
类(如果需要,也可以使用 @SpringBootApplication),而不是您的自定义 MyProperties 对象。
【讨论】:
我试过启动组件或配置,我也把@PropertSource放到springbootapplication但没有改变...... 发布您尝试在配置中使用@propertysource 的完整代码。 我不明白这些是我尝试过的代码。MyProperties 这是自定义属性文件。它有一个属性 myproperty。我想使用@ConditionalOnProperty 注释,但它无法读取此属性以上是关于Spring ConditionalOnProperty 无法读取 custom.properties 文件中的属性的主要内容,如果未能解决你的问题,请参考以下文章
你了解Spring从Spring3到Spring5的变迁吗?
Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC
学习笔记——Spring简介;Spring搭建步骤;Spring的特性;Spring中getBean三种方式;Spring中的标签