DefaultAnnotationHandlerMapping

2349 단어 spring
시작 은 전역 적 인 차단기 Default Handler Interceptor 를 실현 하기 위해 서 입 니 다. Handler Interceptor Adapter 클래스 를 계승 합 니 다.
이 종 류 를 Spring 의 Default Annotation Handler Mapping 의 interceptors 에 주입 합 니 다.
설정:
<!--         @RequestMapping   -->
<bean
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
	<property name="interceptors">
	<list>
		<!--      ,     -->
		<ref bean="SpringMVCInterceptor" />
		<ref bean="OpenSessionInViewInterceptor"/>
	</list>
	</property>
</bean>
<!--         @RequestMapping   -->
<bean id="annotationMethodHandlerAdapter"
	class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	<property name="messageConverters">
	<list>
		<bean
		    class="org.springframework.http.converter.StringHttpMessageConverter">
		    <property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=utf-8</value>
				<value>text/plain;charset=utf-8</value>
			</list>
		    </property>
		</bean>
		<bean
			class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverterv2">
			<property name="objectMapper">
				<bean class="net.pm.misc.Hibernate4AwareObjectMapper" />
			</property>
		</bean>
	</list>
	</property>
</bean>
	
<!--     cglib,  JDK     ,  Controller      ,        -->
<aop:aspectj-autoproxy proxy-target-class="true"  />

 그러나 Default Handler Interceptor 차단기 에 서 는 항상 정지점 에 들 어가 지 않 습 니 다.
원인:
< mvc: annotation - driven / > 설정
이 설정 설명
{defaultAnnotationHandlerMapping 속성 이 없습니다.
@ ResultMapping 태그 에 대한 분석 은 "org. springframework. web. servlet. mvc. annotation. Default Annotation HandlerMapping" 클래스 로 처리 합 니 다.}
그래서 < mvc: annotation - driven / > 를 제거 하고 기본 설정 을 제거 합 니 다.
그렇지 않 으 면 Default Annotation Handler Mapping 두 개 를 예화 하고 설정 한 Default Annotation Handler Mapping 을 사용 하지 않 습 니 다.
 org. springframework. web. servlet. mvc. annotation. annotation MethodHandlerAdapter 와 < mvc: annotation - driven / > 의 관 계 는 상기 와 같 습 니 다.

좋은 웹페이지 즐겨찾기