[SPRING] web.xml에서 HttpServlet과 Spring Application Context를 연결하는 방법은 무엇입니까?
SPRINGweb.xml에서 HttpServlet과 Spring Application Context를 연결하는 방법은 무엇입니까?
HttpServlet을 확장 한 FooServlet을 같은 프로젝트에있는 ApplicationContext와 연결하려고합니다. 응용 프로그램 컨텍스트는 Wicket Servlet에서 이미 사용하고 있습니다.
그것은
servletContext = this.getServletContext();
wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
(IMyBean)wac().getBean("myServiceBean")
이제 IoC 방식이 아니기 때문에 코드 (WebApplicationContextUtils)에서 명시 적으로 스프링 클래스를 사용하지 않도록 노력합니다.
Wicket Servlet은 web.xml의 Application 컨텍스트와 연결되어 있습니다.
<servlet>
<servlet-name>ExampleApplication</servlet-name>
<servlet-class>org.apache.wicket.protocol.http.WicketServlet</servlet-class>
<init-param>
<param-name>applicationFactoryClassName</param-name>
<param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Spring HttpServletBean 클래스를 찾았지만 그것이 제 경우에 사용되는지는 모르겠습니다.
해결법
-
==============================
1.HttpServlet에 Bean을 삽입하는 방법을 찾았습니다 (참고 : 프리젠 테이션 뷰가 필요하지 않습니다. 그렇지 않으면 고급 스프링 클래스가 있습니다)
HttpServlet에 Bean을 삽입하는 방법을 찾았습니다 (참고 : 프리젠 테이션 뷰가 필요하지 않습니다. 그렇지 않으면 고급 스프링 클래스가 있습니다)
Spring의 루트 WebApplicationContext가로드되도록 web.xml에 ContextLoaderListener를 추가하십시오.
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
스프링을 사용하여 서블릿 구성 HttpRequestHandlerServlet 클래스
<servlet> <servlet-name>FooServlet</servlet-name> <display-name>Foo Servlet</display-name> <servlet-class> org.springframework.web.context.support.HttpRequestHandlerServlet </servlet-class> </servlet>
서블릿이 org.springframework.web.HttpRequestHandler 인터페이스를 구현하게하십시오.
Servlet을 ApplicationContext에서 Bean으로 정의하십시오 (beanID는 "servlet-name"과 같아야합니다). 이제 Dependency Lookup없이 Spring DependencyInjection 방식으로 모든 necassary Bean을 주입 할 수 있습니다.
-
==============================
2.스프링 유틸리티를 사용해야한다고 생각합니다. RequestContextUtils.getWebApplicationContext (request, application); 서블릿 내에 Spring Context를 연결한다. 이것은 DI / IoC가 아니라고 동의하지만 서블릿은 빈이 아닙니다!
스프링 유틸리티를 사용해야한다고 생각합니다. RequestContextUtils.getWebApplicationContext (request, application); 서블릿 내에 Spring Context를 연결한다. 이것은 DI / IoC가 아니라고 동의하지만 서블릿은 빈이 아닙니다!
from https://stackoverflow.com/questions/1866953/how-to-connect-httpservlet-with-spring-application-context-in-web-xml by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Cacheable 주석의 조건에서 키를 사용하려면 어떻게해야합니까? (0) | 2019.02.15 |
---|---|
[SPRING] Ajax를 사용하여 Spring 보안으로 로그인하기 (0) | 2019.02.15 |
[SPRING] Spring에서 application.properties를 사용하여 프로파일을 설정하는 방법은 무엇입니까? (0) | 2019.02.15 |
[SPRING] Spring (REST)에서 REST 응답을 어떻게 장식 할 수 있습니까? (0) | 2019.02.15 |
[SPRING] 오래된 Struts 애플리케이션을 Spring 3.x와 통합하는 방법 (0) | 2019.02.15 |