Spring @Value注解的使用,如何给静态变量赋值

    技术2022-07-10  152

    1.Spring@Value注解的使用

    说明:一般我们在Spring工程中想读取配置文件中的配置时,避免不了使用@Value注解读取配置文件(一般为.properties类型的配置文件)

     

    那么我们的步骤为以下:

    1.在工程添加配置文件:

    application.properties

     

    内容如下(仅供参考)

    #设置统一消息平台的服务器地址 mq.url=10.120.20.182:9876 #设置客户端账号 mq.username=admin #设置客户端密钥 mq.password=admin #设置 Topic Name mq.topic.name=BH_DEVCIE_STATE,BH_DEVCIE_STATE1,BH_DEVCIE_STATE2 #设置订阅消息的标签,可以指定消费某一类型的消息,默认*表示消费所有类型的消息 mq.tags=* #设置是否需要加密传输:true/false #设置应用接口请求响应是否加密 encrypt=true

     

    2.在Spring主配置文件中添加如下配置

    <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <list> <value>classpath*:application.properties</value> </list> </property> </bean> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> <property name="properties" ref="configProperties" /> </bean>

    3.在java类中的写法

    比如我们想注入mq.url的配置值,

    写法1:

    @Value("#{configProperties['mq.url']}") private String url;

    写法2:

    @Value("#{'mq.url'}") private String url;

     

     

    4.如果我们想要把配置文件中的配置值赋给java类中的静态变量,写法如下

    public static Boolean encrypt; @Value("#{configProperties['encrypt']}") public void setEncrypt(Boolean encrtpt) { ConfirmRequest.encrypt = encrtpt; }

     

     

    Processed: 0.011, SQL: 9