Spring面向切面开发AOP

AOP:面向切面编程,相对于OOP面向对象编程;

Spring的AOP是为了解耦。可以让一组类共享形同行为。

Spring支持AspectJ的注解式切面编程

使用@AspectJ生命一个切面

使用@After、@Before、@Around定义建言,可以直接将拦截规则(切点)作为参数

将其中@After、@Before、@Around参数的拦截规则为切点(pointCut),为了使切点复用,可以使用@PointCut专门定义拦截规则,然后在@After、@Before、@Around的参数中调用

其中符合条件的每一个被拦截处为连接点(JionPoint)

Spring aop支持AspectJ

<!--spring aop支持-->

<dependency>

   <groupId>org.springframework</groupId>

    <artifactId>spring-aop</artifactId>

     <version>4.1.6.RELEASE</version>

</dependency>

<dependency>

   <groupId>org.aspectj</groupId>

   <artifactId>aspectJrt</artifactId>

   <version>1.8.5</version>

</dependency>

<dependency>

   <groupId>org.aspectj</groupId>

   <artifactId>aspectjweaver</artifactId>

   <version>1.8.5</version>

</dependency>

开启Spring对于AspectJ的支持

使用@EnableAspectAutoProxy开启Srping对Aspect的支持

@Configuration

@ComponnetScan("***********")

@EnableAspectJAutoProxy

通过@Aspect注解声明一个切面

通过@Component让此切面成为Spring容器管理的Bean

通过@pointCut声明切点

@PonitCut("@annotation(*******.aop.Action")

通过@After声明一个建言,并使用@PointCut定义的切点

@After("annotationPointCut()")

通过反射可获得注解上的属性,然后做日志记录相关的操作

 

转载于:https://my.oschina.net/yangty2017/blog/1490654

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值