`
fengjianquan9527
  • 浏览: 33127 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DefaultAnnotationHandlerMapping

 
阅读更多
开始是为了实现一个全局的拦截器DefaultHandlerInterceptor,继承HandlerInterceptorAdapter类

并把这个类注入到Spring的DefaultAnnotationHandlerMapping的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"  />
可是在DefaultHandlerInterceptor拦截器中,老是不进断点.

原因:

配置了<mvc:annotation-driven/>

这个配置声明

{没有 defaultAnnotationHandlerMapping这个属性,

对于@ResultMapping标签的解析,用 "org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping” 这个类来处理.}

所以要去掉<mvc:annotation-driven />,去掉其默认配置,

否则会实例化两个DefaultAnnotationHandlerMapping,并且不使用你配置的那个 DefaultAnnotationHandlerMapping.

org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter与<mvc:annotation-driven />关系与上同理.
分享到:
评论

相关推荐

    spring3.0MVC注解(附实例).

    此配置不仅展示了如何配置`DefaultAnnotationHandlerMapping`和`AnnotationMethodHandlerAdapter`,还包括了拦截器和自定义初始化器的定义,为注解驱动的MVC应用提供了完整的配置框架。 ### 总结 Spring3.0MVC注解...

    spring mvc

    当你自定义`HandlerMapping`或`HandlerAdapter`时,必须确保同时存在对应的`DefaultAnnotationHandlerMapping`和/或`AnnotationMethodHandlerAdapter`,以便系统能够正确解析`@RequestMapping`。在XML配置文件中,...

    spring3.0MVC

    DispatcherServlet 默认支持 `DefaultAnnotationHandlerMapping` 和 `AnnotationMethodHandlerAdapter`,这意味着如果你没有自定义配置,它们会自动处理 `@RequestMapping`。然而,如果你有自定义的 `HandlerMapping...

    Spring3MVC注解(附实例).doc

    在 Spring3MVC 框架中,DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 是两个默认的 HandlerMapping 和 HandlerAdapter 实现。 Spring3MVC 注解的配置方法 要使用 Spring3MVC 注解,需要在 ...

    spring

    标签"源码"意味着文章可能探讨了Spring框架的内部工作原理,包括其核心类如`AnnotationMethodHandlerAdapter`和`DefaultAnnotationHandlerMapping`的实现细节。`AnnotationMethodHandlerAdapter`是Spring MVC中处理...

    Spring mvc 3 注解精华.docx

    通常,我们只需要在配置文件中声明`DefaultAnnotationHandlerMapping`和`AnnotationMethodHandlerAdapter`这两个bean即可。 例如,在XML配置文件中,可以这样设置: ```xml xmlns:xsi=...

    Spring mvc 学习拾遗.doc

    1. **mvc:annotation-driven**:此标签用于启用基于注解的支持,包括自动注册 `DefaultAnnotationHandlerMapping` 和 `AnnotationMethodHandlerAdapter`。这两个类分别用于映射控制器中的方法与 URL,以及处理请求和...

    Spring3.0MVC注解(附实例)

    为了使Spring MVC能够识别并处理这些注解,你需要在`DispatcherServlet`的配置中包含`DefaultAnnotationHandlerMapping`和`AnnotationMethodHandlerAdapter`。这两个组件是Spring MVC框架的核心部分,它们负责映射...

    spring3.0MVC注解(附实例).pdf

    为了使Spring MVC能够识别和处理这些注解,需要在`DispatcherServlet`的配置中包含`DefaultAnnotationHandlerMapping`和`AnnotationMethodHandlerAdapter`。这两个组件分别负责处理类和方法级别的注解路由。在XML...

    SpringMVC与struts的区别

    SimpleUrlHandlerMapping通过配置文件将一个URL映射到Controller,DefaultAnnotationHandlerMapping则通过注解将一个URL映射到Controller。 HandlerAdapter接口是SpringMVC中的一种处理请求的适配器机制。它负责将...

    SpringMvc简单入门

    Spring MVC 提供了多种实现,如 `SimpleUrlHandlerMapping` 和 `DefaultAnnotationHandlerMapping` 等。 - **实现类**: - **SimpleUrlHandlerMapping**:通过配置文件,把一个 URL 映射到 Controller。 - **...

    SpringMVC深入总结

    常见的实现有`SimpleUrlHandlerMapping`(基于XML配置的URL映射)和`DefaultAnnotationHandlerMapping`(基于注解的URL映射)。 3. `HandlerAdapter`接口:处理请求的适配器,使得DispatcherServlet可以与不同的...

    spring mvc学习文档

    - 示例代码展示了如何在 XML 配置文件中启用默认的 `DefaultAnnotationHandlerMapping` 和 `AnnotationMethodHandlerAdapter`,这两个组件是处理注解的基础。 ```xml ...

    Spring3MVC真正入门资料.doc

    它有多个实现类,如 SimpleUrlHandlerMapping 和 DefaultAnnotationHandlerMapping 等。 3. HandlerAdapter 接口 -- 处理请求的映射 HandlerAdapter 接口负责将请求映射到对应的 Controller 中的方法上。它有多个...

    Spring3 MVC 学习笔记 入门

    - `&lt;bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/&gt;` 用于处理基于注解的映射。 #### 四、Spring MVC 的优势 1. **清晰的架构**:MVC 设计模式帮助开发者更清晰...

    spring3mvc入门资料

    常见的实现类有`SimpleUrlHandlerMapping`和`DefaultAnnotationHandlerMapping`,前者通过配置文件将URL映射到Controller,后者则利用注解将URL映射到Controller类。 3. **HandlerAdapter**:处理请求的适配器,它...

    简单实现springmvc共26页.pdf.zip

    Spring MVC 内置了多种 HandlerMapping 实现,如 BeanNameUrlHandlerMapping、DefaultAnnotationHandlerMapping 等。 5. **HandlerAdapter**:适配器模式用于调用 Controller 方法,因为它并不关心 Controller 的...

    SpringMVC整合hibernate,mysql.zip

    在Spring的配置文件(如`spring-servlet.xml`)中,我们需要定义视图解析器(如InternalResourceViewResolver),处理器映射器(如BeanNameUrlHandlerMapping或DefaultAnnotationHandlerMapping)和处理器适配器(如...

    SpringMVC快速入门教程-深入分析

    Spring提供了多种实现,例如SimpleUrlHandlerMapping用于基于URL配置的映射,DefaultAnnotationHandlerMapping用于基于注解的映射。 3. HandlerAdapter:它是一个适配器接口,使得DispatcherServlet可以调用不同类型...

Global site tag (gtag.js) - Google Analytics