zoukankan      html  css  js  c++  java
  • Spring MVC 属性文件读取注入到静态字段

     

    在项目中,有些参数需要配置到属性文件xxx.properties中,这样做是为了维护方便,如果需要变动只需修改属性文件,不需要重新编译项目就可以了,非常方便。

    而为了使用起来方便,可以通过将属性值注入到类的静态字段中(static),这样就可以用className.fieldName的方式来获取了。

    1.servlet-context.xml

     <!-- spring的属性加载器,加载properties文件中的属性 -->  
         <bean id="propertyConfigurer"  
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
            <property name="location" value="classpath:config.properties" />  
        </bean>   
        <context:component-scan base-package="com.jykj.demo.util" /> 

    注意: 这里需要配置spring自动扫描的包名,该包下包含了需要被注解的类ConfigInfo

    2. config.properties (示例属性)

    admin_id=1
    default_password=888888

    3.ConfigInfo (对应的配置bean)

    package com.jykj.demo.util;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component
    public class ConfigInfo {
    
        public static int admin_id;
        public static String default_password;
    
        //属性配置文件
        @Value("${admin_id}")
        public void setAdmin_id(int admin_id) {
            ConfigInfo.admin_id = admin_id;
        }
        @Value("${default_password}")
        public void setDefault_password(String default_password) {
            ConfigInfo.default_password = default_password;
        }
    }
    

    注意: 这里需要将自动生成setter的方法的修饰符static去掉,否则spring无法注入

    4. 使用

    在任何类中直接使用 ConfigInfo.xxx 即可方便引用,如 ConfigInfo.default_password

    这个虽然简单,但我花了很久的时间从网上找寻各种解决方案,所以有必要写下来,这样可以方便以后尽快找到答案不要浪费时间。

     
     
  • 相关阅读:
    Spring boot 梳理
    Spring boot 梳理
    Spring boot 梳理
    观察者模式
    设计模式原则
    Spring MVC上传文件
    Spring MVC视图解析器
    Spring MVC中Action使用总结
    Spring MVC控制器
    Java并发 两个线程交替执行和死锁
  • 原文地址:https://www.cnblogs.com/yhtboke/p/5749172.html
Copyright © 2011-2022 走看看