Spring七:SpringAOP API 下
Proxying使用内部bean来隐藏目标和代理之间的区别
将注入到配置中的bean放到property中,来隐藏代理和目标之间的关系,具体修改
运行结果如下:
Proxying Class
- 如果没有某个接口,比如person接口,这种情况下spring会使用CGLib代理,而不是动态代理
- CGLib代理的工作原理是在运行时生成目标类的子类,spring配置这个生成的子类委托方法调用到原来的目标。
- 子类是用来实现Decorator模式,织入通知。
- CGlib的代理对用户是透明的。注意:final方法不能被通知:因为他们不能被覆盖。
使用Global Advice过滤通知
用*号做通配,匹配所有拦截器加入通知链。配置更改如下:
他们的被拦截的是继承了Interceptor后缀的通知,故结果没有Advice的。