本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9737539
建立时间:2004年12月20日




[java语言]深入浅出 spring AOP (七)
网上资源,  软件技术

邢红瑞 发表于 2006/1/15 18:18:28

与ajoo聊天时,提到BeanNameAutoProxyCreator,使用BeanNameAutoProxyCreator必须使用接口,不是类。否则出现org.springframework.beans.TypeMismatchException。使用BeanNameAutoProxyCreator 进行事务控制<bean id="transactionAutoProxyCreator" class="org.springframework.aop.framework.autoproxy .BeanNameAutoProxyCreator"><property name="interceptorNames"><list><value>transactionInterceptor</value></list></property><property name="beanNames"><list><value>trans*</value></list></property></bean>当代理被创建时,如果target class没有实现接口,autoproxy framework直接使用ProxyFactoryBean动态产生代理对象。  编程方式使用ProxyFactory代理一个类时,CGLIB会生成一个新类。CGLIB会保持一个生成类的cache,因此它不会一直生成新类。spring使用ProxyCallbackFilter对象把其它对象放进map进行管理。如果没有管理好cache,将会产生大量的java对象,直至出现OutOfMemoryErrors。因此使用spring的aop时,一定要正确实现equals and hashCode。确保advisors使用相同的实例,因为一些advisors没有实现equals or hashCode。详见 org.springframework.aop.framework.Cglib2AopProxy的ProxyCallbackFilter内部类的equals方法 public boolean equals(Object other) {   if (other == null) {    return false;   }   if (other == this) {    return true;   }    ProxyCallbackFilter otherCallbackFilter = null;   if (other instanceof ProxyCallbackFilter) {    otherCallbackFilter = (ProxyCallbackFilter) other;   }   else {    // not a valid comparison    return false;   }    if (this.advised.isFrozen() != otherCallbackFilter.advised.isFrozen()) {    return false;   }    if (this.advised.isExposeProxy() != otherCallbackFilter.advised.isExposeProxy()) {    return false;   }    if (this.advised.getTargetSource().isStatic() !=     otherCallbackFilter.advised.getTargetSource().isStatic()) {    return false;   }    return (AopProxyUtils.equalsProxiedInterfaces(this.advised, otherCallbackFilter.advised) &&     AopProxyUtils.equalsAdvisors(advised, otherCallbackFilter.advised));  }  


阅读全文(5977) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.988 second(s), page refreshed 144793951 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号