@PropertySource注解可以从properties文件中,获取对应的key-value值,将其赋予变量;
1.一个典型用法:
首先有一个config.properties文件内容如下:
demo.url = 1.2.3.4
demo.db = helloTest
下面是java程序:
- @Configuration
- @PropertySource("classpath:config.properties")
- public class AppConfigMongoDB {
- //1.2.3.4
- @Value("${demo.url}")
- private String mongodbUrl;
- //hello
- @Value("${demo.db}")
- private String defaultDb;
- }
2.通过运行环境spring中的Environment设置:
- @Configuration
- @ComponentScan(basePackages = { "com.mkyong.*" })
- @PropertySource("classpath:config.properties")
- public class AppConfigMongoDB {
- @Autowired
- private Environment env;
- @Bean
- public MongoTemplate mongoTemplate() throws Exception {
- String mongodbUrl = env.getProperty("mongodb.url");
- String defaultDb = env.getProperty("mongodb.db");
- }
3.OGNL解析:
- @Configuration
- @PropertySource("file:${app.home}/app.properties")
- public class AppConfig {
- @Autowired
- Environment env;
- }
上述中的app.home可以在启动时设置,如下:
System.setProperty("app.home", "test");
java -jar -Dapp.home="/home/mkyon/test" example.jar
4.同时包含多个文件:
@PropertySource({
"classpath:config.properties",
"classpath:db.properties" //if same key, this will 'win'
})
5.Spring4中对这个注解进行了功能增强,增加了@PropertySources注解,相当于其父标签,下面可以包括多个子PropertySource注解,示例如下:
@PropertySources({
@PropertySource("classpath:config.properties"),
@PropertySource("classpath:db.properties")
})
6.当扫描的文件不存在时,可以通过设置ignoreResourceNotFound属性进行忽略错误。
本文详细介绍了Spring框架中@PropertySource注解的多种使用方式,包括从配置文件加载属性、通过Environment对象获取属性值、使用OGNL表达式解析路径、支持多个配置文件以及错误忽略等高级功能。
2755

被折叠的 条评论
为什么被折叠?



