spring管理属性配置文件properties——使用PropertiesFactoryBean
转载地址:http://blog.csdn.net/lee0723/article/details/48715827
对于属性配置,一般采用的是键值对的形式,如:
key=value
属性配置文件一般使用的是XXX.properties,当然有时候为了避免eclipse把properties文件转码,放到服务器上认不出中文,可以采用XXX.conf的形式管理属性配置。
spring对于属性文件有自己的管理方式,通过spring的管理,可以直接使用@Value的方式直接得到属性值。
先使用org.springframework.beans.factory.config.PropertiesFactoryBean对属性配置文件进行管理。
1.新建一个Java project,命名spring_test;
2.导入jar包:
[plain] view plain copy
- aopalliance-1.0.jar
- commons-logging-1.1.1.jar
- org.springframework.test-3.1.0.RELEASE.jar
- spring-aop-3.1.1.RELEASE.jar
- spring-asm-3.1.1.RELEASE.jar
- spring-beans-3.1.1.RELEASE.jar
- spring-context-3.1.1.RELEASE.jar
- spring-context-support-3.1.1.RELEASE.jar
- spring-core-3.1.1.RELEASE.jar
- spring-expression-3.1.1.RELEASE.jar
3.在src下新建一个config.propertites:
[plain] view plain copy
- author_name=lee
4.新建一个文件夹config;
5.新建一个app.conf:
[plain] view plain copy
- project_info=项目
6.新建一个spring配置文件applicationContext.xml:
[html] view plain copy
- <?**xml version=”1.0” encoding=”UTF-8”?>**
- <**beans** xmlns=”http://www.springframework.org/schema/beans“
- xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“ xmlns:context=”http://www.springframework.org/schema/context“
- xsi:schemaLocation=”http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd"**>**
- <**context:annotation-config />**
- <**context:component-scan base-package=”com.*“></context:component-scan**>
- <**bean** id=”setting”
- class=”org.springframework.beans.factory.config.PropertiesFactoryBean”>
- <**property name=”locations”>**
- <**list**>
- <**value**>classpath:*.properties</**value**>
- <**value**>file:config/*.conf</**value**>
- </**list**>
- </**property**>
- <**property name=”fileEncoding” value=”UTF-8”></property**>
- </**bean**>
- </**beans**>
7.新建一个获取属性配置文件属性的类ConfigProperty.java:
[java] view plain copy
- package com.lee.property.test;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- /**
- * config.properties文件映射类
- *
- *
- */
- @Component(“configProperty”)
- public class ConfigProperty {
- /** 作者名字 */
- @Value(“#{setting[author_name]}“)
- private String authorName;
- /** 项目信息 */
- @Value(“#{setting[project_info]}“)
- private String projectInfo;
- public String getAuthorName() {
- return authorName;
- }
- public void setAuthorName(String authorName) {
- this.authorName = authorName;
- }
- public String getProjectInfo() {
- return projectInfo;
- }
- public void setProjectInfo(String projectInfo) {
- this.projectInfo = projectInfo;
- }
- }
8.新建测试类:
[java] view plain copy
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations={ “classpath:applicationContext.xml”})
- public class ConfigPropertyTest {
- @Resource(name = “configProperty”)
- private ConfigProperty configProperty;
- /**
- * 测试Spring注解获取properties文件的值
- */
- @Test
- public void test() {
- System.out.println(configProperty.getAuthorName());
- System.out.println(configProperty.getProjectInfo());
- }
- }
总结:
1.使用org.springframework.beans.factory.config.PropertiesFactoryBean获取属性的方式是:
[java] view plain copy
- @Value(“${beanid[‘properties_key’]}“)
2.使用
[html] view plain copy
- <**property name=”fileEncoding” value=”UTF-8”></property**>
主要为了解决属性文件中value为中文时乱码的问题。
还没有评论,来说两句吧...