Spring 1.2和2.0的简单AOP.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spring 1.2和2.0的简单AOP

Spring 1.2和2.0的简单AOP例子 今天一看,Blog爬到了第一,又很久没更新了,因此就把这两天正在写的电子书的一部分贴上吧。今天想找找Spring 2.0 AOP的例子,谁料想网上文章一大抄,而且呢,大部分人是直接copy Spring的文档,自己连个demo也不写一种的那个,就见一堆文章说的云里雾里热火朝天的AOP,也没见着几个能跑的例子。最后总算找到了个兄弟的小短文,有个能跑的例子,这才算弄好了1.2和2.0的对比部分。好了,下面是正文(其实尚未完工,先凑合看吧): 10.3?Spring 1.2 AOP应用 ???????本节将会给大家展示一个恐怖的例子,FBI特务人员已经介入了您的生活,您所做的一切都在他们的监视之中,包括聊QQ,泡MM,这在现实生活中是真实存在的,为了民众的安全和稳定,对嫌疑犯进行必要的监控是必要的。 ???????注意:本章虽然介绍了多种AOP实现方式,然而,在实际项目中只要使用一种就可以达到目的了(因为Spring的AOP存在多种写法,完全掌握还是挺复杂),其它方式仅供参考,千万不要像孔乙己一样,研究“茴”字的N种写法,这样就脱离了学习技术的初衷了:学习是为了解决问题,不是为了炫耀自己。另外,如果在项目中滥用AOP的后果就是系统的执行效率大大降低,甚至配置不当会导致死循环。记住一个真理:系统越复杂,效率越低,出故障的可能越大。另外一条建议:千万不要用AOP在服务器上记录日志,或者在服务器上打印不必要的调试信息,那样对系统只能有害无益,日志输出是单线程操作,切记。做项目,一般来说是功能越少越好。高手更多的时候只能做出破坏力大,不易维护的垃圾系统。 10.3.1?开发Man对象 ???????这个项目非常简单,仿照上节内容,创建项目并添加Spring开发功能,不同的是添加library的时候要把Spring 2.0 AOP Libraries加入进来。因为Spring 2.0的类库是兼容1.2的,所以这里就用2.0了。项目名为Spring1_2AOP。接下来我们要创建一个自由人的对象,他有聊QQ和泡MM这两个方法,还有一个姓名属性。好了,先建立这个类: /** ?*?具有聊QQ和泡MM两个行为的人对象,还有一个用户名属性。 ?*?@author?BeanSoft ?*/ public?class?Man { ????private?String?name; ? ????public?String getName() { ???????return?name; ????} ? ????public?void?setName(String name) { ????????= name; ????} ??? ????public?void?qq() { ???????System.out.println(我在聊QQ); ????} ??? ????public?void?mm() { ???????System.out.println(我在泡MM); ????} } 清单10.6 Man类源码 10.3.2?开发前置通知(Before advice)对象:FBI ???????首先贴一段Spring文档中关于Before advice的介绍: 前置通知(Before advice):?在某连接点(join point)之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)。 说通俗点就是写一个如何处理监视结果的对象,可以把监视结果打印出来以作为必要的时候的呈堂证物,或者派探员立即跟踪,但是这个过程只能在你进行某活动前进行,否则就失去监视的意义了,这个对象更像“诸葛亮”。详细的了解这个类需要学习JDK里面关于反射部分的内容,下面是这个类的代码: import?java.lang.reflect.Method; import?org.springframework.aop.MethodBeforeAdvice; /** ?*?联邦调查局的探员将您的所有行动都记录在案。 ?*?@author?BeanSoft ?*/ public?class?FBI?implements?MethodBeforeAdvice { ????public?void?before(Method method, Object[] args, Object target) ???????????throws?Throwable { ???????Man man = (Man)target; ???????System.err.println(FBI?发现?+ man.getName() +?正在进行??+ method.getName() +??活动。); ????} } 清单10.7 FBI类源码 10.

文档评论(0)

gfh669266 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档