SpringMVC筆記- 不配置HandlerMapping

來源:互聯網
上載者:User

標籤:訪問   ges   log   不能   resource   value   default   inf   ring   

使用SpringMVC架構時發現有的配置了HandlerMapping,而有的沒有,那麼它們有什麼區別呢?不配置能不能正常使用架構呢?

下面我們看一看不配置任何HandlerMapping時,架構會使用什嗎?

下面我們注釋掉架構中配置HandlerMapping的代碼

<?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 4     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 5     xsi:schemaLocation=" 6         http://www.springframework.org/schema/beans 7         http://www.springframework.org/schema/beans/spring-beans.xsd 8         http://www.springframework.org/schema/context 9         http://www.springframework.org/schema/context/spring-context.xsd10         http://www.springframework.org/schema/mvc11         http://www.springframework.org/schema/mvc/spring-mvc.xsd">12 13     <context:component-scan base-package="com.springmvc.demo.controller" />14     15     <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />16     <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /> -->17     <!-- <mvc:default-servlet-handler/> -->18     <!-- <mvc:annotation-driven /> -->19     <!-- <mvc:resources location="/resource/images/" mapping="/images/**" /> -->20     <bean id="/simpleController" class="com.springmvc.demo.controller.SimpleController"></bean>21     22     <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">23     </bean> -->24     25     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">26         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />27         <property name="prefix" value="/" />28         <property name="suffix" value=".jsp" />29     </bean>30     31     32 </beans>

這次我們打一斷點調試一下看看使用了什麼HandlerMapping:

 

可以看到註冊了兩個HandlerMapping,所以:

1.訪問/simpleController,正常

2.訪問/user/preAddUser(通過@RequestMapping註解的)也正常,因為DefaultAnnotationHandlerMapping也可以處理註解,這個還是spring3.1之前處理註解的一個類,3.1及以後改為了RequestMappingHandlerMapping這個類,查看api可以看到這個類【已經到期】,預設情況繼續使用這個類可能是為了向後相容。

其實這是一個預設配置,位置在spring-webmvc.jar裡面,如果你沒有顯式註冊一個HandlerMapping,那麼就會使用org.springframework.web.servlet.DispatcherServlet.properties這個裡面預設的配置,配置如下:

org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

所以就會註冊上面兩個RequestMapping。

SpringMVC筆記- 不配置HandlerMapping

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.