mvc:annotation-driven/ 是 Spring MVC 中的一個配置元素,它用於簡化和加速 Spring MVC 應用的配置,尤其是那些使用註解的控制器。當你在 Spring MVC 配置檔案中新增了 mvc:annotation-driven/ 元素時,Spring 會自動註冊一系列的訊息轉換器(message converters)、資料繫結器(data binders)、驗證器等必要的元件來支援註解驅動的控制器。
- 使用介紹
-
新增依賴:
確保你的專案中包含了 Spring MVC 的相關依賴,以及可能需要的訊息轉換器、驗證等功能的依賴。 -
配置 Spring MVC:
在 Spring MVC 的配置檔案(通常是 spring-mvc-servlet.xml 或類似的名稱)中,新增 mvc:annotation-driven/ 元素。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--元件掃描...-->
<!--檢視解析器-->
<!--配置檢視控制器,不需要處理業務邏輯,只是單純的透過訪問http://xxxx/test跳轉到test頁面,可以使用該註解-->
<mvc:view-controller path="/test" view-name="test"/>
<!-- 使用了mvc:view-controller,需要開啟註解驅動-->
<mvc:annotation-driven/>
<!-- 其他配置 ... -->
</beans>
-
自動註冊元件:
訊息轉換器(Message Converters):用於在 HTTP 請求和響應之間轉換 Java 物件。Spring MVC 會自動註冊一些常見的訊息轉換器,如 MappingJackson2HttpMessageConverter(用於 JSON)和 StringHttpMessageConverter(用於字串)。
資料繫結器(Data Binders):用於將請求引數繫結到控制器方法的引數上。Spring MVC 會自動註冊資料繫結器,並處理型別轉換、格式化、驗證等任務。
異常處理器(Exception Handlers):用於處理控制器方法丟擲的異常。你可以使用 @ExceptionHandler 註解來定義異常處理器。
驗證器(Validators):用於驗證控制器方法的引數。你可以使用 JSR 303/380 註解(如 @NotNull, @Size 等)來進行驗證,Spring MVC 會自動處理這些驗證。 -
使用註解:
在控制器中,你可以使用如 @RequestMapping, @Controller, @GetMapping, @PostMapping 等註解來定義請求對映和處理方法。這些註解將替代傳統的 XML 配置方式。 -
注意事項:
使用 mvc:annotation-driven/ 時,不需要再手動配置訊息轉換器、資料繫結器等元件,除非你有特殊的需求。
如果你的專案需要支援特定的訊息格式(如 XML),你可能需要手動註冊相應的訊息轉換器。
mvc:annotation-driven/ 還支援自定義的訊息轉換器、資料繫結器、異常處理器等元件的註冊,以滿足特定的需求。
使用 mvc:annotation-driven/ 通常還需要配置 mvc:resources 來指定靜態資源的位置,以便 Spring MVC 能夠正確地處理靜態資源的請求。
總之,mvc:annotation-driven/ 是 Spring MVC 中一個非常有用的配置元素,它簡化了註解驅動的控制器的配置,並自動註冊了必要的元件來支援註解驅動的控制器。