Spring管理のbeanを簡単に取得


くだらないことは言わないで、直接コードに行きます.
    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");