![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Aop
Younger成
这个作者很懒,什么都没留下…
展开
-
spring AOP
一、面向切面编程什么是面向切面编程:1、是一种编程范式、不是编程语言2、解决特定的问题,不能解决所有的问题3、是oop的补充解决代码重复性问题关注点分离(水平分类:展示层->服务层->持久层、垂直分离:模块划分(订单、库存等)、切面分离:功能性需求和非功能性需求)AOP的使用场景权限控制、缓存控制、事务控制、异常处理、审计日志等...原创 2018-05-21 11:20:29 · 137 阅读 · 0 评论 -
spring aop中的代理模式(静态代理)
代理类的客户端都是通过创建接口对象实例代理模式完成的1、创建接口package com.mybatis.pattern;public interface Subject { void request();}2、创建目标对象实现接口package com.mybatis.pattern;//目标对象,实现接口public class RealSubject implements...原创 2018-05-21 11:38:10 · 113 阅读 · 0 评论 -
基于JDK动态代理
静态代理的缺点:代理方法越多,重复的逻辑越多,会有冗余的逻辑产生动态代理的两类实现:基于接口代理、基于集成代理实现的代表:JDK代理和Cglib代理JDK代理类:java.lang.reflect.Proxy接口:InvocationHandler只能基于接口进行动态代理一在上...原创 2018-05-21 13:12:07 · 129 阅读 · 0 评论 -
Cglib生成动态代理
Cglib的实现和JDK实现的区别:1、JDK只能针对有接口的类的接口方法进行动态代理2、Cglib基于继承来实现代理,无法对static、final类进行代理3、Cglib基于继承来实现代理、无法对private、static方法进行代理4、JDK是实现接口的,因此也不能对private方法进行动态代理Cglib的动态代理实现:public interface Su...原创 2018-05-21 13:49:51 · 407 阅读 · 0 评论 -
spring中对两种代理的选择
spring中对两种代理的选择:如果目标对象实现了接口,则默认采用JDK动态代理如果目标对象没有实现接口,则采用Cglib进行动态代理如果目标对象实现了接口,且强制Cglib,则使用cglib代理...原创 2018-05-21 14:30:51 · 1533 阅读 · 0 评论 -
spring aop中链式调用
多个aop叠加封装链式关系package com.mybatis.chain;import java.util.List;//封装链式关系public class Chain { private List<ChainHandler> handlers; private int index=0; //强制依赖 public Chain(Lis...原创 2018-05-21 15:25:02 · 1244 阅读 · 0 评论