2010-07-30 11 views
2

DispatcherPortlet을 사용하지 않고 Spring을 사용하여 포틀릿을 개발할 수있는 방법이 있습니까? 나는 UI를 위해 다른 기술, 주로 Vaadin을 사용하고 싶다. 봄은 DI와 다른 것들을 위해 사용됩니다. 포틀릿 측면에서 ContextLoaderListener 클래스와 비슷한 것이 있습니까?Spring MVC없이 포틀릿에서 Spring 사용하기

+0

이 MVC 기반을 제외하고는 봄에 다른 포틀릿 구현이 없다고 생각합니다. 물론 우리는 noel 작성자로 직접 콩을 만들 수 있지만 포틀릿으로 처리하는 방법은 무엇입니까? – Parth

답변

0

나는 노엘이 준 것보다 더 자세한 대답을 원했습니다. 어쩌면 이것에 대한 모범 사례가 있을까요? 다음은 현재 솔루션입니다.

xml 파일 위치를 내 포틀릿의 초기화 매개 변수로 지정하십시오. 내 초기화 방법은 지금은 PortletContext을 통해 내가 필요로 할 때마다 내 ApplicationContext에 액세스 할 수 있습니다이

@Override 
public void init(PortletConfig config) throws PortletException { 
    super.init(config); 
    String configLocations = config.getInitParameter("contextConfigLocation"); 
    ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext(); 
    springContext.setConfigLocation(configLocations); 
    springContext.refresh(); 
    config.getPortletContext().setAttribute(APPLICATION_CONTEXT_ATTRIBUTE, springContext); 
} 

같은 것을 보인다.

(ApplicationContext) portalContext.getAttribute(APPLICATION_CONTEXT_ATTRIBUTE); 

APPLICATION_CONTEXT_ATTRIBUTE는 내가 작성한 문자열 상수입니다. 나는 더 나은 해결책을 위해 아직 열려 있습니다.

1

the Spring documentation을 보면 다음과 같이 당신은 ApplicationContext를 만들 수 있습니다

ApplicationContext context = 
    new ClassPathXmlApplicationContext(new String[] {"services.xml", "daos.xml"}); 

클래스 경로에 xml 파일을 참조하는.

그런 다음 context.getBean("beanName")을 호출하여 콩을 가져올 수 있습니다. Spring MVC가 필요 없다.

0
당신은 웹 애플리케이션 컨텍스트를 검색 할 PortletApplicationContextUtils을 사용할 수 있습니다

:

의 ApplicationContext CTX = PortletApplicationContextUtils.getWebApplicationContext (getPortletContext());

그러면 web.xml에 구성을 추가하기 만하면됩니다.

+1

PortletApplicationContextUtils를 사용하여 응용 프로그램 컨텍스트를 어떻게 초기화합니까? – palto

관련 문제