我指的是Spring中的一个属性源,带有@PropertySource注释,但只有当属性文件的名称是application.properties时,spring才能找到它。
我的属性文件位于src / main / resources。
答案 0 :(得分:0)
您可能希望将配置设置为能够处理多个属性源。您可以通过多种方式执行此操作,但我建议您将属性配置与其他配置分开,以便模块化职责。虽然您也可以使用@Value批注来加载属性,但您可能需要考虑暂时自动装配环境。
@Configuration
@PropertySources({ // this takes in an array of property sources
@PropertySource("classpath:file.properties") // precede your property with classpath to find it in resources
})
public class MyConfiguration()
{
@Autowired
private Environment env;
@Bean
public String provideSomeString()
{
return env.getProperty("some.property.in.file"); // get the property from the property file
}
}
以下是使用@Value注释加载属性的快速方法。
@Configuration
@PropertySources({
@PropertySource("classpath:file.properties")
})
@Component
public class MyConfiguration()
{
@Value("${some.property.in.file}") // get the property from the property file
private String property;
@Bean
public String provideSomeString()
{
return property;
}
@Bean // this bean is required in order to pass properties into the @Value annotation, otherwise you will just get the literal string
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer()
{
return new PropertySourcesPlaceholderConfigurer();
}
}