spring管理属性配置文件properties——使用PropertiesFactoryBean

本文详细介绍了如何在Spring框架中使用org.springframework.beans.factory.config.PropertiesFactoryBean管理属性配置文件,并通过注解@Value实现属性的注入与使用。包括创建属性配置文件、引入依赖库、配置属性文件路径、设置编码格式及编写测试类验证注入效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于属性配置,一般采用的是键值对的形式,如:
key=value
属性配置文件一般使用的是XXX.properties,当然有时候为了避免eclipse把properties文件转码,放到服务器上认不出中文,可以采用XXX.conf的形式管理属性配置。
spring对于属性文件有自己的管理方式,通过spring的管理,可以直接使用@Value的方式直接得到属性值。
先使用org.springframework.beans.factory.config.PropertiesFactoryBean对属性配置文件进行管理。

1.新建一个java project,命名spring_test;

2.导入jar包:

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:
author_name=lee

4.新建一个文件夹config;

5.新建一个app.conf:

project_info=项目
6.新建一个spring配置文件applicationContext.xml:
<?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>

	<!-- 使用注解注入properties中的值 -->
    <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:
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.新建测试类:
@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获取属性的方式是:

@Value("${beanid['properties_key']}")
2.使用
<!-- 设置编码格式 -->
<property name="fileEncoding" value="UTF-8"></property>
主要为了解决属性文件中value为中文时乱码的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值