Spring中@PropertySouce注解的使用

@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属性进行忽略错误。


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值