Spring注入静的オブジェクトの使用方法

1991 ワード

静的注入要件
  • はSpringによって主クラス
  • にスキャンできる.
  • はSpringによって注入されたクラス
  • にスキャンすることができる.
    注入の3つの方法
    注入されたクラス
    package lihan.properties;
    import org.springframework.stereotype.Component;
    
    //        Spring   
    @Component 
    public class ConfigProperties {
     private String aaa = "aaa";
     private String bbb = "bbb";
     private String ccc = "ccc";
     private String ddd = "ddd";
     private String eee = "eee";
     public String getAaa() {
            return aaa;
     }
        public void setAaa(String aaa) {
            this.aaa = aaa;
     }
        public String getBbb() {
            return bbb;
     }
        public void setBbb(String bbb) {
            this.bbb = bbb;
     }
        public String getCcc() {
            return ccc;
     }
        public void setCcc(String ccc) {
            this.ccc = ccc;
     }
        public String getDdd() {
            return ddd;
     }
        public void setDdd(String ddd) {
            this.ddd = ddd;
     }
        public String getEee() {
            return eee;
     }
        public void setEee(String eee) {
            this.eee = eee;
     }
    }
    

    1.コンストラクタ注入の使用
    @Component
    public class StuStaticConfig {
    
        private static ConfigProperties configProperties;
        
        public StuStaticConfig(ConfigProperties configProperties) {
            this.configProperties = configProperties;
        }
        
    }

    2.set注入
    setはstatic静的メソッドではありません
    @Component
    public class StuStaticConfig {
    
        private static ConfigProperties configProperties;
        
        @Autowired
        public void setConfigProperties(ConfigProperties configProperties) {
            StuStaticConfig.configProperties = configProperties;
        } 
    }

    3.@PostConstruct注入
    @Component
    public class StuStaticConfig {
    
        private static ConfigProperties configProperties;
        
        @Autowired
        private ConfigProperties configPropertiesTemp;
    
        @PostConstruct
        public void init() {
            this.configProperties = this.configPropertiesTemp;
        }
    }

    注入されたクラスを静的オブジェクトに割り当てる