spring AOP 简单入门案例

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>

 

                                          

你可能感兴趣的:(spring aop)