问答详情
源自:6-3 ProxyFactoryBean及相关内容(下)

spring中的AOP采用的方式

被访问的对象通过代理对象进行了控制,因此该处是否可以认为使用了代理模式,以及Spring的AOP中schema base模式是使用了什么方式,中间是不是用到了解释器模式?

提问者:慕尼黑4026684 2018-01-17 15:18

个回答

  • 慕虎7020787
    2018-11-29 20:39:58

    • Spring默认使用JDK动态代理实现AOP,(使用动态代理的对象必须实现一个或多个接口)

      • 代理的对象是接口的实现类

    • CGLIB代理,可以对没有实现接口的类进行代理

      • 对指定目标生成一个子类,并对子类进行增强

  • SsssZzzz
    2018-02-19 01:52:25

    spring的aop是通过代理实现的,基于针对目标类接口的jdk的动态代理或通过实现目标类的扩展类的cglib两种方式实现。

    spring基于xml文件配置,个人理解是先解析xml文件(dom,sax等方式),根据解析出来的节点信息,实例化 xml中定义bean,并通过一系列具体的类使用代理的方式为目标bean织入advisor得到代理实例。