先定义一个接口:
package com.chinasoft.pur;
public interface Purview {
public void logincheck();
}
实现类:
package com.chinasoft.pur;
public class PurviewImpl implements Purview{
public void logincheck() {
System.out.println("login.....");
}
}
拦截logincheck之前具体要处理的:
package com.chinasoft.pur;
import java.lang.reflect.Method;
import org.springframework.aop.MethodBeforeAdvice;
public class BeforeMethod implements MethodBeforeAdvice{
public void before(Method arg0, Object[] arg1, Object arg2)throws Throwable {
System.out.println("befor login...");
}
}
在applicationContext.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="purviewimpl" class="com.chinasoft.pur.PurviewImpl"></bean>
<bean id="beforem" class="com.chinasoft.pur.BeforeMethod"></bean>
<bean id="puradvice" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref bean="beforem"/>
</property>
<property name="pattern">
<value>.*logincheck*.</value>
</property>
</bean>
<bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>purviewimpl</value>
</property>
<property name="interceptorNames">
<value>puradvice</value>
</property>
</bean>
</beans>
测试类:
package com.chinasoft.pur;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
Purview pur= (Purview) context.getBean("purviewimpl");
pur.logincheck();
}
}
输出结果:
befor login...
login.....