- public interface IDog {
- public void dog();
- public void run();
- }
- public class Dog implements IDog{
- public void dog(){
- System.out.println("===测试顾问==1dog()");
- }
- public void run() {
- System.out.println("====测试顾问===2run()");
- }
- }
- public class MyBefore implements MethodBeforeAdvice {
- public void before(Method method, Object[] objects, Object o) throws Throwable {
- System.out.println("======before====");
- }
- }
- <?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:aop="http://www.springframework.org/schema/aop"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- ">
- <bean id="dog" class="cn.springGuWen.Dog"></bean>
- <bean id="before" class="cn.springGuWen.MyBefore"></bean>
- <!--顾问 需要增强的方法-->
- <!--<bean id="GuWen" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
- <property name="advice" ref="before"></property>
- <property name="mappedNames" value="run"></property>
- </bean>-->
- <!--正则 表达式匹配-->
- <bean id="GuWen" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
- <property name="advice" ref="before"></property>
- <property name="patterns" value=".*ru.*"></property>
- </bean>
- <bean id="TextGuWen" class="org.springframework.aop.framework.ProxyFactoryBean">
- <!--需要增强的对象-->
- <property name="target" ref="dog"></property>
- <!--需要拦截的方法-->
- <property name="interceptorNames" value="GuWen"></property>
- </bean>
- </beans>
- public class TextGuWen {
- //测试 顾问 匹配姓名方法
- //测试 正则 匹配的 方法
- @Test
- public void aVoid(){
- ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext07GuWen.xml");
- IDog dog = (IDog)ctx.getBean("TextGuWen");
- dog.dog();
- System.out.println();
- dog.run();
- }