Spring上下文信息獲取簡單實現
阿新 • • 發佈:2018-10-23
imp thold param con stat sof war nts 我們
我們經常會在工作中需要獲取Spring上下文信息,來獲取程序中的一些要素,以下就是一個簡單的獲取Spring上下文的簡單實現。
public class SpringContextHolder implements ApplicationContextAware { private static ApplicationContext applicationContext; public void setApplicationContext(ApplicationContext applicationContext) { SpringContextHolder.applicationContext = applicationContext; } /** * 得到Spring 上下文環境 * * @return */ public static ApplicationContext getApplicationContext() { checkApplicationContext(); return applicationContext; } /** * 通過Spring Bean name 得到Bean * * @param name bean 上下文定義名稱 */ @SuppressWarnings("unchecked") public static <T> T getBean(String name) { checkApplicationContext(); return (T) applicationContext.getBean(name); } /** * 通過類型得到Bean * * @param clazz * @return */ @SuppressWarnings("unchecked") public static <T> T getBean(Class<T> clazz) { checkApplicationContext(); return (T) applicationContext.getBeansOfType(clazz); } private static void checkApplicationContext() { if (applicationContext == null) { throw new IllegalStateException("applicaitonContext未註入,請在application-context.xml中定義SpringContextHolder"); } } }
public abstract interface ApplicationContextAware extends Aware {
public abstract void setApplicationContext(
ApplicationContext paramApplicationContext) throws BeansException;
}
public abstract interface Aware {
}
Spring上下文信息獲取簡單實現