1、xml文件中读取配置文件【以数据库的配置为例】
1.1 配置:
方法一:<context:property-placeholder location="classpath:jdbc.properties"/>
方法二:
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>jdbc.properties</value>
</list>
</property>
</bean>
1.2 使用【${propertyKey}:propertyKey为配置文件的key值】:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="minIdle" value="${jdbc.minIdle}"/>
</bean>
1.3 注意
<context:property-placeholder />标签或者PropertyPlaceholderConfigurer的bean定义只能有一个,如果有多个,会读取先定义的,后定义的会被忽略
2、Java代码中读取配置文件【classpath:为项目编译后的编译代码根录,eg:myProject/WEB-INF/classes/】
2.1 配置:
方法一:<util:properties id="propertiesReader" location="classpath:commons.properties"/>
方法二:
<bean id="refProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:commons.properties</value>
</list>
</property>
</bean>
2.2 使用【@Value("#{PropertiesFactoryBeanId['propertyKey']}"):PropertiesFactoryBeanId为PropertiesFactoryBean的id(或者是<util:properties>标签的id),propertyKey为配置文件(*.properties)的key值】:
@Component
public class SysConf {
@Value("#{propertiesReader['jdbc.ur']}")
private String jdbcUrl;
@Value("#{propertiesReader['jdbc.ur']}")
public void setTest(String jdbcUrl){
jdbcUrl = jdbcUrl;
}
@Value("#{propertiesReader}")
public void setSysConf(Properties propertiesReader){
jdbcUrl= propertiesReader.getProperty("jdbc.ur");
}
}
3、注意xm和Java注解的用法区别,xml用$,Java注解用#
1、xml文件中读取配置文件【以数据库的配置为例】 1.1 配置:
方法一:<context:property-placeholder location="classpath:jdbc.properties"/>
方法二:
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>jdbc.properties</value>
</list>
</property>
</bean>
1.2 使用【 ${propertyKey}:propertyKey为配置文件的key值】:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="minIdle" value="${jdbc.minIdle}"/>
</bean> 1.3 注意 <context:property-placeholder />标签或者PropertyPlaceholderConfigurer的bean定义只能有一个,如果有多个,会读取先定义的,后定义的会被忽略 2、Java代码中读取配置文件【classpath:为项目编译后的编译代码根录,eg:myProject/WEB-INF/classes/】
2.1 配置:
方法一:<util:properties id="propertiesReader" location="classpath:commons.properties"/>
方法二:
<bean id="refProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:commons.properties</value>
</list>
</property>
</bean>
2.2 使用【@Value(" #{PropertiesFactoryBeanId['propertyKey']}"):PropertiesFactoryBeanId为PropertiesFactoryBean的id(或者是<util:properties>标签的id),propertyKey为配置文件(*.properties)的key值】:
@Component
public class SysConf {
@Value("#{propertiesReader['jdbc.ur']}")
private String jdbcUrl;
@Value("#{propertiesReader['jdbc.ur']}")
public void setTest(String jdbcUrl){
jdbcUrl = jdbcUrl;
}
@Value("#{propertiesReader}")
public void setSysConf(Properties propertiesReader){
jdbcUrl= propertiesReader.getProperty("jdbc.ur");
}
} 3、注意xm和Java注解的用法区别,xml用$,Java注解用#