spring aop api.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
请不要再使用低级别的AOP APIspring杂谈springaopshiro??在iteye上,咨询我Spring问题中最多的一个就是:AOP方面的问题,我之前也写过类似的帖子解答那些疑问:?注入FactoryBean失败分析+解决方案spring的二次代理原因及如何排查struts2+spring集成bug——使用AOP时可能遇到的问题分析关于spring的aop拦截的问题 protected方法代理问题Spring事务不起作用问题汇总Shiro+Struts2+Spring3 加上@RequiresPermissions 后@Autowired失效如何为spring代理类设置属性值在spring中获取代理对象代理的目标对象工具类Spring事务处理时自我调用的解决方案及一些实现方式的风险?大家有兴趣可以参考我的《java开发常见问题分析》分类。里边收集了许多在开发过程中我遇到的或别人遇到的问题。?其中最主要的问题一方面是我们使用问题,另一方面是其他原因(比如bug、设计缺陷等)。?Spring已经太庞大了,大的连我这个熟手有时候都载了。?所以我想做一件事情:?很希望大家遇到问题时能反馈给我,我做个收集,方便后来人。点击这前往《?那些年我们遇到的各种坑》?当然spring还是足够好的,只讨论问题,不讨论其他。===========================================================在此我再给大家举一个使用低级别AOP API遇到的坑。?出问题的配置Java代码??bean?class=org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator??????property?name=proxyTargetClass?value=true/??/bean??tx:annotation-driven?transaction-manager=transactionManager/???此配置的目的是想进行cglib类代理。但是实际上当进行直接注入类,而不是接口时会找不到Bean错误。?但是如果是这样配置:?Java代码??aop:aspectj-autoproxy?proxy-target-class=true/??tx:annotation-driven?transaction-manager=transactionManager/??此配置可以很好的工作,并注入类(不是接口)。??分析1、aop:aspectj-autoproxy proxy-target-class=true?该命名空间会交给org.springframework.aop.config.AopNamespaceHandler处理:?Java代码??registerBeanDefinitionParser(aspectj-autoproxy,?new?AspectJAutoProxyBeanDefinitionParser());??在AspectJAutoProxyBeanDefinitionParser中,会执行parse方法解析配置:Java代码??public?BeanDefinition?parse(Element?element,?ParserContext?parserContext)?{??????AopNamespaceUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(parserContext,?element);??????extendBeanDefinition(element,?parserContext);??????return?null;??}??其中AopNamespaceUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(parserContext, element);目的是注册AnnotationAwareAspectJAutoProxyCreator:?Java代码??return?registerOrEscalateApcAsRequired(AnnotationAwareAspectJAutoProxyCreator.class,?registry,?source);??但是注意了:?Java代码??if?(registry.containsBeanDefinition(AUTO_PROXY_CREATOR_BEAN_NAME))?{??????BeanDefinition?apcDefinition?=?registry.getBeanDefin

文档评论(0)

enxyuio + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档