首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

学习札记:AOP_Cuckoo's Egg(杜鹃的蛋)

2012-10-24 
学习笔记:AOP_Cuckoos Egg(杜鹃的蛋)代码(转bea)applicationContext.xml?xml version1.0 encodingU

学习笔记:AOP_Cuckoo's Egg(杜鹃的蛋)
代码(转bea)
applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><!-- Bean configuration --><bean id="businesslogicbean"/></property><property name="interceptorNames"><list><value>theAroundAdvisor</value></list></property></bean><!-- Bean Classes --><bean id="beanTarget" /><!-- Advisor pointcut definition for around advice --><bean id="theAroundAdvisor"/></property><property name="pattern"><value>.*</value></property></bean><!-- Advice classes --><bean id="theAroundAdvice" /></beans>

IBusinessLogic .java
public interface IBusinessLogic {public void foo();}

BusinessLogic .java
public class BusinessLogic implements IBusinessLogic {public void foo() {System.out.println("Inside QBusinessLogic.foo()");}}

AroundAdvice.java
public class AroundAdvice implements MethodInterceptor {public Object invoke(MethodInvocation invocation) throws Throwable {System.out.println("Hello world! (by " + this.getClass().getName()+ ")");//从around通知内调用foo()方法,可以使用proceed()方法,可从invoke(..)方法的MethodInvocation参数中得到它。invocation.proceed();//invocation.getArguments()[0] = new Integer(20);System.out.println("Goodbye! (by " + this.getClass().getName() + ")");return null;}}

MainApplication.java
public class MainApplication {/** * @param args */public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");IBusinessLogic testObject = (IBusinessLogic)ctx.getBean("businesslogicbean");testObject.foo();}}
1 楼 ray_linn 2007-01-05   说实话,除了Transaction和Security这两个方面, 还比较少看到些超越"Hello, world"的AOP例子, 是我孤陋寡闻,还是很说明问题?

对AOP,我只能???

热点排行