Spring使用SpEL表达式读取properties配置文件的两种方式

第一种:

config.properties:

index.version=v1

spring配置文件,加载config.properties:

	<!-- 获取properties中的值 -->
	<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
		<property name="locations">
			<list>
				<value>classpath:config.properties</value>
			</list>
		</property>
	</bean>

	<!-- Spring的动态变量,能在bean中直接调用 -->
	<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="properties" ref="configProperties" />
	</bean>

注入使用:

	@Value("#{configProperties['index.version']}")
	public String version;

第二种:

config.properties:

index.version=v1

添加一个java bean用于读取properties文件中的配置:

@Component("config")
public class Config {

    @Value("${index.version}")
    public String indexVersion;

    public String getIndexVersion() {
        return indexVersion;
    }

    public void setIndexVersion(String indexVersion) {
        this.indexVersion = indexVersion;
    }
}

spring配置文件添加注解扫描:

<context:annotation-config />
<context:component-scan base-package="com.***.config"/>

spring配置加载properties:

<context:property-placeholder location="classpath:config.properties"/>

注入使用:

@Value("#{config.indexVersion}")
public String version;

补充:

还有一种方式,就是普通的加载使用方式,没有用到SpEL,我们看看这种方式。

这种方式的配置文件内容要变一下了,不能再是index.version=v1这种形式,要改为version=v1或者index-version=v1,因为带有(.)的这种形式会导致报错。

这时的spring配置:

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

用法:

@Value("#{config.version}")
public String version;

参考:

http://blog.csdn.net/yh_zeng2/article/details/76222905

http://blog.csdn.net/sunhuwh/article/details/38945445

没有更多推荐了,返回首页