<mvc:annotation-driven/>使用介紹

文采杰出發表於2024-07-08

mvc:annotation-driven/ 是 Spring MVC 中的一個配置元素,它用於簡化和加速 Spring MVC 應用的配置,尤其是那些使用註解的控制器。當你在 Spring MVC 配置檔案中新增了 mvc:annotation-driven/ 元素時,Spring 會自動註冊一系列的訊息轉換器(message converters)、資料繫結器(data binders)、驗證器等必要的元件來支援註解驅動的控制器。

  • 使用介紹
  1. 新增依賴:
    確保你的專案中包含了 Spring MVC 的相關依賴,以及可能需要的訊息轉換器、驗證等功能的依賴。

  2. 配置 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>
  1. 自動註冊元件:
    訊息轉換器(Message Converters):用於在 HTTP 請求和響應之間轉換 Java 物件。Spring MVC 會自動註冊一些常見的訊息轉換器,如 MappingJackson2HttpMessageConverter(用於 JSON)和 StringHttpMessageConverter(用於字串)。
    資料繫結器(Data Binders):用於將請求引數繫結到控制器方法的引數上。Spring MVC 會自動註冊資料繫結器,並處理型別轉換、格式化、驗證等任務。
    異常處理器(Exception Handlers):用於處理控制器方法丟擲的異常。你可以使用 @ExceptionHandler 註解來定義異常處理器。
    驗證器(Validators):用於驗證控制器方法的引數。你可以使用 JSR 303/380 註解(如 @NotNull, @Size 等)來進行驗證,Spring MVC 會自動處理這些驗證。

  2. 使用註解:
    在控制器中,你可以使用如 @RequestMapping, @Controller, @GetMapping, @PostMapping 等註解來定義請求對映和處理方法。這些註解將替代傳統的 XML 配置方式。

  3. 注意事項:
    使用 mvc:annotation-driven/ 時,不需要再手動配置訊息轉換器、資料繫結器等元件,除非你有特殊的需求。
    如果你的專案需要支援特定的訊息格式(如 XML),你可能需要手動註冊相應的訊息轉換器。
    mvc:annotation-driven/ 還支援自定義的訊息轉換器、資料繫結器、異常處理器等元件的註冊,以滿足特定的需求。
    使用 mvc:annotation-driven/ 通常還需要配置 mvc:resources 來指定靜態資源的位置,以便 Spring MVC 能夠正確地處理靜態資源的請求。
    總之,mvc:annotation-driven/ 是 Spring MVC 中一個非常有用的配置元素,它簡化了註解驅動的控制器的配置,並自動註冊了必要的元件來支援註解驅動的控制器。

相關文章