`

SpringAOP

阅读更多
package com.wangyu02;

public interface Subject {
	public void request();
}

package com.wangyu02;

public class RealSubject implements Subject {

	public void request() {
		System.out.println("真实实现--》关注做菜");
	}
}

package com.wangyu02;

import java.lang.reflect.Method;

import org.springframework.aop.AfterReturningAdvice;

public class ProxySubjectAfter implements AfterReturningAdvice {

	public void afterReturning(Object arg0, Method arg1, Object[] arg2,
			Object arg3) throws Throwable {
		System.out.println("在方法调用之后");
	}
}

package com.wangyu02;

import java.lang.reflect.Method;

import org.springframework.aop.MethodBeforeAdvice;

public class ProxySubjectBefore implements MethodBeforeAdvice {

	public void before(Method arg0, Object[] arg1, Object arg2)
			throws Throwable {
System.out.println("在方法调用之前");
	}

}


package com.wangyu02;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		Subject sub = (Subject)context.getBean("proxy");
		sub.request();
	}

}


<?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="before" class="com.wangyu02.ProxySubjectBefore"></bean>
	<bean id ="after" class ="com.wangyu02.ProxySubjectAfter"></bean>
	<bean id="subject" class="com.wangyu02.RealSubject"></bean>
	<bean id="proxy"
		class="org.springframework.aop.framework.ProxyFactoryBean">
		<property name="proxyInterfaces">
			<value>com.wangyu02.Subject</value>
		</property>
		<property name="target">
			<ref bean="subject" />
		</property>
		<property name="interceptorNames">
		<list>
		<value>before</value><!-- 对应上面的bean的id -->
		<value>after</value><!-- 对应上面的bean的id -->
		</list>
		</property>
	</bean>
</beans>



























分享到:
评论
1 楼 duronshi 2009-04-15  
这应该是手工写的aop吧,如何应用呢?能否大概说下

相关推荐

Global site tag (gtag.js) - Google Analytics