标签:
TestServiceinter.java
1 package com.frank.aop; 2 3 public interface TestServiceinter { 4 public void SayHello(); 5 6 }
TestServiceImp.java
1 package com.frank.aop; 2 3 public class TestServiceImp implements TestServiceinter { 4 5 private String name; 6 7 public String getName() { 8 return name; 9 } 10 11 public void setName(String name) { 12 this.name = name; 13 } 14 15 @Override 16 public void SayHello() { 17 // TODO Auto-generated method stub 18 System.out.println(name+"hello"); 19 20 } 21 22 }
MyMethodBeforeAdvice.java
1 package com.frank.aop; 2 3 import java.lang.reflect.Method; 4 5 import org.springframework.aop.MethodBeforeAdvice; 6 7 public class MyMethodBeforeAdvice implements MethodBeforeAdvice { 8 9 @Override 10 public void before(Method method, Object[] args, Object target) 11 throws Throwable { 12 // TODO Auto-generated method stub 13 System.out.println("记录日志中。。。。"+method.getName()); 14 15 } 16 17 }
App1.java
1 package com.frank.aop; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 public class App1 { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 ApplicationContext ac=new ClassPathXmlApplicationContext("com/frank/aop/beans.xml"); 11 TestServiceinter Ts=(TestServiceinter) ac.getBean("proxyFactoryBean"); 12 Ts.SayHello(); 13 14 } 15 16 }
beans.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 5 <!-- 配置前置通知 --> 6 <bean id="myMethodBeforeAdvice" class="com.frank.aop.MyMethodBeforeAdvice" /> 7 <!-- 配置被代理对象 --> 8 <bean id="testServiceImp" class="com.frank.aop.TestServiceImp"> 9 <property name="name" value="frank"></property> 10 </bean> 11 <!-- 配置代理对象 --> 12 <bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean"> 13 <!--代理接口集 --> 14 <property name="proxyInterfaces"> 15 <list> 16 <value>com.frank.aop.TestServiceinter</value> 17 </list> 18 </property> 19 <!-- 把通知织入到代理对象 --> 20 <property name="interceptorNames"> 21 <value>myMethodBeforeAdvice</value> 22 </property> 23 <!-- 配置被代理对象 --> 24 <property name="target" ref="testServiceImp"> 25 </property> 26 </bean> 27 28 29 </beans>
标签:
原文地址:http://www.cnblogs.com/frankM/p/4399844.html