Spring使用外部的配置文件
2016-04-24 10:59
531 查看
在使用Spring做web项目的时候,通常会使用到数据库的连接信息
那么应该如何使用这些属性呢?
如在Spring中使用数据库连接池(数据源)
你可能会这样写
这是一种硬编码,如果数据库的连接环境变了,我们需要去beans.xml这个文件中进行修改,如果这个文件比较大,内容很多,找到这些信息就挺麻烦的。
怎么办呢,将这些信息提取出来,放在单独一个属性文件中
jdbc.properties,以后想改数据库连接环境的话改这个文件就可以了。
那么问题又来了,beans.xml文件需要读取jdbc.properties中的信息,我们需要告诉它去哪儿找jdbc.properties文件,怎么办呢?
这就涉及到本讲讨论的问题:Spring使用外部的配置文件
两种方式
1.常用,较简单
2.
有了此配置之后,数据源的配置就可以变为
jdbcUrl driverClass username password
那么应该如何使用这些属性呢?
如在Spring中使用数据库连接池(数据源)
你可能会这样写
<!-- 配置数据库连接池 ComboPooledDataSource --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 基本的连接信息 --> <property name="jdbcUrl" value="jdbc:mysql:///mybatis"/> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="user" value="root"/> <property name="password" value="root"/> <!-- 一些管理的配置 --> <property name="initialPoolSize" value="3"></property> <property name="minPoolSize" value="3"></property> <property name="maxPoolSize" value="5"></property> <property name="acquireIncrement" value="3"></property> <property name="maxIdleTime" value="1800"></property> </bean>
这是一种硬编码,如果数据库的连接环境变了,我们需要去beans.xml这个文件中进行修改,如果这个文件比较大,内容很多,找到这些信息就挺麻烦的。
怎么办呢,将这些信息提取出来,放在单独一个属性文件中
jdbc.properties,以后想改数据库连接环境的话改这个文件就可以了。
jdbcUrl = jdbc:mysql:///mybatis driverClass = com.mysql.jdbc.Driver username = root password = root
那么问题又来了,beans.xml文件需要读取jdbc.properties中的信息,我们需要告诉它去哪儿找jdbc.properties文件,怎么办呢?
这就涉及到本讲讨论的问题:Spring使用外部的配置文件
两种方式
1.常用,较简单
<!--加载外部的properties文件(方式一),用于解析${}形式的变量。--> <!--如果需要加载多个properties文件,就写在一起,之间使用逗号隔开。--> <context:property-placeholder location="classpath:jdbc.properties"/>
2.
<!-- 加载外部的properties文件(方式二) --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <!--可以有多个--> <value>classpath:jdbc.properties</value> </list> </property> </bean>
有了此配置之后,数据源的配置就可以变为
<!-- 加载外部的properties文件(方式一),用于解析${}形式的变量。 如果需要加载多个properties文件,就写在一起,之间使用逗号隔开。 --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置数据库连接池 ComboPooledDataSource --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 基本的连接信息 --> <property name="jdbcUrl" value="${jdbcUrl}"/> <property name="driverClass" value="${driverClass}"/> <property name="user" value="${username}"/> <property name="password" value="${password}"/> <!-- 一些管理的配置 --> <property name="initialPoolSize" value="3"></property> <property name="minPoolSize" value="3"></property> <property name="maxPoolSize" value="5"></property> <property name="acquireIncrement" value="3"></property> <property name="maxIdleTime" value="1800"></property> </bean>
相关文章推荐
- 我的Java后端书架2016年暮春3.0版(转)
- Java 多线程
- Java中处理异常中return关键字
- Java枚举
- JVM基础(三) JVM内存管理
- 关于java的正则表达式的用法
- Java super关键字活用
- 深入JAVA虚拟机(GC)
- Java类集(List、Set、Map等)
- 站在大神肩膀上看RxJava
- 【转】Java 8十个lambda表达式案例
- 【转】Java 8十个lambda表达式案例
- java中的Iterator和Iterable 区别
- 20145311 《Java程序设计》第八周学习总结
- 20145315 《Java程序设计》第八周学习总结
- JAVA线程(二)
- 第一个超简单的hibernate
- java 内省机制(工厂模式再次解耦)
- java中判断今年是否是闰年
- Spring的AOP应用