Spring与AOP

Spring与AOP

1) AOP:Aspect Orient Programming; 面向切面的编程,解决的“系统级服务”和“主业务逻辑”间的耦合度问题

2) AOP是一种思想,一种解决方案,一套规范,其实现方式有很多,最著名有Spring、AspectJ。

3) AspectJ是另外一个框架,与Spring没有任何关系,但是都是AOP实现者,在AspectJ下具有两种AOP实现:基于XML的实现,基于注解的实现。

4) AspectJ实现导入jar包:
1>AspectJ的jar包
2>Spring用于整合AspectJ的jar包
3>Spring-aop的jar包
4>aop联盟给出的aop规范的jar包

5) 切面:就是交叉业务逻辑,也就是要对主业务进行增强的部分:通知、顾问
织入:将切面的切入到主业务逻辑中的过程,称为织入。
连接点:可以被增强的目标方法,称为连接点
切入点:真正被增强的连接点方法,指定的织入位置。
通知:是一种切面,可以完成简单的织入功能。指定织入时间。

6) 切入点表达式:
execution(访问权限 返回类型 全限定性方法名(参数列表)抛出的异常)
其中返回类型与方法名是不能省略的
1>execution(* .SomeServiceImpl.(…))
表示的意义是:指定所有包下(只能是一级包)的SomeServiceImpl中的所有方法。无论是否有参数,无论有几个参数,无论返回类型是什么,都要被增强的切入点方法。
2>execution(void .SomeServiceImpl.(…))
表示的意义是:指定所有包下(只能是一级包)的SomeServiceImpl中的所有返回类型为void的方法都要被增强。
3>execution(* …SomeServiceImpl.(…))
表示意义:指定所有包下(可以是多级包)的SomeServiceImpl类中的所有方法,无论是否有参数,有几个参数,放回类型是什么都是要被增强的切入点方法。
7) 基于XML的AspectJ编程:
1.导入jar包:
1>AspectJ的jar包
2>Spring用于整合AspectJ的jar包
3>Spring-aop的jar包
4>aop联盟给出的aop规范的jar包
2.定义切面类
3.引入aop约束

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/aop 
 http://www.springframework.org/schema/aop/spring-aop.xsd">

4.AOP配置 : aop:config</aop:config>

8) 基于注解的AspectJ编程
1.导入jar包(同上)
2.定义切面类
3.引入AOP约束(同上)
4.注册AspectJ自动代理生成器
aop:aspectj-autoproxy/
5.切面类中添加注解

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值