spring 读取配置文件,将值注入到静态字段

Posted 爷的眼睛闪亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 读取配置文件,将值注入到静态字段相关的知识,希望对你有一定的参考价值。

resources/config/config-dev.properties

es.ip.node=xxxxxxx
cluster.name=xxxxxxx
client.transport.sniff=xxxxxxx

加载properties
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:config/config-${env}.properties</value>
</list>
</property>
</bean>

对应属性的bean
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
* <p>Description:读取properties文件</p>
*
* @Author: Austin
**/
@Component
public class ESParams {
public static String esIpNode;
public static String clusterName;
public static String clientTransportSniff;

@Value("${es.ip.node}")
public void setEsIpNode(String esIpNode) {
ESParams.esIpNode = esIpNode;
}

@Value("${cluster.name}")
public void setClusterName(String clusterName) {
ESParams.clusterName = clusterName;
}

@Value("${client.transport.sniff}")
public void setClientTransportSniff(String clientTransportSniff) {
ESParams.clientTransportSniff = clientTransportSniff;
}
}
注意:标颜色的地方,稍有不慎就少加或者写错,另外需要将自动生成setter的方法的修饰符static去掉,否则spring无法注入

现在可以在任何类中直接使用 ESParams.xxx 即可方便引用,如 ESParams.esIpNode 了


 















































以上是关于spring 读取配置文件,将值注入到静态字段的主要内容,如果未能解决你的问题,请参考以下文章

如何使弹簧将值注入静态字段

Spring注入值到静态变量

ConfigProperty 未将值注入字段

Spring配置文件读取

使用java Spring将值注入Hashmap

工具类使用@Value将信息注入到静态变量中