使用外部属性文件。

一、知识点

在配置文件里配置bean时,有时需要在bean的配置里混入系统部署的细节信息(例如:文件路径,数据源配置信息等等),其实这些部署细节出于安全考虑实际上需要和bean配置相分离。

spring提供了一个propertyplaceholderconfigurer的beanfactory后置处理器,这个处理器允许用户将bean配置的部分内容外移到属性文件中,可以在bean配置文件里使用形式为${var}的变量propertyplaceholderconfigurer从属性文件里加载属性,并且使用这些属性来替换变量。

spring还允许在属性文件中使用${propname}用来实现属性之间的相互作用。

二、流程

(1)配置简单mysql数据源

1.先引入c3p0包,mysql驱动包

如果是比较新版本的c3p0,还需要引入mchange-commons-java包。

mysql启动包只要装了mysql就会有。

2.配置datasource.xml

class位置需要注意,有些版本的包class位置可能有所改变。

3.main方法初始化容器

输出结果:

成功获得数据库链接。

那么问题来了,真实开发的时候,一般会有很多bean配置,如果我们仅仅将数据源放在同一个xml里进行管理,不但不安全,也不利于修改。

所以有必要将数据源单独拿出来,写在不同的配置文件里面,这样就容易查找。

(2)使用外部文件

1.先写一个properties文件db.properties

2.在datasource勾选context命名空间

3.然后导入属性文件

4.datasource.xml使用外部化属性文件的属性

把bean的value替换成${****}的形式

输出结果:

正常获得了链接,成功获得了外部文件的属性。

5.从多个外部文件获取属性

那么问题来了,如果我的数据源信息是分散的,分散在多个文件中,那么怎样才能把多个文件加载进来呢?

location属性可以用逗号分隔:

db.properties

db1.properties

datasource.xml

这样就可以从多个外部文件读取不同属性了。

但是这里要特别注意,外部文件的属性不要重复,否则spring不知道加载哪个外部文件的相同属性,会报错。

三、总结

记录一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注