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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • input文本域选中后会出现蓝边框去除「建议收藏」

    input文本域选中后会出现蓝边框去除「建议收藏」input文本域选中后会出现蓝边框去除input图示:input  {         border:0;outline:none;   //去除蓝色边框       } 学习outline属性 outline(轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。 outline 简写属性在一个声明中设置所有的轮廓属性。 可以按顺序设置如…

    2022年6月13日
    57
  • Python量化投资:技术、模型与策略_量化金融投资及其python应用

    Python量化投资:技术、模型与策略_量化金融投资及其python应用python量化投资-01

    2022年4月20日
    77
  • java毕业设计_校园二手交易平台

    java毕业设计_校园二手交易平台校园二手交易平台mysql数据库创建语句校园二手交易平台oracle数据库创建语句校园二手交易平台sqlserver数据库创建语句校园二手交易平台spring+springMVC+hibernate框架对象(javaBean,pojo)设计校园二手交易平台spring+springMVC+mybatis框架对象(javaBean,pojo)设计校园二手交易平台登录注册界面校园二手交易平…

    2022年6月16日
    18
  • 在Anaconda中安装OpenCV

    anaconda中安装OpenCV在anaconda中安装opencv查询Python与anaconda版本安装方法开始安装验证是否成功在anaconda中安装opencv本人使用的是win10系统,anaconda版本为4.7.12,python版本为3.7.4查询Python与anaconda版本按win+r键后输入cmd,弹出命令提示符窗口。然后输入:conda-V查询anaconda版本。输入:python查询python版本。后续安装opencv需要安装对应pyth

    2022年4月5日
    984
  • 分类变量的卡方检验(python实现&SPSS实现)「建议收藏」

    分类变量的卡方检验(python实现&SPSS实现)「建议收藏」卡方介绍卡方检验是针对自变量和因变量都是分类数据,也就是说带有属性的数据;而单因素方差分析是自变量是分类数据,因变量是连续型的数据。还有一点:方差分析是参数检验,而卡方检验是属于非参数检验。卡方检验是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小:卡方值越大,偏差越大,越趋于不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。案例介绍本次实验是研究聚类结果和标签DR的关系,即检验我们的聚类有没有意义。

    2022年8月30日
    4
  • js中document.getElementById()用法「建议收藏」

    js中document.getElementById()用法「建议收藏」dom标准里面的 获取当前文档中指定id的元素if(document.getElementById(“regjm”).value!=document.getElementById(“regjm1”).value){  alert(“提示:请输入有效的认证码”);  document.getElementById(“regjm1”).focus();  retur

    2022年7月15日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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