2013-02-09 2 views
0

사용자 정의 함수를 작성하여 빠른 방법으로 얻고 싶습니다. dao에서 옵션을 선택하십시오. 저는 Spring을 사용하고 있습니다. 저는 사용자 정의 el 함수 클래스에 spring bean dao를 삽입하려고합니다.사용자 정의 el 함수에 스프링 빈 삽입하기

el 함수 클래스에서 정적 메서드를 사용하고있어 응용 프로그램 컨텍스트에 액세스 할 수 없습니다. 나는이 방법

public class AppContextUtil implements ApplicationContextAware 
{ 

    private ApplicationContext applicationContext; 

    private static final AppContextUtil instance=new AppContextUtil(); 

    private AppContextUtil() 
    { 
    } 

    public static AppContextUtil getInstance() 
    { 
     return instance; 
    } 

    public <T> T getBean(Class<T> clazz) 
    { 
     return applicationContext.getBean(clazz); 
    } 

    /** 
    * {@inheritDoc} 
    */ 
    @Override 
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException 
    { 
     this.applicationContext = applicationContext; 
    } 

} 

에 ApplicationContextAware의 구현을 사용하지만, ApplicationContext를가 null입니다.

의 ApplicationContext에 접근 할 수있는 유일한 방법은 BELOVE

WebApplicationContext appCtx = 
WebApplicationContextUtils.getWebApplicationContext(context.getServletContext()); 
MyDAO myDAO = appCtx.getBean(MyDAO.class); 

로하지만 난 엘 기능 PARAMS에 PageContext의를 통과하기 위해 필요한이 방법입니다.

스프링 빈을 지원하는 el 함수 클래스를 만드는 방법은 무엇입니까? 어떻게 정적 인 방식으로 applicationContext에 액세스 할 수 있습니까?

감사합니다.

+0

I 스스로 해결 : 그것은 스프링 conf.xml 봄 빈으로 AppContextUtil 선언해야 – Premier

답변

0

스태틱 필드에 빈 또는 애플리케이션 컨텍스트 "주입"더러운 용액 :

@Component 
public class AppContextUtil { 

    private static ApplicationContext applicationContext; 

    @Autowire 
    private set ApplicationContext(ApplicationContext applicationContext) { 
     AppContextUtil.applicationContext = applicationContext; 
    } 
}