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

Spring動態(tài)代理實現(xiàn)日志功能詳解

 更新時間:2021年08月17日 11:02:52   作者:haijiao12138  
這篇文章主要為大家詳細介紹了Spring動態(tài)代理實現(xiàn)日志功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

代理模式(Proxy)是通過代理對象訪問目標對象,這樣可以在目標對象基礎上增強額外的功能,如添加權限,訪問控制和審計等功能。

1.自定義業(yè)務接口

package com.haijiao12138.demo.spring.agentLog0815;
 
/**
 * @author: haijiao12138
 * @ClassName: BusinessClassService
 * @description: TODO
 * @date: 2021/8/15 14:33
 */
public interface BusinessClassService {
 
    public void doSomeThing();//自定義接口
 
}

2.自定義業(yè)務接口實現(xiàn)類

package com.haijiao12138.demo.spring.agentLog0815;
 
/**
 * @author: haijiao12138
 * @ClassName: BusinessClassServiceImpl
 * @description: 業(yè)務類
 * @date: 2021/8/15 14:34
 */
public class BusinessClassServiceImpl implements BusinessClassService {
 
    //執(zhí)行某事
    @Override
    public void doSomeThing() {
        System.out.println("doing  somthing......");
    }
}

3.日志接口和實現(xiàn)類

package com.haijiao12138.demo.spring.agentLog0815;
 
import java.lang.reflect.Method;
 
/**
 * @author: haijiao12138
 * @ClassName: MyLogger
 * @description:日志類接口
 * @date: 2021/8/15 14:38
 */
public interface MyLogger {
 
    //記錄進入方法時間
    public void saveIntoMethodTime(Method method);
 
    //記錄退出方法的時間
    public void saveOutMethodTime(Method method);
}
package com.haijiao12138.demo.spring.agentLog0815;
 
import java.lang.reflect.Method;
import java.util.Date;
 
/**
 * @author: haijiao12138
 * @ClassName: MyLoggerImpl
 * @description: TODO  日志實現(xiàn)類
 * @date: 2021/8/15 14:40
 */
public class MyLoggerImpl  implements MyLogger{
    @Override
    public void saveIntoMethodTime(Method method) {
        System.out.println("進入" + method.getName()  +"方法時間為: " + new Date());
    }
 
    @Override
    public void saveOutMethodTime(Method method) {
        System.out.println("退出" + method.getName() + "方法時間為:" + new Date());
    }
}

4.下面是日志類的handler實現(xiàn):

package com.haijiao12138.demo.spring.agentLog0815;
 
import java.lang.reflect.Method;
import java.util.Date;
 
/**
 * @author: haijiao12138
 * @ClassName: MyLoggerImpl
 * @description: TODO  日志實現(xiàn)類
 * @date: 2021/8/15 14:40
 */
public class MyLoggerImpl  implements MyLogger{
    @Override
    public void saveIntoMethodTime(Method method) {
        System.out.println("進入" + method.getName()  +"方法時間為: " + new Date());
    }
 
    @Override
    public void saveOutMethodTime(Method method) {
        System.out.println("退出" + method.getName() + "方法時間為:" + new Date());
    }
}

5.測試類

package com.haijiao12138.demo.spring.agentLog0815;
 
import java.lang.reflect.Proxy;
 
/**
 * @author: haijiao12138
 * @ClassName: MyLoggerTest
 * @description: TODO 日志測試類
 * @date: 2021/8/15 14:43
 */
public class MyLoggerTest {
    public static void main(String[] args) {
        /** 實例化真實項目中業(yè)務類 **/
        BusinessClassService businessClassService = new BusinessClassServiceImpl();
        /** 日志類的handler **/
        MyLoggerHandler myLoggerHandler = new MyLoggerHandler(businessClassService);
        /** 獲得代理類對象 **/
        BusinessClassService businessClass = (BusinessClassService) Proxy.newProxyInstance(businessClassService.getClass().getClassLoader(), businessClassService.getClass().getInterfaces(),myLoggerHandler);
        /** 執(zhí)行代理類方法 **/
        businessClass.doSomeThing();
 
    }
 
}

結果輸出:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 將Sublime Text 2配置為Java的IDE的教程

    將Sublime Text 2配置為Java的IDE的教程

    這篇文章主要介紹了將Sublime Text 2配置為Java的IDE的教程,包括能讓Sublime這個文本編輯器編譯和運行Java程序等,需要的朋友可以參考下
    2015-07-07
  • Hibernate的Session_flush與隔離級別代碼詳解

    Hibernate的Session_flush與隔離級別代碼詳解

    這篇文章主要介紹了Hibernate的Session_flush與隔離級別代碼詳解,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • java LRU算法介紹與用法示例

    java LRU算法介紹與用法示例

    這篇文章主要介紹了java LRU算法,簡單介紹了LRU算法的概念并結合實例形式分析了LRU算法的具體使用方法,需要的朋友可以參考下
    2017-09-09
  • Java類和成員上的一些方法實例代碼

    Java類和成員上的一些方法實例代碼

    這篇文章主要介紹了Java類和成員上的一些方法實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • java實現(xiàn)檢測是否字符串中包含中文

    java實現(xiàn)檢測是否字符串中包含中文

    本文給大家分享了2個使用java檢測字符串中是否包含中文的代碼,都非常的實用,最后附上了各種字符的unicode編碼的范圍,方便我們以后使用正則進行匹配檢測。
    2015-10-10
  • Java基礎之包裝類

    Java基礎之包裝類

    這篇文章主要介紹了Java基礎之包裝類,文中有非常詳細的代碼示例及基礎知識詳解,對正在學習java基礎的小伙伴們有很大的幫助喲,需要的朋友可以參考下
    2021-05-05
  • Mybatis框架中Interceptor接口的使用說明

    Mybatis框架中Interceptor接口的使用說明

    這篇文章主要介紹了Mybatis框架中Interceptor接口的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java實現(xiàn)獲取cpu、內存、硬盤、網(wǎng)絡等信息的方法示例

    Java實現(xiàn)獲取cpu、內存、硬盤、網(wǎng)絡等信息的方法示例

    這篇文章主要介紹了Java實現(xiàn)獲取cpu、內存、硬盤、網(wǎng)絡等信息的方法,涉及java使用第三方jar包針對本機硬件的cpu、內存、硬盤、網(wǎng)絡信息等的讀取相關操作技巧,需要的朋友可以參考下
    2018-06-06
  • Java?Springboot異步執(zhí)行事件監(jiān)聽和處理實例

    Java?Springboot異步執(zhí)行事件監(jiān)聽和處理實例

    Java?SpringBoot中,監(jiān)聽和處理事件是一種常見的模式,它允許不同的組件之間通過事件進行通信,事件監(jiān)聽和處理通常通過Spring的事件發(fā)布-訂閱模型來實現(xiàn),一個簡單的Spring?Boot應用程序示例,其中將包括事件的定義、事件的發(fā)布以及事件的監(jiān)聽
    2024-07-07
  • 深入解析Andoird應用開發(fā)中View的事件傳遞

    深入解析Andoird應用開發(fā)中View的事件傳遞

    這篇文章主要介紹了深入解析Andoird應用開發(fā)中View的事件傳遞,其中重點講解了ViewGroup的事件傳遞流程,需要的朋友可以參考下
    2016-02-02

最新評論

嘉黎县| 宜宾市| 凤台县| 九龙坡区| 开原市| 囊谦县| 凤冈县| 新密市| 乐亭县| 商水县| 集安市| 百色市| 黎平县| 米脂县| 湖州市| 罗田县| 蚌埠市| 遂平县| 青海省| 澎湖县| 斗六市| 西城区| 肃北| 梧州市| 尚义县| 厦门市| 博罗县| 吉林市| 屯留县| 延川县| 株洲市| 宁城县| 延安市| 汤阴县| 朔州市| 南开区| 英德市| 晋城| 浏阳市| 新营市| 广德县|