在项目中我们一般将配置信息(如数据库的配置信息)配置在一个properties文件中,如下:
jdbcUrl=jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE&useSSL=false&serverTimezone=UTC userName=root userPassword=123456 jdbcDriver=com.mysql.cj.jdbc.Driver
接着在Spring的配置文件中读取,有两种方式:
方式一:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <!-- 对于读取一个配置文件采取的方案 -->
        <property name="location" value="classpath:config.properties"></property>
        <!-- 对于读取两个以上配置文件采取的处理方案 -->
        <!--
        <property name="locations"> 
            <list>
                <value>classpath:config.properties</value>
                <value>classpath:config2.properties</value>
            </list>
        </property>
        -->
    </bean>
方式二:
<!--采用这种方式简化配置文件--> <context:property-placeholder location="classpath:config.properties"/>
我们知道,不论是使用PropertyPlaceholderConfigurer还是通过context:property-placeholder这种方式进行实现,都需要记住,Spring框架不仅仅会读取我们的配置文件中的键值对,而且还会读取Jvm 初始化的一下系统的信息。有时候,我们需要将配置Key定一套命名规则 ,例如
项目名称.组名.功能名=配置值 org.team.tfunction=0001
同时,我们也可以使用下面这种配置方式进行配置,这里我配NEVER的意思是不读取系统配置信息。如:
<context:property-placeholder location="classpath:config.properties" system-properties-mode="NEVER"/>
测试用例:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-core.xml")
public class SpringContextTest {
	@Value("${userName}")
	private String uname;
	@Value("${userPassword}")
	private String pwd;
	@Test
	public void test() {
		System.out.println("username:" + uname);
		System.out.println("password:" + pwd);
	}
}
username:root
password:123456
配置文件中使用就比较简单了:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<!-- 数据库基本信息配置 -->
		<property name="url"
			value="${jdbcUrl}" />
		<property name="username" value="${userName}" />
		<property name="password" value="${userPassword}" />
		<property name="driverClassName" value="${jdbcDriver}" />
</bean>
 
 
                
            
        