-
1.什么是AOP Aspect Oriented Programming 面向切面编程 或者 面向方面编程
它是对面向对象的一个扩展
可以不修改原有代码的情况下 给原有的逻辑增加功能
降低了共通业务逻辑 和 原有逻辑的耦合度 因为共同业务逻辑可以通过配置手段加入到原有逻辑中
2.AOP 中涉及到概念 切面 Aspect 封装共通业务逻辑的 连接点 JoinPoint 共通业务逻辑所要嵌入的位置 一般封装了方法的信息 切点 Pointcut
它是一堆连接点 可以看成连接点的集合 (切点表达式) 目标 Target 要嵌入共通业务逻辑的对象
代理 Proxy 被增强之后的目标对象 通知 Advice 时机
目标方法调用之前 目标方法调用之后 目标方法调用前后
目标方法最终 目标方法出现异常 切面 — 通知 — 切点
3.Spring 实现 AOP 的步骤
3.1 建立一个项目 导入jar包(ioc aop) 拷贝配置文件到src下
3.2 编写一个的服务类 有登录 和 注册两个方法
这两个方法使用伪代码即可
3.3 在配置文件中配置这个服务器类 然后通过容器获取服务类对应的对象 测试方法调用
3.4 在不修改服务类代码的情况下 让服务类对应的方法调用前输出 ******
a.定义一个切面类 里面定义输出****** 的方法
b.在配置文件中 配置切面类型的对象
c.在Spring 配置文件中 写 AOP 的配置
切面 通知 切点4.切点表达式的写法 4.1 bean 限定表达式 bean(spring容器中id表达式) 支持统配 如 bean(*Account)
4.2 类型限定表达式 within(表达式)
表达式的写法 是最后一部分必须是 类型
com.xdl.dao.XdlBankAccountDAOOracleImp 对XdlBankAccountDAOOracleImp 这个类型
对应的所有方法都切入共通业务逻辑。
com.xdl.dao.* dao包下所有的类型 对应的方法都将被切入共通业务逻辑
com…* com 包下所有的类型 以及 com的子包下所有的类型 对应的方法都将被切入共通业务逻辑
4.3 方法限定表达式
execution(方法限定)
方法限定的格式
权限修饰 返回值类型 方法名(参数列表) throws 异常
其中 返回值类型 方法名() 是必须的5.AOP 中的五种通知类型 <aop:before 前置通知 目标方法调用之前调用 <aop:after 最终通知 目标方法调用后 一定会调用 <aop:after-returning 后置通知 目标方法调用之后调用
<aop:after-throwing 异常通知 目标方法调用出现异常 采用调用 <aop:around
环绕通知 目标方法调用前后都调用
AOP基础
最新推荐文章于 2022-01-20 09:46:42 发布