Spring管理のbeanを簡単に取得
くだらないことは言わないで、直接コードに行きます.
1、編集 SpringContextHolder.java
2、注入、アプリケーションContext.xmlプロファイルに追加:
3、使用
1、編集 SpringContextHolder.java
public class SpringContextHolder implements ApplicationContextAware {
private static ApplicationContext applicationContext;
/**
* ApplicationContextAware context , .
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextHolder.applicationContext = applicationContext; // NOSONAR
}
/**
* ApplicationContext.
*/
public static ApplicationContext getApplicationContext() {
checkApplicationContext();
return applicationContext;
}
/**
* ApplicationContext Bean, .
*/
@SuppressWarnings("unchecked")
public static T getBean(String name) {
checkApplicationContext();
return (T) applicationContext.getBean(name);
}
/**
* ApplicationContext Bean, .
*/
@SuppressWarnings("unchecked")
public static T getBean(Class clazz) {
checkApplicationContext();
return (T) applicationContext.getBeansOfType(clazz);
}
/**
* applicationContext .
*/
public static void cleanApplicationContext() {
applicationContext = null;
}
private static void checkApplicationContext() {
if (applicationContext == null) {
throw new IllegalStateException("applicaitonContext , applicationContext.xml SpringContextHolder");
}
}
}
2、注入、アプリケーションContext.xmlプロファイルに追加:
3、使用
SpringContextHolder.getBean("beanName");
SpringContextHolder.getBean("className");