码迷,mamicode.com
首页 > 编程语言 > 详细

Spring学习笔记AOP(二)

时间:2016-07-06 18:37:07      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:@aspectj

鲁春利的工作笔记,好记性不如烂笔头



要进行AOP编程,首先我们要在spring的配置文件中引入aop命名空间:

技术分享


引入后AOP命名空间并启动对@AspectJ注解的支持(spring-context-aop-annotation.xml):

<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:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 启动对@AspectJ注解的支持 -->
    <aop:aspectj-autoproxy />
</beans>


Spring默认不支持@AspectJ风格的切面声明,通过<aop:aspectj-autoproxy/>声明Spring就能够自动扫描被@Aspect标注的切面了。
Spring自带了名为AnnotationAwareAspectJAutoProxyCreator的自动代理类,可以在Spring的配置文件中把AnnotationAwareAspectJAutoProxyCreator注册为一个Bean,但是为了简化配置,Spring在aop命名空间提供了该元素配置,用来自动创建AnnotationAwareAspectJAutoProxyCreator类。

AnnotationAwareAspectJAutoProxyCreator会自动代理一些Bean,这些Bean的方法需要与使用@Aspect注解的Bean中所定义的切点想匹配,这些切点是通过@Pointcut注解定义的。


AOP相关的注解位于org.aspectj.lang.annotation包下。


声明切面
@AspectJ风格的声明切面非常简单,使用@Aspect注解进行声明:然后将该切面在配置文件中声明为Bean后,Spring就能自动识别并进行AOP方面的配置(就是一个普通的bean)。

@Aspect
public class LogAdapter {
    // ......
}

声明切入点
@Pointcut修饰一个方法用来标识该方法为切入点方法,方法必须返回void类型。

@Pointcut(value="切入点表达式", argNames="参数名列表")
public void poincutMethod () {
    // ......
}

说明:切入点@Pointcut的声明不是必须的,可以在通知声明时声明切入点表达式(但如果存在多种通知则每个通知上都需要声明切入点表达式),而声明切入点后可以在使用通知的地方引用切入点定义。



本文出自 “闷葫芦的世界” 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1810564

Spring学习笔记AOP(二)

标签:@aspectj

原文地址:http://luchunli.blog.51cto.com/2368057/1810564

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!