java - Spring MVC: Why does this <mvc:interceptors> declaration work, but not the traditional XML? -
i'm trying add handlerinterceptoradaptors of controllers/actions in spring mvc. i'm adding these servlet xml file.
what don't understand, why <mvc:interceptors>
block have below working, not traditional bean declaration defaultannotationhandlermapping
.
here xml working:
<mvc:interceptors> <bean name="interceptor1" class="com.foo.bar" /> <bean name="interceptor2" class="com.foo.bar2" /> </mvc:interceptors>
here xml can't work:
<bean name="interceptor1" class="com.foo.bar" /> <bean name="interceptor2" class="com.foo.bar2" /> <bean class="org.springframework.web.servlet.mvc.annotation.defaultannotationhandlermapping"> <property name="order" value="0" /> <property name="interceptors"> <list> <ref bean="interceptor1"/> <ref bean="interceptor2"/> </list> </property> </bean>
i thought spring automatically pick bean of type defaultannotationhandlermapping
, doesn't seem case.
note i'm annotating of controller classes @controller
, methods within controller @requestmapping
.
any thoughts?
spring constructing 1 "mappedinterceptor" each bean (org.springframework.web.servlet.handler.mappedinterceptor).
when want understand spring namespacehandler, find crucial @ source code (for namespacehandler , beandefinitionparser).
the mvcnamespacehandler pointed me interceptorsbeandefinitionparser ...
this indicates should building bean each 'interceptor', little bit this...
<bean name="interceptor1" class="com.foo.bar" /> <bean name="interceptor2" class="com.foo.bar2" /> <bean class="org.springframework.web.servlet.handler.mappedinterceptor"> <constructor-arg index="0"> <null /> </constructor-arg> <constructor-arg index="1"> <ref bean="interceptor1"/> </constructor-arg> </bean> <bean class="org.springframework.web.servlet.handler.mappedinterceptor"> <constructor-arg index="0"> <null /> </constructor-arg> <constructor-arg index="1"> <ref bean="interceptor2"/> </constructor-arg> </bean>
this almost-definitely need tinkering, gets lot closer spring doing ...
give try, , if doesn't work first-time, harder @ source code i've linked above.
hth
Comments
Post a Comment