Spring 1.2和2.0的简单AOP例子 - 编程入门网
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关系图: 图 10.9 Bean关系图 Spring 1.2和2.0的简单AOP例子(3)时间:2011-09-1410.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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |