使用@RequestMapping映射請求
使用@RequestParam綁定請求參數到方法參數
使用@ModelAttribute提供壹個從模型到數據的鏈接
使用@SessionAttributes指定存儲在會話中的屬性
<context:annotation-config/>
他的作用是隱式地向 Spring 容器註冊
AutowiredAnnotationBeanPostProcessor、
CommonAnnotationBeanPostProcessor、
PersistenceAnnotationBeanPostProcessor、
RequiredAnnotationBeanPostProcessor
這 4 個BeanPostProcessor。
例如:
如果想使用@ Resource 、@ PostConstruct、@ PreDestroy等註解就必須聲明CommonAnnotationBeanPostProcessor。
如果想使用@PersistenceContext註解,就必須聲明PersistenceAnnotationBeanPostProcessor的Bean。
如果妳想使用@Autowired註解,那麽就必須事先在 Spring 容器中聲明 AutowiredAnnotationBeanPostProcessor Bean。傳統聲明方式如下:
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor "/>
如果想使用 @Required的註解,就必須聲明RequiredAnnotationBeanPostProcessor的Bean。同樣,傳統的聲明方式如下:
<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/>
記得,使用註解壹般都會配置掃描包路徑選項
<context:component-scan base-package=”XX.XX”/>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
這個配置常常見於web.xml文件中
<load-on-startup>1</load-on-startup>是啟動順序,讓這個Servlet隨Servletp容器壹起啟動。
<url-pattern>*.do</url-pattern> 會攔截*.do結尾的請求。
<servlet-name>dispatcherServlet</servlet-name>這個Servlet的名字是dispatcherServlet,可以有多個DispatcherServlet,是通過名字來區分的。每壹個DispatcherServlet有自己的WebApplicationContext上下文對象。同時保存的ServletContext中和Request對象中,關於key,以後說明。
在DispatcherServlet的初始化過程中,框架會在web應用的 WEB-INF文件夾下尋找名為[dispatcherServlet]-servlet.xml 的配置文件,生成文件中定義的bean。
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
</init-param>
指明了配置文件的文件名,不使用默認配置文件名,而使用springMVC.xml配置文件。
其中<param-value>**.xml</param-value> 這裏可以使用多種寫法
1、不寫,使用默認值:/WEB-INF/<servlet-name>-servlet.xml
2、<param-value>/WEB-INF/classes/springMVC.xml</param-value>
3、<param-value>classpath*:springMVC-mvc.xml</param-value>
4、多個值用逗號分隔
springMVC-mvc.xml 配置文件片段講解
<context:annotation-config/>
<!-- 自動掃描的包名 -->
<context:component-scan base-package="com.iflysse"/>
<!-- 默認的註解映射的支持 -->
<mvc:annotation-driven/>
<!-- 視圖解釋類 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/><!--可為空,方便實現自已的依據擴展名來選擇視圖解釋類的邏輯 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</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。
<!-- json 支持 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework..com.starit.util.CommonObjectMapper"/>