在SpringAop框架中封装了一些便利的基类,我们先从入门级的ProxyFactoryBean讲起,它的继承关系主要为ProxyConfig->AdvisedSupport->ProxyCreatorSupport->ProxyFactoryBean ,每个都有各自特定的功能
ProxyConfig这个父类的功能是统一维护几个在Spring代理生成类中比较通用的公共属性,保证所有代理创造子类有一致性的配置,spring中和代理生成有关的类都继承了这个父类
具体属性有以下5个
private boolean proxyTargetClass = false;
private boolean optimize = false;
boolean opaque = false;
boolean exposeProxy = false;
private boolean frozen = false;
具体功能为:
- proxyTargetClass,true代表直接代理类,false代表代理接口。默认为false
- optimize,是否执行某些优化,感觉基本没怎么用到
- opaque,代表子类是否能被转换为Advised接口,默认为false,可以
- exposeProxy,是否暴露代理,也就是是否把当前代理对象绑定到AopContext的ThreadLocal属性上去,常用于代理类里面的代理方法需要调用同类里面另外一个代理方法的场景。(todo,具体场景需要模拟下看看)
- frozen,当前代理配置是否被冻结,如果被冻结,配置将不能被修改
网友评论