欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

動(dòng)態(tài)代理模擬實(shí)現(xiàn)aop的示例

 更新時(shí)間:2017年11月06日 08:49:38   作者:C_凱  
下面小編就為大家?guī)硪黄獎(jiǎng)討B(tài)代理模擬實(shí)現(xiàn)aop的示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望對(duì)大家有所幫助

AOP實(shí)現(xiàn)起來代碼相當(dāng)簡(jiǎn)單.主要核心是動(dòng)態(tài)代理和反射.

一.接口類:

public interface MethodDao { 
   public void sayHello(); 
}

二.接口實(shí)現(xiàn)類:

public class MethodImpl implements MethodDao { 
  public void sayHello() 
  { 
    System.out.println("hello world"); 
  } 
}

三.編寫動(dòng)態(tài)代理類DynamicProxy,***實(shí)現(xiàn)InvocationHandler接口

public class DynamicProxy implements InvocationHandler {
 private Object object;
 /**
 
 * <p>Title: </p>
 * <p>Description: </p>
 * 接受被代理類
 */
 public DynamicProxy(Object object) {
  this.object=object;
  // TODO Auto-generated constructor stub
 }
 /* (non-Javadoc)
  * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
  *實(shí)現(xiàn)invoke方法,在方法執(zhí)行之后添加操作
  */
 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
  // TODO Auto-generated method stub
  System.out.println("=====方法執(zhí)行前=======");
  method.invoke(object, args);
  System.out.println("=====方法執(zhí)行后=======");
  return null;
 }
}

四.編寫測(cè)試類:

public class Test { 
  public static void main(String[] args) { 
     MethodDao methodDao=new MethodImpl(); 
     InvocationHandler handler = new DynamicProxy(methodDao); 
     //第一個(gè)參數(shù)是類加載器,與handler相同; 
     //第二個(gè)是參數(shù)對(duì)象實(shí)現(xiàn)的接口,如果沒有的話需要使用cdlib 
     //第三個(gè)參數(shù)是InvocationHandler. 
     //該類返回的其實(shí)是MethodImpl類 
     methodDao=(MethodDao) Proxy.newProxyInstance(handler.getClass().getClassLoader(), methodDao.getClass().getInterfaces(), handler); 
     methodDao.sayHello(); 
  } 
   
   
} 

五.查看控制臺(tái)輸出:

=====方法執(zhí)行前=======
hello world
=====方法執(zhí)行后=======

六.總結(jié):

通過上面的代碼可以總結(jié)出AOP的應(yīng)用場(chǎng)景:

1.事務(wù)管理,(事務(wù)的開啟跟提交可以直接交由aop來處理,程序員可以更加專注于業(yè)務(wù))

2.日志管理(在方法調(diào)用的前后可以打印日志)

3.權(quán)限管理(比如登錄驗(yàn)證.管理員權(quán)限等,在調(diào)用某個(gè)方法時(shí),如果權(quán)限不夠也可以提示).

以上這篇?jiǎng)討B(tài)代理模擬實(shí)現(xiàn)aop的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Jackson序列化丟失泛型的解決

    Jackson序列化丟失泛型的解決

    這篇文章主要介紹了Jackson序列化丟失泛型的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Mybatis的幾種傳參方式詳解

    Mybatis的幾種傳參方式詳解

    這篇文章主要介紹了Mybatis的幾種傳參方式詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 搞懂Java線程池

    搞懂Java線程池

    這篇文章主要介紹了Java線程池,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • springboot+thymeleaf+druid+mybatis 多模塊實(shí)現(xiàn)用戶登錄功能

    springboot+thymeleaf+druid+mybatis 多模塊實(shí)現(xiàn)用戶登錄功能

    這篇文章主要介紹了springboot+thymeleaf+druid+mybatis 多模塊實(shí)現(xiàn)用戶登錄功能,本文通過示例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 詳解Java實(shí)現(xiàn)設(shè)計(jì)模式之責(zé)任鏈模式

    詳解Java實(shí)現(xiàn)設(shè)計(jì)模式之責(zé)任鏈模式

    責(zé)任鏈模式是一種行為設(shè)計(jì)模式,允許你將請(qǐng)求沿著處理鏈發(fā)送,然后處理者都可對(duì)其進(jìn)行處理,完成后可以再將其傳遞給下一個(gè)處理者。下面將會(huì)舉例說明什么是責(zé)任鏈模式,責(zé)任鏈模式該如何使用
    2021-06-06
  • 詳解Springboot @Cacheable 注解(指定緩存位置)

    詳解Springboot @Cacheable 注解(指定緩存位置)

    這篇文章主要介紹了詳解Springboot @Cacheable 注解(指定緩存位置),使用? @Cacheable ?注解就可以將運(yùn)行結(jié)果緩存,以后查詢相同的數(shù)據(jù),直接從緩存中取,不需要調(diào)用方法,需要的朋友可以參考下
    2023-09-09
  • java進(jìn)階解析Springboot上傳excel存入數(shù)據(jù)庫步驟

    java進(jìn)階解析Springboot上傳excel存入數(shù)據(jù)庫步驟

    項(xiàng)目需要,寫了一個(gè),批量導(dǎo)入的接口。因?yàn)樾枰褂胑xcel去批量導(dǎo)入數(shù)據(jù),所以寫了一個(gè)例子,經(jīng)過測(cè)試已經(jīng)可以用于實(shí)際開發(fā),這里記錄一下
    2021-09-09
  • 關(guān)于Java中@SuppressWarnings的正確使用方法

    關(guān)于Java中@SuppressWarnings的正確使用方法

    這篇文章主要介紹了關(guān)于Java中@SuppressWarnings的正確使用方法,@SuppressWarnings注解主要用在取消一些編譯器產(chǎn)生的警告對(duì)代碼左側(cè)行列的遮擋,有時(shí)候這會(huì)擋住我們斷點(diǎn)調(diào)試時(shí)打的斷點(diǎn),需要的朋友可以參考下
    2023-05-05
  • Feign實(shí)現(xiàn)多文件上傳,Open?Feign多文件上傳問題及解決

    Feign實(shí)現(xiàn)多文件上傳,Open?Feign多文件上傳問題及解決

    這篇文章主要介紹了Feign實(shí)現(xiàn)多文件上傳,Open?Feign多文件上傳問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java有效處理異常的三個(gè)原則

    Java有效處理異常的三個(gè)原則

    Java中異常提供了一種識(shí)別及響應(yīng)錯(cuò)誤情況的一致性機(jī)制,有效地異常處理能使程序更加健壯、易于調(diào)試。那么這篇文章總結(jié)了Java有效處理異常的三個(gè)原則,有需要的朋友們可以參考借鑒。
    2016-09-09

最新評(píng)論