AOP

用途

在不修改原来模型的基础上,动态修改模型以满足新的需求

底层实现:

在这里插入图片描述

代理Java 静态代理和动态代理例子

静态代理:代理类与目标类实现相同接口,代理类中调用了目标类的方法,在客户端类中实现的是代理类的对象;一个代理只能代理一种类型,而且是在编译器就已经确定被代理的对象。而动态代理是在运行时,通过反射机制实现动态代理,并且能够代理各种类型的对象,在Java中要想实现动态代理机制,需要java.lang.reflect.InvocationHandler接口和 java.lang.reflect.Proxy 类的支持

Spring 的基于 AspectJ 的 AOP 开发

在这里插入图片描述

Spring 使用 AspectJ 进行 AOP 的开发: XML 的方式

AOP的入门开发

  • 引入jar包
  • 编写目标类并配置
  • 编写切面类并配置
  • 进行aop的配置
<aop:config>
	<aop:pointcut expression=”execution(表达式)” id=”pc1”/>
 		<aop:aspect >
			<aop:before method=”” pointcut-ref=”pc1”/>
		</aop:aspect>
</aop:config>
  • 通知类型
    • 前置通知
    • 后置通知
    • 环绕通知
    • 异常抛出通知
    • 最终通知
  • 切入点表达式写法:execution(表达式)

Spring的AOP的注解(思想–)

  • AOP的相关的注解
    • @Aspect :定义切面
    • 通知的注解
      • @Before :前置通知
      • @AfterReturning :后置通知
      • @Around :环绕通知
      • @AfterThrowing :异常抛出通知
      • @After :最终通知
    • 切入点
      • @Pointcut :切入点

声明式事务管理—底层思想就是AOP

  • XML
    ■ 引入aop开发包
    ■ 配置事务管理器
    ■ 配置增强<tx:Advice>
    ■ 配置aop
  • 注解
    ■ 引入aop开发包
    ■ 配置事务管理器
    ■ 开启注解事务
    ■ 在业务层(Service)添加注解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值