2012-06-14 4 views
2

struts2 (주로 주석 사용)을 기반으로 한 기존 웹 응용 프로그램이 있습니다. 디버깅하는 동안 나는 모든 종속성 (서비스 계층 및 DAO 계층과 같은) 이 struts 2 동작에 자동으로 주입된다는 것을 알았습니다. 나는 이것을해야만하는 struts.xml에 정의 된 스프링 인터셉터가 있어야 할 것으로 기대하고있었습니다.Spring과 함께 struts2 액션에 종속성이 어떻게 주입됩니까?

그러나저기서 스프링 관련 인터셉터를 찾지 못했습니다. 또한 web.xml에서 나는 이런 종류의 일을해야하는 관련 물건을 찾지 못했습니다. 나는

I 클래스 경로에 struts2-convention-plugin-2.2.3.1.jar 파일을 볼 수 있습니다 (와) 의존성이 struts2 행동에 주입하는 방법을 모르겠습니다. filterDispatcher은 런타임에이 jar를 찾고, 발견하면 작동중인 종속성을 주입합니다. 어떤 인터셉터도이 과정에서 도움이됩니까?

+0

에서보세요? –

+0

web.xml에 정의 된 스프링 리스너가 없다고 말씀 하시겠습니까? – fmucar

+0

@fmucar web.xml의 ContextLoaderListener를 보면 web.xml의 paramter contextConfigLocation parame에 대해 주어진 xam 파일을 읽습니다. 그러나 프로토 타입이나 요청 범위가 아닌 싱글 톤 빈 만 인스턴스화합니다. 권리? 프로토 타입 빈을 실제로 삽입하려면 인터셉터 또는 플러그인을 통해 수행해야합니다. –

답변

3

struts-plugin.xmlstruts2-spring-plugin-x.x.x.x.jar입니다. 객체 팩토리 및 autowiring 요격기에 대한 구성은입니다. struts2의 플러그인 기능을 사용하며 자세한 내용은 Struts 가이드에서 '플러그인'을 검색하십시오.

+1

쉔이 맞습니다. ObjectFactory는 Struts2에서 사용되는 모든 액션, 인터셉터, 결과 및 유형 변환기를 생성합니다. 기본적으로 Struts2는 리플렉션을 사용하여 객체를 생성하지만 Spring 및 Guice 용 플러그인을 사용하여 해당 프레임 워크에서 객체를 대신 만들 수 있습니다. –

0

액션 클래스 이전에 실행되고 자바 리플렉션 API를 사용하여 이러한 종속성 주입을 수행하는 인터셉터가 있어야합니다. 또는 Struts 2 Reflection 도구 ..http : //struts.apache.org/2.3.4 /struts2-plugins/struts2-convention-plugin/apidocs/org/apache/struts2/convention/ReflectionTools.html 인터셉터 스택을 확인하십시오.

+0

rajesh 나는 클래스 경로에있는 struts2-convention-plugin-2.2.3.1.jar 파일을 볼 수있다. 그것은 filterDispatcher가 런타임에이 jar를 찾고 그것이 발견되면 action.Right에 종속성을 삽입한다는 것을 의미합니까?이 인터셉터는이 프로세스 중에도 도움이됩니까? –

관련 문제