spring專案中 通過自定義applicationContext工具類獲取到applicationContext上下文物件
阿新 • • 發佈:2018-11-10
spring專案在伺服器啟動的時候 spring容器中就已經被建立好了各種物件,在我們需要使用的時候可以進行呼叫.
工具類程式碼如下
import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component("applicationContextHelper") public class ApplicationContextHelper implements ApplicationContextAware { private static ApplicationContext applicationContext; // spring容器中配置bean之後,會在專案啟動的時候給applicationContext賦值 public void setApplicationContext(ApplicationContext context) throws BeansException { applicationContext = context; } public static <T> T popBean(Class<T> clazz) { if (applicationContext == null) { return null; } return applicationContext.getBean(clazz); } public static <T> T popBean(String name, Class<T> clazz) { if (applicationContext == null) { return null; } return applicationContext.getBean(name, clazz); } }
接著就是在spring配置檔案中配置該bean , 並關掉懶載入,讓專案初始化的時候就給applicationContext物件賦上值
測試:
我們可以通過工具類直接拿到spring容器中的物件,這是因為在初始化專案的時候我們給工具類中的spring上下文屬性applicationContext賦上了值。