最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

動(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)簡單.主要核心是動(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)用場景:

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的示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • struts2配置靜態(tài)資源代碼詳解

    struts2配置靜態(tài)資源代碼詳解

    這篇文章主要介紹了struts2配置靜態(tài)資源的相關(guān)內(nèi)容,文中涉及了具體代碼介紹,需要的朋友可以參考下。
    2017-09-09
  • java搜索無向圖中兩點(diǎn)之間所有路徑的算法

    java搜索無向圖中兩點(diǎn)之間所有路徑的算法

    這篇文章主要介紹了java搜索無向圖中兩點(diǎn)之間所有路徑的算法
    2019-01-01
  • java編程是做什么的

    java編程是做什么的

    在本篇文章里小編給大家整理的是一篇關(guān)于java編程是什么相關(guān)的基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以閱讀下。
    2021-01-01
  • SpringBoot+Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)

    SpringBoot+Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)

    這篇文章主要為大家詳細(xì)介紹了springBoot+Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • spring容器初始化遇到的死鎖問題解決

    spring容器初始化遇到的死鎖問題解決

    這篇文章主要給大家介紹了關(guān)于spring容器初始化時(shí)候遇到的死鎖問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Java使用PDFBox實(shí)現(xiàn)調(diào)整PDF每頁格式

    Java使用PDFBox實(shí)現(xiàn)調(diào)整PDF每頁格式

    這篇文章主要為大家詳細(xì)介紹了Java如何使用PDFBox實(shí)現(xiàn)調(diào)整PDF每頁格式,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下
    2024-03-03
  • Java調(diào)用ChatGPT(基于SpringBoot和Vue)實(shí)現(xiàn)可連續(xù)對(duì)話和流式輸出的ChatGPT API

    Java調(diào)用ChatGPT(基于SpringBoot和Vue)實(shí)現(xiàn)可連續(xù)對(duì)話和流式輸出的ChatGPT API

    這篇文章主要介紹了Java調(diào)用ChatGPT(基于SpringBoot和Vue),實(shí)現(xiàn)可連續(xù)對(duì)話和流式輸出的ChatGPT API(可自定義實(shí)現(xiàn)AI助手),文中代碼示例介紹的非常詳細(xì),感興趣的朋友可以參考下
    2023-04-04
  • Java基礎(chǔ)之Comparable與Comparator概述

    Java基礎(chǔ)之Comparable與Comparator概述

    這篇文章主要介紹了Java基礎(chǔ)之Comparable與Comparator詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java集合之Map接口的實(shí)現(xiàn)類精解

    Java集合之Map接口的實(shí)現(xiàn)類精解

    Map提供了一種映射關(guān)系,其中的元素是以鍵值對(duì)(key-value)的形式存儲(chǔ)的,能夠?qū)崿F(xiàn)根據(jù)key快速查找value;Map中的鍵值對(duì)以Entry類型的對(duì)象實(shí)例形式存在;鍵(key值)不可重復(fù),value值可以重復(fù),一個(gè)value值可以和很多key值形成對(duì)應(yīng)關(guān)系,每個(gè)建最多只能映射到一個(gè)值
    2021-09-09
  • java編程之遞歸算法總結(jié)

    java編程之遞歸算法總結(jié)

    這篇文章主要介紹了java編程之遞歸算法總結(jié),具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11

最新評(píng)論

鹰潭市| 甘肃省| 肇州县| 齐河县| 昌图县| 临清市| 南川市| 共和县| 平阳县| 桦甸市| 门头沟区| 汤原县| 上饶县| 石城县| 岱山县| 虎林市| 房产| 铁力市| 棋牌| 易门县| 麻阳| 吉木乃县| 池州市| 竹北市| 台东县| 大英县| 临桂县| 桑植县| 鸡泽县| 恩平市| 乐东| 陆丰市| 龙南县| 台南市| 贞丰县| 阳信县| 西安市| 通城县| 齐齐哈尔市| 余庆县| 辛集市|