我想从活动配置文件中读取值,或者可以说活动属性文件。 我有三个属性文件
我已将有效的个人资料设置为dev
,如下所示
spring.profiles.active=dev
我的application-dev.properties
文件中有一个我想在班上阅读的条目。
application-dev.properties 文件
fix.connection.type=initiator
我尝试阅读此条目
@Configuration
@PropertySource("classpath:application-${spring.profiles.active}.properties")
@Component
public class AdaptorDestination {
@Value("${fix.connection.type}")
private String connectionType;
}
例外
nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.profiles.active' in value "classpath:application-${spring.profiles.active}.properties"
请帮帮我
答案 0 :(得分:1)
您无需使用@PropertySource
批注即可使用@Value
批注加载属性。
Spring将从当前的活动配置文件中自动加载@Value
属性。
此外,您无需在${spring.profiles.active}
批注中指定@PropertySource
,因为默认情况下Spring总是从当前活动的配置文件中加载属性。
Spring根据配置文件后缀自动解析文件名。
因此,您只需要指定基本文件名,例如:
@PropertySource("classpath:application.properties")
如果当前活动的配置文件是“ dev”,Spring将首先从application.properties
文件中加载属性,然后使用application-dev.properties
文件中的属性覆盖它们。
您可以阅读更多here
答案 1 :(得分:0)
您可以使用注释@Profile("profile-name")
确定何时执行该方法。