Spring学习记录(六)---使用外部属性文件

在bean配置资源或系统部署,如数据库的连接时,需要这样:

 要包含相关jar包:c3p0.jar 和mysql.connector.jar

 xml配置:

1 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
2     <property name="user" value="root"></property>
3     <property name="password" value="1234"></property>
4     <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
5     <property name="jdbcUrl" value="jdbc:mysql:///test"></property>
6 
7 </bean>

 main函数调用:

1 public static void main(String[] args) throws SQLException{ //可能有异常,这里不捕捉
2 Application ctx = new ClassPathXmlApplicationContext("jdbc.xml");
3 DataSource datasource = (DataSource)ctx.getBean("dataSource");
4 System.out.println(dataSource.getConnection()); //com.mchange.v2.c3p0.impl.NewProxyConnection@3ca6b9    表示成功
5 }

如果数据库有更改,在配置里改一下相关信息就可以。但是,实际项目中并不这样,因为实际中没有这么简单的配置,包含了大量的信息,如下: (这里信息算是少的)

也看出来,实际中用这样的符号:${},代表引用外部的变量

 通过把配置信息独立到一个文件里面,bean用${}方式引用, 便于维护、更清晰

 所以,上面xml配置可以改成这样:

新建一个文件专门存放可能需要修改的配置: db.properties

1 user=root
2 password=1234
3 driverclass=com.mysql.jdbc.Driver
4 jdbcurl=jdbc.mysql:///test

 在jdbc.xml中,添加context命名空间,用来引入文件

1 <!--导入属性文件-->
2 <context:property-placeholder location="classpath:db.properties"/>
3  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
4      <property name="user" value="${user}"></property>
5      <property name="password" value="${password}"></property>
6      <property name="driverClass" value="${driverclass}"></property>
7      <property name="jdbcUrl" value="${jdbcurl}"></property>
8  </bean>

 这样,要修改数据库信息,只需要在db.properties文件中修改即可。不必去复杂的xml中去找。提高了维护的效率

原文地址:https://www.cnblogs.com/ooooevan/p/5802490.html