SpringBoot中在普通類裏面加載Spring容器中的類

前言

在咱們的工做中,常常會遇到須要在普通類中使用放在Spring容器中的類的狀況。最多見的狀況大概就是有一個類他的屬性的是經過spring的配置文件讀取的。這樣這個類必然要交給Spring容器進行管理。這個時候若是咱們在普通類中直接new這個類是不能夠拿到的。屬性值不會加載成功。下面介紹一個方法。spring

實現

封裝一個beanutil

咱們獲取spring容器中的類,都從這個工具類裏面來獲取。springboot

import org.springframework.context.ConfigurableApplicationContext;

public class BeanUtil {

    public static ConfigurableApplicationContext applicationContext;

    public static <T> T getBean(Class<T> c){
        return applicationContext.getBean(c);
    }

}

在springboot啓動類裏面對beanutil的容器進行賦值

public class Application {

    public static void main(String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(InformationApplication.class, args);
        BeanUtil.applicationContext = run;
    }
}

使用示例

咱們獲取一個FileUploadUtil。app

FileUploadUtil fileUploadUtil = BeanUtil.getBean(FileUploadUtil.class);
相關文章
相關標籤/搜索