亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot注入靜態(tài)屬性或靜態(tài)對象的方法

 更新時間:2024年12月21日 10:44:12   作者:假女吖?  
我們在使用SpringBoot為一些靜態(tài)屬性或者靜態(tài)對象注入時會發(fā)現(xiàn)注入不成功,我們可以以下這幾種方式把需要注入的值注入到靜態(tài)屬性中,感興趣的朋友一起看下

SpringBoot注入靜態(tài)屬性或靜態(tài)對象

前言

我們在使用SpringBoot為一些靜態(tài)屬性或者靜態(tài)對象注入時會發(fā)現(xiàn)注入不成功。
我們可以以下這幾種方式把需要注入的值注入到靜態(tài)屬性中。

setter方式注入

代碼如下(示例):@Value與@Autowired都可以使用

@SpringBootTest(classes = Application.class)
public class TestApplication {
    private static DaoUtil daoUtil;
    private static String ACTIVE;
    // 這里其實我們只需要一個setter方法
    // 即可把springboot中的配置文件中的屬性注入到靜態(tài)屬性中
    @Value("${spring.profiles.active}")
    public  void setACTIVE( String ACTIVE) {
        TestApplication.ACTIVE = ACTIVE;
    }
    @Autowired
    public void setDaoUtil(DaoUtil daoUtil) {
        TestApplication.daoUtil = daoUtil;
    }
    @Test
    void contextLoads() {
        System.out.println(getActive());
        System.out.println(daoUtil);
    }
    public static String getActive(){
        return ACTIVE;
    }
}

@PostConstruct init方式注入

@Autowired
DaoUtil daoUtilProxy;
@Value("${spring.profiles.active}")
String  activeProxy;
private static DaoUtil daoUtil;
private static String ACTIVE;
@PostConstruct
private  void init() {
    daoUtil = daoUtilProxy;
    ACTIVE = activeProxy;
}

注意

兩種方式都能成功注入對象或?qū)傩浴?注入成功的前提是屬性或?qū)ο笏诘念愂荢pringBoot容器的組件(Bean)。

// 用ide工具生成靜態(tài)對象setter方法時會自動的把static的修飾詞帶上
// 這樣也會讓注入不成功(作者的慘痛經(jīng)歷??????)
// 這里我們需要把static去掉即可
public static void setACTIVE(String ACTIVE) {
        TestApplication.ACTIVE = ACTIVE;
}

總結(jié)

我們需要可以在組件類中使用@Value或@Autowired注入靜態(tài)屬性,才能注入成功。否則不成效;

到此這篇關(guān)于SpringBoot注入靜態(tài)屬性或靜態(tài)對象的文章就介紹到這了,更多相關(guān)SpringBoot注入靜態(tài)屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論