1. 程式人生 > >六、springMVC-mvc.xml 配置檔案片段講解 (未使用預設配置檔名)

六、springMVC-mvc.xml 配置檔案片段講解 (未使用預設配置檔名)

Xml程式碼

<context:component-scan/> 掃描指定的包中的類上的註解,常用的註解有:

@Controller 宣告Action元件 @Service    宣告Service元件    @Service("myMovieLister")  @Repository 宣告Dao元件 @Component   泛指元件, 當不好歸類時.  @RequestMapping("/menu")  請求對映 @Resource  用於注入,( j2ee提供的 ) 預設按名稱裝配,@Resource(name="beanName")  @Autowired 用於注入,(srping提供的) 預設按型別裝配  @Transactional( rollbackFor={Exception.class}) 事務管理 @ResponseBody @Scope("prototype")   設定bean的作用域

<mvc:annotation-driven /> 是一種簡寫形式,完全可以手動配置替代這種簡寫形式,簡寫形式可以讓初學都快速應用預設配置方案。

<mvc:annotation-driven /> 會自動註冊DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean,是spring MVC為@Controllers分發請求所必須的。 並提供了:資料繫結支援,@NumberFormatannotation支援,@DateTimeFormat支援,@Valid支援,讀寫XML的支援(JAXB),讀寫JSON的支援(Jackson)。 後面,我們處理響應ajax請求時,就使用到了對json的支援。 後面,對action寫JUnit單元測試時,要從spring IOC容器中取DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean,來完成測試,取的時候要知道是<mvc:annotation-driven />這一句註冊的這兩個bean。

如何替換 <mvc:annotation-driven />?他到底做了什麼工作,請看,最後面的 十九節 <mvc:annotation-driven /> 到底做了什麼工作。

<mvc:interceptors/> 是一種簡寫形式。通過看前面的大圖,知道,我們可以配置多個HandlerMapping。<mvc:interceptors/>會為每一個HandlerMapping,注入一個攔截器。其實我們也可以手動配置為每個HandlerMapping注入一個攔截器。

<mvc:default-servlet-handler/> 使用預設的Servlet來響應靜態檔案。

<mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/> 匹配URL  /images/**  的URL被當做靜態資源,由Spring讀出到記憶體中再響應http。