前言
在我們的工作中,經常會遇到需要在普通類中使用放在Spring容器中的類的情況。最常見的情況大概就是有一個類他的屬性的是通過spring的配置文件讀取的。這樣這個類必然要交給Spring容器進行管理。這個時候如果我們在普通類中直接new這個類是不可以拿到的。屬性值不會加載成功。下面介紹一個方法。
實現
封裝一個beanutil
我們獲取spring容器中的類,都從這個工具類里面來獲取。
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。
FileUploadUtil fileUploadUtil = BeanUtil.getBean(FileUploadUtil.class);
