2010-07-15 2 views
1

Spring Framework에 크게 의존하는 Pure Servlet (순수한 Java 클래스 인 Servlet API, 프레임 워크 없음)이 있습니다.스프링 프레임 워크를 사용하는 프로젝트에서 순수 서블릿 (Java Servlet, 프레임 워크 없음)을 사용하고 있습니까?

우리가 작성중인 모든 새로운 코드가 Spring 3 기능을 많이 사용하고 있다면이 서블릿을 프로젝트에 포함시키는 가장 좋은 방법은 무엇입니까?

+0

전적으로 자신이하는 일과 자신이하고 싶은 일에 전적으로 의존합니다. 나는 Spring 부분에 대해 확신하지 못한다. 그러나 서블릿이 실제로하고있는 일을해서는 안되는 것처럼 들린다. 그런 다음 코드를 재사용 가능한 클래스로 리팩터링해야합니다. 재사용 가능한 클래스는 스프링 webapp의 서블릿 * 및 *에서 가져 오기/사용합니다. – BalusC

+0

단지 REST 서비스 일 경우 어떻게해야합니까? 그것은 서블릿의 합리적인 사용이다. – duffymo

+0

@duffymo : 사실이지만, 그것은 질문에서 분명하지 않다 :) 여전히 의존한다. – BalusC

답변

0

아시다시피 서블릿은 스프링 빈으로 구성 될 수 없습니다. 당신의 질문이 서블릿에서 스프링 빈으로 colloborating에 관한 것이라면 threadthis

1

서블릿 컨테이너가 여러 서블릿을 실행할 수 있습니다. 스프링은 그 중 하나 일뿐입니다. 왜 서블릿을 web.xml에 포함시키고 작동하는지 확인하십시오. 작동해야합니다. Spring은 그렇게 관입 적이 지 않다. (그러나 분명히 많은 개발자들의 마음을 사로 잡았다.)

1

web.xml에서 Spring 프론트 컨트롤러와 함께 서블릿을 선언하면 가장 확실하게 작동한다.

서블릿에 매핑되는 URL을 선언 할 때주의해야합니다. "/ *"를 Spring 프론트 컨트롤러로 보내면 요청한 내용이 다른 서블릿에 전달되지 않습니다. 각자에게 보낼 내용에 대해 구체적으로 설명하십시오.

0

스프링은이 브리징을 쉽게하기위한 몇 가지 클래스를 제공합니다.

ServletForwardingController

봄 컨트롤러 구현이 명명 된 서블릿 전달, 즉 web.xml에보다는 URL 경로 맵핑에서 "서블릿 이름". 목표 서블릿 도 처음에는 web.xml에 "servlet-mapping" 이 필요하지 않습니다. "서블릿"선언으로 충분합니다. 예를 들어이 요청에 봄 HandlerInterceptor는 적용 할

유용한

은, 봄의 파견 인프라를 통해 기존 서블릿 를 호출합니다.

ServletWrappingController

이 가 내부적으로 관리하는 서블릿 인스턴스를 감싸는 것을 봄 컨트롤러 구현입니다. 이러한 랩핑 된 서블릿은이 컨트롤러 외부에 알려져 있지 않습니다. 전체 수명주기는 여기 입니다 ( ServletForwardingController와는 대조적 임).

관련 문제