快速业务通道

Spring 1.2和2.0的简单AOP例子 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
p.framework下,自由人只能活在这个代理工厂类的阴影下了,也就是成了平民了。好了,我们把相应的Spring配置文件代码放给大家:

  <?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">    
  <bean id="man" class="Man">   
  <property name="name">     
  <value type="java.lang.String">张三</value>   
  </property>  
  </bean>  
  <bean id="fbi" class="FBI" />    
  <bean id="civilian"    class="org.springframework.aop.framework.ProxyFactoryBean">    <property name="target">     
  <ref bean="man" />   
  </property>   
  <property name="interceptorNames">     
  <list>       
  <value>fbi</value>     
  </list>   
  </property>  
  </bean> 
  </beans>

清单10.8 Spring AOP 配置文件源码 applicationContext.xml

在这个文件中,定义了两个bean:man和fbi,都是普通的类定义。复杂一些的地方在civilian这个bean的定义中,它要拦截或者监视的目标(target)是man,负责进行处理监视结果的对象(interceptorNames)是fbi,具体进行监视工作的对象,就是这个ProxyFactoryBean,它相当于窃听器之类的东西,但是很显然窃听结果是需要人来处理的,那就是FBI。

简单说: man成为了civilian,它被ProxyFactoryBean监控,监控结果交给FBI处理。很显然,如果没有国家,也就没有civilian,更谈不上FBI了。所以,在这里您不能再去找man,因为man在实际生活中是不存在的,所以您只能找civilian,这样您才能感觉到FBI的存在。下面是相关的bean关系图:

Spring 1.2和2.0的简单AOP例子 - 编程入门网

图 10.9 Bean关系图

Spring 1.2和2.0的简单AOP例子(3)

时间:2011-09-14

10.3.4 测试和运行

OK,如上节讨论,只有当平民的时候才会被监视,现在我们就可以写一个测试类来感受一下平民生活:

  import org.springframework.context.ApplicationContext;
  import org.springframework.context.support.ClassPathXmlApplicationContext;public class AOPTest {  
  public static void main(String[] args) {   
  ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");   
  Man man = (Man) ctx.getBean("civilian");   
  man.qq();   
  man.mm();  
  }
  }

清单10.9 Spring AOP 测试类源码

运行一下,您就可以看到可怕的真相:

  log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
  log4j:WARN Please initialize the log4j system properly.
  FBI 发现张三正在进行 qq 活动。FBI 发现张三正在进行 mm 活动。我在聊QQ
  我在泡MM

是不是很恐怖呢?FBI正在监控您的一举一动,并把这些东西都记录在案。现在你应该可以了解AOP的过程了:调用man这个bean的任何一个方法之

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号