Spring AOP-1 Spring AOP入门

本文介绍了Spring AOP的基本概念,包括切面、连接点、通知和切入点。详细讲解了如何在XML中声明切面和使用AspectJ注解的方式实现AOP,并对比了两者之间的区别。同时,文中给出了具体代码示例,帮助理解Spring AOP的工作原理。
摘要由CSDN通过智能技术生成

什么是AOP

AOP(Aspect-OrientedProgramming,面向方面编程)。
在我们的代码中,像日志,事务,安全等模块会散步在很多的业务代码中,这些模块称为“横切关注点”。
横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理。
这些横切关注点与业务代码的核心功能无关,但是却大量存在,导致了大量代码的重复。
AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。

AOP相关概念

  • 切面(Aspect):通知与切点的结合。用Spring的Advisor实现。
  • 连接点(Joinpoint): 程序执行过程中明确的点,如方法的调用或特定的异常被抛出。
  • 通知(Advice): 即在调用方法时需要执行的动作,Spring定义了5种通知:前置通知,后置通知,返回通知,异常通知和环绕通知。
  • 切入点(Pointcut): 指定一个通知将被引发的一系列连接点的集合。

如何使用Spring AOP

Spring提供了4种方式实现AOP:
1. 配置ProxyFactoryBean,显式地设置advisors, advice, target等
2. 配置AutoProxyCreator,这种方式下,还是如以前一样使用定义的bean,但是从容器中获得的其实已经是代理对象
3. 通过来配置
4. 通过来配置,使用AspectJ的注解来标识通知及切入点

AOP现有两个主要的流行框架,即Spring AOP和Spring+AspectJ
这里写图片描述

下面来看具体的代码实现。

方式一 在XML中声明切面

1. 首先定义一个切面类:

package com.wgs.aspect;

/**
 * Created by GenshenWang.nomico on 2017/7/8.
 */
public class TrsactionAspect {
   

    public void beforeMethod(){
        System.out.println("before:事务开始了===========");
    }
    public void afterMethod(){
        System.out.println("after:事务结束了======
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值