Spring(二)Spring AOP配置详解

本文详细解析了Spring AOP的配置,包括注解方式和XML配置实现的前置、后置、异常抛出及环绕增强,同时介绍了基于schema配置定义切面的方法,并给出了配置建议。
摘要由CSDN通过智能技术生成

一、Spring AOP

        面向切面编程(AOP),是软件编程思想发展到一定阶段的产物,是对面向对象编程(OOP)的有益补充。AOP一般适用于具有横切逻辑的场合,如访问控制、事务管理、性能监测等。
        面向切面编程,简单的说,就是在不改变源程序的基础上为代码段增加新的功能,对代码进行增强处理,它的设计思想来源于代理设计模式。
        了解之后需要知道以下概念:
        1.增强类型(Advice,有的翻译为通知,个人感觉不太好理解):
                前置增强(通知),在在原方法执行之前进行处理,同理还有后置增强、环绕增强、异常抛出增强、最终增强等。
        2.连接点(Joinpoint):
                程序执行的某个特定位置:如类某个方法调用前、调用后、方法抛出异常后等。连接点由两个信息确定:方法表示的程序执行点;相对点表示的方位。
        3.切点(Pointcut):
                每个类都拥有多个连接点:类的所有方法实际上都是连接点,即连接点是程序类中客观存在的事务。AOP 通过切点定位到特定的连接点。类比:连接点相当于数据库中的记录,切点相当于查询条件。切点和连接点不是一对一的关系,一个切点匹配多个连接点,切点通过 org.springframework.aop.Pointcut 接口进行描述,它使用类和方法作为连接点的查询条件。

下面编写一个HelloWorld:
需求:
在Student类中有一个说话的say方法,需要使用AOP对此方法进行增强处理。

package com.wzj.entity;

public class Student {
	private int id;
	private String name;
	
	//省略get、set方法

	public void say(){
		System.out.println("大家好,我的名字叫:"+getName());
	}
}

二、基于注解的方式实现spring aop增强

步骤:
1.创建普通的java项目,加入jar包(在上文中有jar包的下载地址),创建好spring-config.xml文件,另外还要导入AspectJ框架所需jar包:aspectjweaver.jar、aopalliance.jar,可以百度下载
2.创建一个增强类如:AdviceUtil
(1)@Aspect注解——将类声明为切面

@Aspect
public class AdviceUtil {	
}
(2)@Before注解——声明为前置增强方法
/**
 * 使用@Before注解将方法声明为前置增强方法
 * 参数中需要加入:匹配切点的表达式execution(public void com.wzj.entity.Student.say())
 * 匹配切点的表达式:execution(修饰符  返回值  方法全名(..))
 * 可以使用“*”和“..”通配符,* 表示匹配所有,.. 用在方法参数中,表示匹配任意个数、类型的参数
 */
@Before("execution(public void com.wzj.entity.Student.say()))")
public void before(){
	System.out.println("----->前置增强操作");
}
(3)@AfterReturning注解——声明后置增强方法
@AfterReturning("execution(public void com.wzj.entity.Student.say())")
public void behind(){
	System.out.println("----->后置增强操作");
}
【为了获取到代理对象以及方法的相关信息,可以再增强方法中声明一个JoinPoint类型参数,spring会自动注入该参数】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值