CustomArgumentResolvers 自定义参数解析器无效

Spring配置中自定义参数解析器
     <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->  
     <mvc:annotation-driven />  
     <!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean -->  
     <context:component-scan base-package="com.mvc.rest" />  
     <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->  

     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />  

 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
      <property name="synchronizeOnSession" value="true" />
      <property name="customArgumentResolvers">
      <list>
      <bean class="com.mvc.rest.MyMethodArgumentsResolver"/>
      </list>
      </property>
     </bean> 

如果按照以上配置在DispatcherServlet.java类中初始化处理器适配器initHandlerAdapters时

handlerAdapters会出现4个适配器,第一个和第四个相同类型

[org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter@413be, org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter@1ac3fc7, org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@18f48a1, org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter@1e94f23]

但第四个适配器中除包含了第一个适配器的所有参数解析器,还包括了自定义的参数解析器,所以修改上下文配置,调整一下自定义参数配置

 <!-- 自定义参数解析 -->
     <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
      <property name="synchronizeOnSession" value="true" />
      <property name="customArgumentResolvers">
      <list>
      <bean class="com.mvc.rest.MyMethodArgumentsResolver"/>
      </list>
      </property>
     </bean> 
     <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->  
     <mvc:annotation-driven />  
     <!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean -->  
     <context:component-scan base-package="com.mvc.rest" />  
     <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->  
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />  

这样我们自定义的参数解析器就到了第一的位置,当然,如果各位大神有更好的方法,在此求教,谢谢~~ 


欢迎加入我的QQ交流群425783133

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值