<aop:aspectj-autoproxy/>作用
通過配置織入@Aspectj切面
雖然可以通過編程的方式織入切面,但是一般情況下,我們還是使用spring的配置自動完成建立代理織入切面的工作。
通過aop命名空間的<aop:aspectj-autoproxy />聲明自動為spring容器中那些配置@aspectJ切面的bean建立代理,織入切面。當然,spring在內部依舊採用AnnotationAwareAspectJAutoProxyCreator進行自動代理的建立工作,但具體實現的細節已經被<aop:aspectj-autoproxy />隱藏起來了
<aop:aspectj-autoproxy/>有一個proxy-target-class屬性,預設為false,表示使用jdk動態代理織入增強,當配為<aop:aspectj-autoproxy poxy-target-class="true"/>時,表示使用CGLib動態代理技術織入增強。不過即使proxy-target-class設定為false,如果目標類沒有聲明介面,則spring將自動使用CGLib動態代理。
@AspectJ文法基礎
@AspectJ使用jdk5.0註解和正規則的AspectJ 5的切面運算式語言描述切面,由於spring只支援方法的連接點,所以spring僅支援部分aspectJ的切面語言,在這節時,我們將對AspectJ切點運算式語言進行必要的學習。
<aop:aspectj-autoproxyproxy-target-class="true"/>
<context:annotation-config/>
<context:component-scanbase-package="com.wzh.**.**"></context:component-scan>
在Spring3.0中
在Spring3.0.5這個版本上,<mvc:annotation-driven/>聲明是沒有defaultAnnotationHandlerMapping這個屬性的,對於@ResultMapping標籤的解析,是寫死了必須用"org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping”這個類來處理的。
<mvc:annotation-driven />註解意義
<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。
Spring的國際化配置
第一種:AcceptHeaderLocaleResolver
<bean id="localeResolver"class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"> </bean>
預設的參數名為locale主意大小寫。裡面放的就是你的提交參數。如:en_US,zh_CN之類的,這個時候,你在頁面上加一句<a href="?locale=zh_CN">簡體中文</a>