您的位置:首页 > 运维架构

使用PropertyPlaceholderConfigurer读取.properties文件(1)

2016-01-15 11:07 429 查看
对于读取.properties文件,平时都是使用<util:properties/>,如下:

<util:properties id="mysqlConnection" location="classpath:db.properties" />

<bean id="dbcp" class="org.apache.commons.dbcp.BasicDataSource">
<property name="username" value="#{mysqlConnection.user}" ></property>
<property name="password" value="#{mysqlConnection.password}" ></property>
<property name="driverClassName" value="#{mysqlConnection.driver}" ></property>
<property name="url" value="#{mysqlConnection.url}" ></property>
</bean>

但这种方法有一定的局限性,下面我们就用PropertyPlaceholderConfigurer类来实现,做一个简单的例子:
java bean

package org.demo.model;

public class EmpModel {
private String name;
private int age;
private char gender;

...set/get/toString

}

src下创建一个 emp.properties

emp.name=wang
emp.age=12
emp.gender=f在applicationContext.xml文件中添加
<!-- 读取数据库配置信息.properties,使用spring提供的PropertyPlaceholderConfigurer -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:emp.properties</value>
</list>
</property>
</bean>
<bean id="empModel" class="org.demo.model.EmpModel">
<span style="white-space:pre">	</span><property name="name"><value>${emp.name}</value></property>
<span style="white-space:pre">	</span><property name="age"><value>${emp.age}</value></property>
<span style="white-space:pre">	</span><property name="gender"><value>${emp.gender}</value></property>
</bean>


写测试类:
public class GetBeanTest {
private static final Logger logger = Logger.getLogger(GetBeanTest.class);
ApplicationContext ac;

@Before
public void init() {
ac = new ClassPathXmlApplicationContext("applicationContext.xml");
}

@Test
public void getEmpModelBean(){
EmpModel emp = ac.getBean("empModel",EmpModel.class);
logger.info(emp);
}

}

成功可以输出EmpModel对象的信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息