一个简单的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)
blank

相关推荐

  • RPC协议与Http协议区别[通俗易懂]

    RPC协议与Http协议区别[通俗易懂]RPC调用RPC是远程过程调用(RemoteProcedureCall)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。本地过程调用:如果需要完成业务逻辑,则直接去调用本地的方法即可.远程过程调用:我想完成一个业务的调用,但是该功能我没有办法直接调用,需要通过第三方帮助我完成业务规则.具体用法:RPC不关注具体的实现规则,用户也不需要了解具体的协议.谁调用谁

  • 利用反射动态调用类成员

    利用反射动态调用类成员

  • mpVue_mpvue是什么

    mpVue_mpvue是什么mpvue配置flyio安装flyio配置fly安装flyiofly中文文档https://wendux.github.io/dist/#/doc/flyio/interceptor使用npm安装fly:npminstallflyio在src/main.js文件下引入其它引入方式请查看https://github.com/wendux/fly配置fly在使用fly请求借口是,…

  • DB9 公头母头引脚定义及连接

    DB9 公头母头引脚定义及连接

  • 久坐提醒软件_久坐提醒app安卓版

    久坐提醒软件_久坐提醒app安卓版作为苦逼的程序员,每天都要久坐好多个小时,经常一不小心一天就过去了,一直坐着对腰非常不友好,在网上搜了几个久坐提醒的软件,都不太合适自己用,干脆就自己写了个软件,定时提醒自己起来休息一下。软件可自定义提醒的时间间隔,界面可点击开始计时、停止计时,重新开始计时,可设置开程序自动开始计时,最小化可隐藏到托盘,界面按钮均支持快捷键,支持windows消息提醒。最近自己一直在使用,以后有空再更新一些内容,让软件更好用一点。使用环境:Windows,dotnetframework4.5.1快捷键:开始

  • github开发人员在七夕搞事情:remote: Support for password authentication was removed on August 13, 2021.

    github开发人员在七夕搞事情:remote: Support for password authentication was removed on August 13, 2021.1问题描述如果你在七夕(没错就是2020年8月14日)的这一天刚好加班,又刚好去访问了全球最大的同性交友网站,又刚好去更新提交代码,又或你创建了一个新的仓库送给自己,又刚好想把这个仓库送给(push)github,你就刚好会遇到这个问题:remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.Pleaseuseapersonalaccesstokeninstead.具体如下:(yolov4)

发表回复

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

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