zoukankan      html  css  js  c++  java
  • Spring注入值到静态变量

    Spring不允许将值注入静态变量,例如:

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component
    public class GlobalValue {
    
        @Value("${mongodb.db}")
        public static String DATABASE;
    
    
    }

    如果打印GlobalValue.DATABASE,将显示null。

    GlobalValue.DATABASE = null

    解决办法

    为了解决此类问题,需要创建一个“none static setter”来为静态变量赋予注入的值。 例如 :

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component
    public class GlobalValue {
    
        public static String DATABASE;
    
        @Value("${mongodb.db}")
        public void setDatabase(String db) {
            DATABASE = db;
        }
    
    }

    输出

    GlobalValue.DATABASE = "mongodb database name"
  • 相关阅读:
    【程序25】
    【程序24】
    【程序23】
    【程序22】
    【程序21】
    【程序20】
    【程序19】
    【程序18】
    string用法总结
    快速排序
  • 原文地址:https://www.cnblogs.com/xielei/p/10531076.html
Copyright © 2011-2022 走看看