一个简单的Spring的AOP例子

一个简单的Spring的AOP例子

出处:http://www.blogjava.net/javadragon/archive/2006/12/03/85115.html

 经过这段日子的学习和使用Spring,慢慢地体会到Spring的优妙之处,正在深入地吸收Spring的精华,呵呵。现在写的这个只是个简单AOP例子,包括前置通知,后置通知,环绕通知,和目标对象。写这个例子的主要目标只是想让想学AOP的能更快地入门,了解一下如何去配置AOP里面的东东。
目标对象的接口:IStudent.java

 1 
一个简单的Spring的AOP例子 
/** 
 2 一个简单的Spring的AOP例子 * 
 3 一个简单的Spring的AOP例子  */ 



 4 
一个简单的Spring的AOP例子 
package 
 com.dragon.study;

 5 
一个简单的Spring的AOP例子 

 6 
一个简单的Spring的AOP例子 
/** 
 7 一个简单的Spring的AOP例子 *  @author  dragon
 8 一个简单的Spring的AOP例子 *
 9 一个简单的Spring的AOP例子  */ 



10 
一个简单的Spring的AOP例子 
public 
  
interface 
 IStudent  
{

11 一个简单的Spring的AOP例子    
12 一个简单的Spring的AOP例子     public   void  addStudent(String name);
13 一个简单的Spring的AOP例子} 



14 
一个简单的Spring的AOP例子

目标类:StudentImpl.java

 1 
一个简单的Spring的AOP例子 
/** 
 2 一个简单的Spring的AOP例子 * 
 3 一个简单的Spring的AOP例子  */ 



 4 
一个简单的Spring的AOP例子 
package 
 com.dragon.study.Impl;

 5 
一个简单的Spring的AOP例子 

 6 
一个简单的Spring的AOP例子 
import 
 com.dragon.study.IStudent;

 7 
一个简单的Spring的AOP例子 

 8 
一个简单的Spring的AOP例子 
/** 
 9 一个简单的Spring的AOP例子 *  @author  dragon
10 一个简单的Spring的AOP例子 *
11 一个简单的Spring的AOP例子  */ 



12 
一个简单的Spring的AOP例子 
public 
  
class 
 StudentImpl  
implements 
 IStudent 
{

13 一个简单的Spring的AOP例子 
14 一个简单的Spring的AOP例子       public   void  addStudent(String name) {

15 一个简单的Spring的AOP例子         System.out.println(  欢迎   + name +   你加入Spring家庭!  );
16 一个简单的Spring的AOP例子     } 

17 一个简单的Spring的AOP例子} 



18 
一个简单的Spring的AOP例子

前置通知:BeforeAdvice.java

 1 
一个简单的Spring的AOP例子 
/** 
 2 一个简单的Spring的AOP例子 * 
 3 一个简单的Spring的AOP例子  */ 



 4 
一个简单的Spring的AOP例子 
package 
 com.dragon.Advice;

 5 
一个简单的Spring的AOP例子 

 6 
一个简单的Spring的AOP例子 
import 
 java.lang.reflect.Method;

 7 
一个简单的Spring的AOP例子 

 8 
一个简单的Spring的AOP例子 
import 
 org.springframework.aop.MethodBeforeAdvice;

 9 
一个简单的Spring的AOP例子 

10 
一个简单的Spring的AOP例子 
/** 
11 一个简单的Spring的AOP例子 *  @author  dragon
12 一个简单的Spring的AOP例子 *
13 一个简单的Spring的AOP例子  */ 



14 
一个简单的Spring的AOP例子 
public 
  
class 
 BeforeAdvice  
implements 
 MethodBeforeAdvice 
{

15 一个简单的Spring的AOP例子 
16 一个简单的Spring的AOP例子       public   void  before(Method method,Object[] args, Object target)
17 一个简单的Spring的AOP例子                 throws  Throwable {

18 一个简单的Spring的AOP例子          
19 一个简单的Spring的AOP例子          System.out.println(  这是BeforeAdvice类的before方法.  );
20 一个简单的Spring的AOP例子          
21 一个简单的Spring的AOP例子      } 

22 一个简单的Spring的AOP例子} 



23 
一个简单的Spring的AOP例子



后置通知:AfterAdvice.java

 1
一个简单的Spring的AOP例子
/**
 2一个简单的Spring的AOP例子 * 
 3一个简单的Spring的AOP例子 */



 4
一个简单的Spring的AOP例子
package
 com.dragon.Advice;

 5
一个简单的Spring的AOP例子

 6
一个简单的Spring的AOP例子
import
 java.lang.reflect.Method;

 7
一个简单的Spring的AOP例子

 8
一个简单的Spring的AOP例子
import
 org.springframework.aop.AfterReturningAdvice;

 9
一个简单的Spring的AOP例子

10
一个简单的Spring的AOP例子
/**
11一个简单的Spring的AOP例子 * @author dragon
12一个简单的Spring的AOP例子 *
13一个简单的Spring的AOP例子 */



14
一个简单的Spring的AOP例子
public
 
class
 AfterAdvice 
implements
 AfterReturningAdvice
{

15一个简单的Spring的AOP例子    
16一个简单的Spring的AOP例子    public void afterReturning(Object returnValue ,Method method,
17一个简单的Spring的AOP例子                   Object[] args,Object target) throws Throwable{

18一个简单的Spring的AOP例子        System.out.println(这是AfterAdvice类的afterReturning方法.);
19一个简单的Spring的AOP例子    }

20一个简单的Spring的AOP例子      
21一个简单的Spring的AOP例子
22一个简单的Spring的AOP例子}



23
一个简单的Spring的AOP例子


环绕通知:CompareInterceptor.java

 1
一个简单的Spring的AOP例子
/**
 2一个简单的Spring的AOP例子 * 
 3一个简单的Spring的AOP例子 */



 4
一个简单的Spring的AOP例子
package
 com.dragon.Advice;

 5
一个简单的Spring的AOP例子

 6
一个简单的Spring的AOP例子
import
 org.aopalliance.intercept.MethodInterceptor;

 7
一个简单的Spring的AOP例子
import
 org.aopalliance.intercept.MethodInvocation;

 8
一个简单的Spring的AOP例子

 9
一个简单的Spring的AOP例子

10
一个简单的Spring的AOP例子
/**
11一个简单的Spring的AOP例子 * @author dragon
12一个简单的Spring的AOP例子 *
13一个简单的Spring的AOP例子 */



14
一个简单的Spring的AOP例子
public
 
class
 CompareInterceptor 
implements
 MethodInterceptor
{

15一个简单的Spring的AOP例子
16一个简单的Spring的AOP例子      public Object invoke(MethodInvocation invocation) throws Throwable{

17一个简单的Spring的AOP例子          Object result = null;
18一个简单的Spring的AOP例子         String stu_name = invocation.getArguments()[0].toString();
19一个简单的Spring的AOP例子         if ( stu_name.equals(dragon)){

20一个简单的Spring的AOP例子             //如果学生是dragon时,执行目标方法,
21一个简单的Spring的AOP例子              result= invocation.proceed();
22一个简单的Spring的AOP例子              
23一个简单的Spring的AOP例子         }
 else{

24一个简单的Spring的AOP例子             System.out.println(此学生是+stu_name+而不是dragon,不批准其加入.);
25一个简单的Spring的AOP例子         }

26一个简单的Spring的AOP例子        
27一个简单的Spring的AOP例子          return result;
28一个简单的Spring的AOP例子      }

29一个简单的Spring的AOP例子}



30
一个简单的Spring的AOP例子



配置文件applicationContext.xml

 1
一个简单的Spring的AOP例子
<?
xml version=”1.0″ encoding=”UTF-8″
?>


 2
一个简单的Spring的AOP例子
<!
DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN” “http://www.springframework.org/dtd/spring-beans.dtd”
>


 3
一个简单的Spring的AOP例子

 4
一个简单的Spring的AOP例子
<
beans
>


 5
一个简单的Spring的AOP例子

 6
一个简单的Spring的AOP例子
<
bean 
id
=”beforeAdvice”
 class
=”com.dragon.Advice.BeforeAdvice”
></
bean
>


 7
一个简单的Spring的AOP例子
<
bean 
id
=”afterAdvice”
 class
=”com.dragon.Advice.AfterAdvice”
></
bean
>


 8
一个简单的Spring的AOP例子
<
bean 
id
=”compareInterceptor”
 class
=”com.dragon.Advice.CompareInterceptor”
></
bean
>


 9
一个简单的Spring的AOP例子
<
bean 
id
=”studenttarget”
 class
=”com.dragon.study.Impl.StudentImpl”
></
bean
>


10
一个简单的Spring的AOP例子

11
一个简单的Spring的AOP例子
<
bean 
id
=”student”
 class
=”org.springframework.aop.framework.ProxyFactoryBean”
>


12
一个简单的Spring的AOP例子  
<
property 
name
=”proxyInterfaces”
>


13
一个简单的Spring的AOP例子    
<
value
>
com.dragon.study.IStudent
</
value
>


14
一个简单的Spring的AOP例子  
</
property
>


15
一个简单的Spring的AOP例子  
<
property 
name
=”interceptorNames”
>


16
一个简单的Spring的AOP例子    
<
list
>


17
一个简单的Spring的AOP例子     
<
value
>
beforeAdvice
</
value
>


18
一个简单的Spring的AOP例子     
<
value
>
afterAdvice
</
value
>


19
一个简单的Spring的AOP例子    
<
value
>
compareInterceptor
</
value
>
  

20
一个简单的Spring的AOP例子    
</
list
>


21
一个简单的Spring的AOP例子  
</
property
>


22
一个简单的Spring的AOP例子  
<
property 
name
=”target”
>


23
一个简单的Spring的AOP例子    
<
ref 
bean
=”studenttarget”
/>


24
一个简单的Spring的AOP例子  
</
property
>


25
一个简单的Spring的AOP例子

26
一个简单的Spring的AOP例子
</
bean
>


27
一个简单的Spring的AOP例子

28
一个简单的Spring的AOP例子

29
一个简单的Spring的AOP例子

30
一个简单的Spring的AOP例子

31
一个简单的Spring的AOP例子
</
beans
>





  现在开始写测试类,Test.java

 1
一个简单的Spring的AOP例子
/**
 2一个简单的Spring的AOP例子 * 
 3一个简单的Spring的AOP例子 */



 4
一个简单的Spring的AOP例子
package
 com;

 5
一个简单的Spring的AOP例子

 6
一个简单的Spring的AOP例子
import
 org.springframework.context.ApplicationContext;

 7
一个简单的Spring的AOP例子
import
 org.springframework.context.support.FileSystemXmlApplicationContext;

 8
一个简单的Spring的AOP例子

 9
一个简单的Spring的AOP例子
import
 com.dragon.study.IStudent;

10
一个简单的Spring的AOP例子

11
一个简单的Spring的AOP例子
/**
12一个简单的Spring的AOP例子 * @author dragon
13一个简单的Spring的AOP例子 *
14一个简单的Spring的AOP例子 */



15
一个简单的Spring的AOP例子
public
 
class
 Test 
{

16一个简单的Spring的AOP例子
17一个简单的Spring的AOP例子    /**
18一个简单的Spring的AOP例子     * @param args
19一个简单的Spring的AOP例子     */

20一个简单的Spring的AOP例子    public static void main(String[] args) {

21一个简单的Spring的AOP例子        // TODO Auto-generated method stub
22一个简单的Spring的AOP例子      ApplicationContext ctx = 
23一个简单的Spring的AOP例子          new FileSystemXmlApplicationContext(/com/dragon/applicationContext.xml);
24一个简单的Spring的AOP例子      
25一个简单的Spring的AOP例子      IStudent person = (IStudent)ctx.getBean(student);
26一个简单的Spring的AOP例子      person.addStudent(dragon);
27一个简单的Spring的AOP例子      
28一个简单的Spring的AOP例子//      person.addStudent(“javadragon”);
29一个简单的Spring的AOP例子    }

30一个简单的Spring的AOP例子
31一个简单的Spring的AOP例子}



32
一个简单的Spring的AOP例子
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100464.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号