Spring MVC 注解自動(dòng)掃描失效原因分析
關(guān)于spring自動(dòng)掃描,在控制層,采用注解配置@Controller,項(xiàng)目能夠成功啟動(dòng),且無(wú)任何報(bào)錯(cuò)。但是 在進(jìn)行頁(yè)面跳轉(zhuǎn)時(shí),并未進(jìn)行相應(yīng)的攔截,整個(gè)界面只能在默認(rèn)界面 ,跳轉(zhuǎn)報(bào)404,由于樓主初次嘗試,在繞了一個(gè)大圈后,初步確認(rèn)是在掃描時(shí)mvc控制器,并未成功,詳情請(qǐng)看代碼
<!-- 開(kāi)啟controller注解支持 --> <context:component-scan base-package="com.cjw.test.controller" use-default-filters="false"> </context:component-scan> <!--使控制器注解生效--> <mvc:annotation-driven/> <!-- 容器默認(rèn)的DefaultServletHandler處理 所有靜態(tài)內(nèi)容與無(wú)RequestMapping處理的URL--><mvc:default-servlet-handler/>
但是在進(jìn)行頁(yè)面跳轉(zhuǎn)時(shí),始終報(bào)404,因?yàn)樵诳刂破鲯呙钑r(shí)未將控制層與其余注解區(qū)別,修改后代碼如下:
<!-- 開(kāi)啟controller注解支持 --> <context:component-scan base-package="com.cjw.test.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
同時(shí),為求將配置項(xiàng)最簡(jiǎn)單化,樓主分別剔除相應(yīng)的配置,觀察其會(huì)對(duì) 整個(gè)功能的啟動(dòng)或跳轉(zhuǎn)產(chǎn)生什么影響,在去除
<mvc:annotation-driven/>
后發(fā)現(xiàn)同樣不能跳轉(zhuǎn)。最后確認(rèn)其原因如下:
最后的配置如果沒(méi)有<mvc:annotation-driven/>,那么所有的Controller可能就沒(méi)有解析,所有當(dāng)有請(qǐng)求時(shí)候都沒(méi)有匹配的處理請(qǐng)求類,就都去<mvc:default-servlet-handler/>即default servlet處理了。添加上<mvc:annotation-driven/>后,相應(yīng)的請(qǐng)求被Controller處理,而靜態(tài)資源因?yàn)闆](méi)有相應(yīng)的Controller就會(huì)被default servlet處理??傊疀](méi)有相應(yīng)的Controller就會(huì)被default servlet處理就ok了。
web.xml配置如下,采用靜態(tài)頁(yè)面跳轉(zhuǎn):
<servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
以上所述是小編給大家介紹的Spring MVC 注解自動(dòng)掃描失效原因分析,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
mybatis?<foreach>標(biāo)簽動(dòng)態(tài)增刪改查方式
這篇文章主要介紹了mybatis?<foreach>標(biāo)簽動(dòng)態(tài)增刪改查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
詳解spring batch的使用和定時(shí)器Quart的使用
spring Batch是一個(gè)基于Spring的企業(yè)級(jí)批處理框架,它通過(guò)配合定時(shí)器Quartz來(lái)輕易實(shí)現(xiàn)大批量的數(shù)據(jù)讀取或插入,并且全程自動(dòng)化,無(wú)需人員管理2017-08-08
阿里Sentinel支持Spring Cloud Gateway的實(shí)現(xiàn)
這篇文章主要介紹了阿里Sentinel支持Spring Cloud Gateway的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
Spring Cloud Config實(shí)現(xiàn)分布式配置中心
這篇文章主要介紹了Spring Cloud Config實(shí)現(xiàn)分布式配置中心,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
解決mybatis plus 駝峰式命名規(guī)則問(wèn)題
這篇文章主要介紹了解決mybatis plus 駝峰式命名規(guī)則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

