Spring MVC 如何在使用<mvc:annotation-driven/>情况下自定义RequestMappingHandlerMapping

根据项目需要,自定义了RequestMappingHandlerMapping,实现其中的getCustomMethodCondition方法,以实现自定义的请求路由。

此时,Controller中会出现@RequestMapping内容完全相同的多个方法。

自定义的RequestMappingHandlerMapping的子类通过注册到Spring容器

而开启了的mvc:annotation-driven/,会去注册默认的RequestMappingHandlerMapping,导致上面说得“@RequestMapping内容完全相同的多个方法”冲突,无法正常启动项目。

由于有许多必要的bean是由mvc:annotation-driven/自动注册的,不能不用。
所以希望找到在使用mvc:annotation-driven/的情况下,不去注册默认的RequestMappingHandlerMapping的方法!

2个回答

weixin_43969430
丿ぉ宁 回复cwz_茶仔: 请问你这个问题解决了吗,我也有这个需求,一直没找到解决方案
大约 2 个月之前 回复
jk940438163
cwz_茶仔 看过了,没用
2 个月之前 回复

如果是ssm项目的话,我终于找到了一个解决方案,
参考 https://blog.csdn.net/lucky_ly/article/details/79505202
就是去除springmvc的xml配置,如果还使用非springmvc的xml配置(mybatis、redis等),则不适用文中的非SpringMVC上下文配置
这样,springmvc的配置就和springboot中一样使用java类来配置,我已经配置测试有效了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring MVC使用mvc:annotation-driven标签错误
最近做SpringMvc开发,由于时间比较紧,就先开发接口,后开发的页面.结果现在把页面加进来的时候,发现了一些问题.rnWeb.xml配置:rnrn tfcvmsrn org.springframework.web.servlet.DispatcherServletrn rn rn contextConfigLocationrn classpath:config/tfcvmsWeb-servlet.xmlrn rn 1rn rn rn tfcvmsrn /rn rn另外tfcvmsWeb-servlet.xml文件主要配置如下rn rn rn rn rn rn这样配置的时候,项目启动发现rn[img=https://img-bbs.csdn.net/upload/201610/11/1476174000_645635.png][/img]
拦截器与<mvc:annotation-driven />冲突解决
NULL 博文链接:https://xj84.iteye.com/blog/2065681
菜鸟之路——Spring MVC(十二)<mvc:annotation-driven/>做了什么
是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的,即解决了@Controller注解使用的前提配置。   同时它还提供了:数据绑定支持
Spring MVC mvc:annotation-driven的配置问题,请大神看看!
我把配置贴来了,还有报错信息,请大神们看看:rnorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0': Cannot create inner bean 'org.springframework.http.converter.json.MappingJackson2HttpMessageConverter#0' of type [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter] while setting bean property 'messageConverters' with key [1]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.http.converter.json.MappingJackson2HttpMessageConverter#0' defined in class path resource [springmvc-servlet.xml]: Cannot create inner bean 'com.fasterxml.jackson.databind.ObjectMapper#3109800a' of type [com.fasterxml.jackson.databind.ObjectMapper] while setting bean property 'objectMapper '; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.fasterxml.jackson.databind.ObjectMapper#3109800a' defined in class path resource [springmvc-servlet.xml]: Cannot create inner bean 'Java.text.SimpleDateFormat#3b47e444' of type [Java.text.SimpleDateFormat] while setting bean property 'dateFormat '; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [Java.text.SimpleDateFormat] for bean with name 'Java.text.SimpleDateFormat#3b47e444' defined in class path resource [springmvc-servlet.xml]; nested exception is java.lang.ClassNotFoundException: Java.text.SimpleDateFormat
spring mvc 加上tx:annotation-driven标签报错
[code=Java]rnorg.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext-aop.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;Lorg/springframework/beans/factory/parsing/ComponentRegistrar;Ljava/lang/Object;Ljava/lang/Boolean;)Vrn at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)rn at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)rn at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)rn at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)rn at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)rn at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)rn at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)rn at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)rn at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)rn at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:509)rn at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:427)rn at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:294)rn at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:215)rn at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)rn at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)rn at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)rn at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)rn at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)rn at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)rn at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)rn at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)rn at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)rn at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)rn at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)rn at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)rn at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)rn at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)rn at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)rn at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)rn at org.apache.catalina.core.StandardService.start(StandardService.java:516)rn at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)rn at org.apache.catalina.startup.Catalina.start(Catalina.java:578)rn at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)rn at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)rn at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)rn at java.lang.reflect.Method.invoke(Method.java:597)rn at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)rn at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)rnCaused by: java.lang.NoSuchMethodError: org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;Lorg/springframework/beans/factory/parsing/ComponentRegistrar;Ljava/lang/Object;Ljava/lang/Boolean;)Vrn at org.springframework.transaction.config.TxAnnotationDrivenExecutor$AopAutoProxyConfigurer.configureAutoProxyCreator(TxAnnotationDrivenExecutor.java:102)rn at org.springframework.transaction.config.TxAnnotationDrivenExecutor.doExecute(TxAnnotationDrivenExecutor.java:11)rn at org.springframework.transaction.config.TxAnnotationDrivenExecutor.doExecute(TxAnnotationDrivenExecutor.java:1)rn at org.springframework.context.config.AbstractSpecificationExecutor.execute(AbstractSpecificationExecutor.java:43)rn at org.springframework.context.config.AbstractFeatureSpecification.execute(AbstractFeatureSpecification.java:75)rn at org.springframework.context.config.AbstractSpecificationBeanDefinitionParser.parse(AbstractSpecificationBeanDefinitionParser.java:44)rn at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)rn at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1411)rn at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1401)rn at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:188)rn at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:144)rn at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:114)rn at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)rn at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)rn ... 37 morern2011-10-13 10:02:52 org.apache.catalina.core.StandardContext listenerStartrn[/code]rnrn我想使用Spring最新的全Annotation方式还有@Transactional,但无奈在配置文件里加上就报错了。rnrn配置文件如下:rn[code=Java]rnrnrnrnrn rnrnrn[/code]
36. Spring MVC视频_annotation-driven配置
全网第一套基于Spring4.x、涵盖所有企业开发技术点、源码级讲授的 Spring MVC视频。本套视频涵盖 Spring MVC 开发过程中所有的技术问题,多个技术点更是从源代码级别进行分析,授之以渔。学习本套视频后,你会真正理解 Spring MVC 的优雅和简洁,并使你具备开发 Spring MVC 企业级项目的能力。
spring加载自定义命名空间【springmvc的【mvc:annotation-driven】配置】
spring加载自定义命名空间具体步骤:1、通过xml命名空间找到具体的解析处理器2、根据localName定位到具体的解析器3、解析具体的xml生成beandefinition注册到spring容器中主要配置文件和类:META-INF/spring.handlersMETA-INF/spring.schemasNamespaceHandlerBeanDefinitionParser*.xsd==...
Spring MVC 自定义视图解析器
在实际开发中InternalResourceViewResolver视图解析器是不够用的, 需要配合BeanNameViewResolver协调使用。 一 BeanNameViewResolver的实例 Spring MVC开发环境搭建参考:https://blog.csdn.net/yhl_jxy/article/details/51228202 1、项目结构   注意:红框为新...
Spring MVC 自定义基本配置
Spring MVC 自定义基本配置 添加其他的Servlet、Filter和Linstener(除DispatcherServlet和ContextLoaderListener外) import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegi...
Spring MVC自定义错误页面
在web.xml中添加: /error 添加控制器: @Controller public class ErrorController { @RequestMapping(path = "/error", produces = MediaType.APPLICATION_JSON_VALUE) public ModelAndView handle(HttpServ
自定义Spring MVC拦截器
“芣苢春来盈女手,梧桐老去长孙枝” 简介: Spring MVC中的 Interceptor拦截器拦截请求是通过实Handlerlnterceptor接口来完成的。在 Spring MVC中定义一个 Interceptor拦截器非常简单,通常在要定义的 Interceptor拦截器类中实现 Spring的 Handlerlnterceptor接口。 Handlerlnterceptor接口中定义了...
spring mvc自定义类型转换器
参考spring boot 配置全局日期类型转换器 1 定义转换器 @Component public class DateConvert implements Converter&amp;lt;String,Date&amp;gt; { @Override public Date convert(String source) { SimpleDateFormat simpleD...
Spring MVC自定义类型转换器
Spring MVC自定义类型转换器一般分为以下几步: 定义一个类实现Converter接口,其中接口主要内容是实现两个类型之间的转换。 在Spring MVC的配置文件中将刚才添加的Converter类进行配置。 在@RequestMapping修饰的方法中使用Converter进行转换之后的类型入参。 下面看一个示例:首先我们定义了一个实现Converter接口的对象,这里我们的UserConv
【spring mvc(四)】spring mvc使用静态资源
1.问题再现: spring / we.xml的mapping配置如果是“/”,那么在jsp页面中访问js文件会被拦截: 打开浏览器开发者工具,发现js访问不到。 下面是集中解决方案。 2.修改web.xml,把mapping改成"*.htm"或者"*.do"这样的,就可以访问了。当然这种并不友好,如果业务需求必须是“/”,就
SpringMVC学习笔记——数据转换之mvc:annotation-driven
以往用到的地方: (1)配置直接响应转发的页面,加入view-controller后,@RequestMapping失效,加入annotation-driven,使之生效。 &amp;amp;lt;!-- 配置直接转发的页面 --&amp;amp;gt; &amp;amp;lt;!-- 可以直接响应转发的页面,而无需再经过 Handler处理 --&amp;amp;gt; &amp;amp;lt;mvc:view-controller path=&amp;quot;...
数据转换之mvc:annotation-driven(日期类转换)
1.日期转换 2.spring.xml配置文件 3.作用 3.1mvc:annotation-driven/ 会自动注册RequestMappingHandlerMapping、RequestMappingHandlerAdapter与ExceptionHandlerExceptionResolver三个bean。 3.2提供一下支持: (1)支持使用 ConversionService 实例...
使用自定义Interceptor和mvc:annotation-driven配置自定义拦截器失效问题
&amp;lt;mvc:annotation-driven /&amp;gt;配置问题
MVC、Spring MVC 学习笔记
一、MVC 1、Model 模型层,可以简单理解就是数据层,用于提供数据。在项目中,(简单理解)一般把数据访问和操作,比如将对象关系映射这样的代码作为Model层,也就是对数据库的操作这一些列的代码作为Model层。比如代码中我们会写DAO和DTO类型的代码,那这个DAO和DTO我们可以理解为是属于Model层的代码。 2、View 视图层,就是UI界面,用于跟用户进行交互。一般所有的JSP、Ht...
如何在 mvc ispostback ?
如何在 mvc ispostback ?rn或是其他相同效果的方法!
如何在spring mvc下修改json的输出
现在我在spring mvc构架下在controller里输出json是用目前流行的配置MappingJacksonHttpMessageConverter这个converter,然后在方法的返回值前面里加上@ResponseBody,但如何做到自定义修改输出的json,我只想在json数据的前后加上括号和一些string,比如原本输出[ name:\"John\"], 目标是输出 jsonCallback([ name:\"John\"])rnrn是不是需要自己写一个类,继承MappingJacksonHttpMessageConverter,但这个类里具体代码如何写,请教下高人。。
如何在Spring mvc下实现BeanNameAutoProxyCreator 动态代理?????
偶的配置文件如下: rn rn rn rn rn rn rn rnPlanView rn rn rn rnrnrn rn rnsystem/ListView rnplanCode rn rnrn rn rn rnrn rn rn rn*Impl rn rn rn rn rnListAdvisor rn rn rn rnrnrn rn rn rn rn rn.*create* rn rn rnrn rn0 rn rnrnrn rnrnrn注:planImpl实现ListObject接口,里面有createParentList, 等等以create开头命名的方法. rnrn为什么我在请求PlanView.do动作时,我的ListAdvice没有响应呢! rn是没有拦截到planImpl,或者是没拦截到planImpl里面的createParentList的方法吗? 还是有其他的原因? rnrn望高手作答!! rn谢谢!不省感激!!
如何在Spring MVC中自定义注解
 于是乎就要找办法解决,把原先写到类实例的值改成放到方法执行时传入,这样的话,只要在interceptor中把相关的值写以request attributes中就可以了,然后在方法执行时注入到相应的参数中。而这样就要用到注解了,可是Spring里的注解没有关于Request Attribute的,只有@RequestParameter和@ModeAttribute这类的,这些并不合用。看来只能另...
使用注解开发Spring mvc
web.xml <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://ja
Spring MVC 使用心得
这段时间用 Spring MVC 进行了开发,觉得很方便。不过也踩到了一些坑,有一些心得。Spring Autowired 注入通常的套路是先声明一个接口,再定义一个或多个该接口的实现。 Autowired 时侯只用接口类型就可以,Spring 会自动找接口的实现注入。 如果接口有多个实现,则可以入 @Bean 定义一个 返回具体对象新实例的函数,并在类中用 @Configuration 来配置
Spring MVC:原理与使用
本人上一篇博文提到了Spring的注入功能,这样在存在对象依赖(具体意思可见上一篇博文)的时候就不用自己生成一个对象了,特别是对于较多的无状态对象的时候,这个特别方便,加上Spring提供的用xml配置文件和代码注解两种方式,使得使用更加灵活。然而spring的功能远不止如此,Spring的强大功能其实还在于做Java后台框架,即Spring MVC,把后台的逻辑和和视图解耦分离,方便使用与扩展,
Spring MVC使用注解开发
实际上我们的第一个Hello案例中实现了Controller接口,这就具有了侵入,Spring MVC作为一个轻量级框架,一大特点就是没有侵入性(继承框架的类或者接口),所以平时写代码用注解开发的多,既简单而且方便,没有第一个案例那么复杂。Controller的设计解析:@Controller public class HelloController { @RequestMapping("
Spring MVC使用Demo
可以了解spring mvc的开发环境,以及注解使用,对理解spring mvc的工作原理有直观的帮助。
Spring MVC的使用
NULL 博文链接:https://bdk82924.iteye.com/blog/1797306
spring mvc 的使用问题
最近用到spring mvc以前一直没有接触过,想问下spring mvc 有没有类似于servlet的services的方法呢rnrnprotected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException }rnrn就是每次进入到mvc的方法前一定进入的方法,我需要封装一些数据。rn如果有,麻烦指教一二。rn谢谢啦
使用Spring MVC上传图片
一、在表单中添加文件上传域:      大多数的表单域都是文本数据,所以能够很容易地通过名称-值的格式提交到服务器上。事实上,典型的提交会带有一个application/x-www-form-urlencoded这样的内容类型并将表单上的名称-值以&符号分隔。      文件上传与大多数表单输入域所提交的类型不同,上传的内容一般是二进制文件,并不适合这种名称-值的格式。所以,如果希望上传图片,
spring mvc 零配置与使用
spring mvc关联配置文件包含web.xml,xxx-servlet.xml,application*.xml。 [b][color=green][size=large]1. web.xml[/size][/color][/b] [code=&quot;java&quot;] contextConfigLocation classpath*:application/ap...
Spring MVC的配置和使用
笔记仓库:https://github.com/nnngu/LearningNotes Spring MVC需要的jar包 文章中 Spring MVC 使用的版本是 3.2.18 , 需要的 jar 包如下: spring-webmvc jstl 1.1.2 aopalliance 1.0 commons-logging 1.1.1 spring-aop spring-be...
Spring MVC 拦截器 的使用
    Spring处理器拦截器都实现了HandlerInterceptor接口,HandlerInterceptor接口主要有以下三个方法:public interface HandlerInterceptor { default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Objec...
spring mvc 使用
spring mvc 使用技术01 文档资料,需要加强,这个做为自己基本使用
Spring MVC拦截器的使用
这篇文章是对Spring MVC拦截器如何使用的整理。 它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。 实现流程: 一、定义Intercepter类,实现HandlerIntercepter接口,实现后需要实现三个方法: package demo.interceptor; impor
Spring MVC的例子使用
NULL 博文链接:https://jilongliang.iteye.com/blog/1333370
Spring MVC使用笔记
在浏览器地址栏输入http://localhost:8080/spmvc01/reg.jsp,显示界面: reg.jsp的代码如下:(reg.jsp放在WebRoot文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <% String path = request.getContextPath();
Spring MVC 使用 静态资源
页面引入jstl标签库 项目的目录如下图所示: Spring Mvc 的配置文件写成下面这样子注意几个地方: xmlns:mvcxsi:schemaLocationmvc:resourcesmvc:annotation-driven     xmlns:context="http://www.springframework.org/s
mvc和spring的结合使用
SpringMVC         1)概念:用来简化基于MVC架构的web应用程序开发的框架         注:SpringMVC属于Spring框架的一部分         2)五大组件            a、DispatcherServlet  前端控制器            b、HandlerMapping     映射处理器        里面有请求地址与模型的对象关系
在spring mvc使用urlrewrite
在spring mvc 上使用urlrewrite碰到问题。rn因为spring mvc是通过url mapping 到对应的controller,比如rnmessageReadedControllerrn在页面message,点击message,那么就会执行messageReadedController。rn因为spring mvc项目的url格式是:http://域名/项目名/message_readed.htmlrn但是,使用urlrewrite后,情况就变了,rnmessage,rn在urlrewrite.xml中,rn[code=XML]rn rn rn information about usrn rn message_readed/(.*).htmlrn message_readed.html?aa=$1rn rn[/code]rn但这样url就没有了项目名,即使在页面加上去后,也不能成功。rn不知道大侠有没有碰到过这个问题,该如何解决
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview