Spring的配置文件是学习Spring的基本操作,需要非常清晰的熟悉Spring配置文件每一个定义

一、Properties配置文件外移

前段时间做了一个项目,在开发的过程中,也没有考虑到配置文件的问题。后来项目完成了,打包的时候要求,要求将项目中的配置文件外移,方便修改配置文件。

配置文件位于classpath下
**
使用spring的org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类加载Properties配置文件,通过源码可以知道,默认加载的是classpath下的文件,配置如下:

  1. <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  2. <property name="locations">
  3. <list>
  4.   <value>classpath:config/init1.properties</value>
  5.    <value>classpath:config/init2.properties</value>
  6. </list>
  7. </property>
  8. </bean>

用maven构建项目时候resources目录就是默认的classpath

配置文件位于外部目录
**但是对于外部目录的配置文件,使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer也是可以加载的,不过要修改他的路径配置方式,如下:

  1. <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  2. <property name="locations">
  3. <list>
  4.   <value>file:${user.dir}/config/init.properties</value>
  5.   <value>file:${user.dir}/config/init2.properties</value>
  6. </list>
  7. </property>
  8. </bean>

${user.dir}是系统变量,获取当前项目的根目录。


二、Spring配置数据库连接

  1. <!-- 配置数据库连接池-->
  2. <bean id="commonDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
  3. <property name="driverClassName" value="com.huawei.gauss.jdbc.ZenithDriver"/>
  4. <property name="url" value="${jdbc.url}"/>
  5. <property name="username" value="designcommon"/>
  6. <property name="password" value="Changeme_123"/>
  7. <!--SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.-->
  8. <property name="validationQuery" value="SELECT 1 from dual"/>
  9. <!--指明连接是否被空闲连接回收器(如果有)进行检验-->
  10. <property name="testWhileIdle" value="true"/>
  11. <property name="timeBetweenEvictionRunsMillis" value="18000000"/>
  12. <property name="minEvictableIdleTimeMillis" value="3600000"/>
  13. </bean>

使用JDBCTemplate进行验证

  1. public class Service {
  2. private ApplicationContext ctx;
  3. public Service() {
  4. super();
  5. }
  6. private DataSource getBasicDataSource() throws IOException {
  7. ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
  8. DataSource dataSource= ctx.getBean("dataSource", DataSource.class);
  9. return dataSource;
  10. }
  11. public JdbcTemplate getJdbcTemplate() throws IOException {
  12. //加载source
  13. JdbcTemplate jdbcTemplate = new JdbcTemplate(getBasicDataSource());
  14. return jdbcTemplate;
  15. }
  16. }

三、Spring与myBatis整合

Mybatis的配置文件: