<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>


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐