2017-06-19 34 views
1

我對Spring MVC非常陌生,我對你有一個問題。MVC Annotation Spring MVC <mvc:annotation-driven />

我知道標籤<mvc:annotation-driven />在servlet配置中處理@Controller,@RequestMapping等註解,但我使用的是portlet,我很好奇這個註釋是如何工作的?

Thx!

+0

哪個註解? – Juvanis

+0

抱歉,它是來自spring -context文件的標籤:)我剛剛編輯了這篇文章:) –

回答

1

MVC:annotation-驅動用於啓用Spring MVC組件的默認配置。

如果你不包括MVC:組件掃描創建豆或在XML文件中

定義豆:註解驅動,如果你還使用了上下文的MVC應用程序會工作。但是,如果在XML文件中沒有使用此元素,則mvc:annotation-driven在配置未配置的特殊bean時會做一些額外的工作。

此標記將註冊將請求發送到您的@Controllers所需的HandlerMapping和HandlerAdapter。另外,它還根據類路徑中的內容應用一些默認值。這樣的設置是:

  • 使用Spring 3類型ConversionService作爲一個更簡單,更強大的 替代的JavaBean PropertyEditor
  • 支持格式化數字字段與@NumberFormat

  • 支持格式化日期,日曆,以及Joda時間字段 @DateTimeFormat,如果Joda時間在類路徑上

  • 支持使用@VALID驗證@Controller輸入,如果JSR-303 提供商是在classpath
  • 支持讀寫XML,如果JAXB是在classpath
  • 讀寫JSON支持,如果傑克遜是在classpath

方面:組件掃描彈簧配置文件中的元素不需要聲明XML文件中的所有bean。看看下面的聲明在Spring配置文件:

<context:component-scan base-package="org.controller"/> 

Spring應用程序配置文件中的上述聲明將掃描指定的包中的類和創建豆實例。請注意,只有當該類使用正確的註釋註釋時,纔可以創建bean。以下是由該元件掃描的註釋:

  • @Component
  • @Repository
  • @Service
  • @Controller
3

它的工作原理是一樣的。

如果用Java配置去,你會使用:

... 
@Configuration 
@EnableWebMvc <- (equivalent to <mvc:annotation-driven />) 
@ComponentScan(basePackageClasses = { MyConfiguration.class }) 
... 

或者,如果你有XML配置去,你會使用:

... 
<mvc:annotation-driven /> 
<context:component-scan base-package="package.*" /> 
... 
相關問題