AOP相关术语的理解
面向切面编程AOP ---切面提供了一种取代继承和委托的方式
?
AOP中的术语:
?通知:就是程序的功能,比如 安全、事务、日志等
连接点:和方法有关的前前后后,都是连接点
切入点:说明在哪儿干
切面:通知和切入点相互结合
引入:允许我们向现在的类中添加新的方法和属性,把切面用到目标类中
目标:引入中提到的目标类
织入:吧切面应用到目标对象来创建新的代理对象的过程。
代理:就是向目标对象应用通知后被创建的对象。
?
spring对AOP的支持局限于方法的注入,spring创建的全部通知都是用标准的java类编写的,,定义通知所应用的切点通常是以XML文件的方式在spring配置文件中配置的。
?
spring利用代理类来包裹切面,从而把他们织入到spring管理的bean中,在代理借钱方法调用之后,实际调用的目标bean方法之前,代理会执行切面逻辑。
?
spring生成代理类的方式有两种:
1、如果目标对象实现的是一个接口,spring会使用jdk的proxy类,它允许spring动态生成一个新的类来实现必要的接口,织入任何的通知,并把对这些接口的任何调用都转发给目标类。
2、如果目标类不是一个实现一个接口,spring就会使用CGLIB库生成目标类的一个子类,在创建这个子类时,spring织入通知,并且把这个子类的调用委托到目标类
?
引入aop 的namespace
?
?
基于pojo的aop的xml文件配置
?
定义通知
package com.hnie.demo.service.impl;public class Inform {public void before(){System.out.println("在方法之前执行");}public void end(){System.out.println("在方法之后执行");}public void excepition(){System.out.println("在遇到异常时执行");}}?
?
?
?
?
?
?