什么是AOP
什么是AOP面向切面编程,不通过修改源代码的方式,在业务中增加新功能,降低业务逻辑之间的耦合度,提高代码可重用性底层原理AOP底层使用动态代理有接口情况使用JDK动态代理创建接口实现类代理对象无接口情况使用CGLIB动态代理创建当前类子类的代理对象...
·
什么是AOP
- 面向切面编程,不通过修改源代码的方式,在业务中增加新功能,降低业务逻辑之间的耦合度,提高代码可重用性
底层原理
- AOP底层使用动态代理
- 有接口情况使用JDK动态代理
- 创建接口实现类代理对象
- 无接口情况使用CGLIB动态代理
- 创建当前类子类的代理对象
- 有接口情况使用JDK动态代理
AOP术语
- 连接点:可以增强的方法
- 切入点:实际被增强的方法
- 通知:
- 被增强的部分
- 通知的类型:
- 前置通知(@Before)
- 后置通知(@AfterReturning)
- 环绕通知(@Around)
- 异常通知(@AfterThrowing)
- 最终通知(@After)
- 切面:将通知应用到切入点的过程称作切面
AOP操作
- Spring一般都基于AspectJ进行AOP操作
- 切入点表达式
- 表明对哪个类的哪个方法进行增强
- 语法:execution([权限修饰符] [返回类型(可省略)] [全类名].[方法名称] ([参数列表]) )
- 基于XML实现
- 基于注解实现
- 写代理类,用@Aspect注解标注
- 在配置文件中添加< aop:aspectj-autoproxy/ >
- 用@Before,@After等注解来标记要通知的方法
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)