国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Spring動態代理實現日志功能詳解

瀏覽:3日期:2023-12-03 09:33:56

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

1.自定義業務接口

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.自定義業務接口實現類

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

3.日志接口和實現類

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 日志實現類 * @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實現:

package com.haijiao12138.demo.spring.agentLog0815; import java.lang.reflect.Method;import java.util.Date; /** * @author: haijiao12138 * @ClassName: MyLoggerImpl * @description: TODO 日志實現類 * @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) {/** 實例化真實項目中業務類 **/BusinessClassService businessClassService = new BusinessClassServiceImpl();/** 日志類的handler **/MyLoggerHandler myLoggerHandler = new MyLoggerHandler(businessClassService);/** 獲得代理類對象 **/BusinessClassService businessClass = (BusinessClassService) Proxy.newProxyInstance(businessClassService.getClass().getClassLoader(), businessClassService.getClass().getInterfaces(),myLoggerHandler);/** 執行代理類方法 **/businessClass.doSomeThing(); } }

結果輸出:

Spring動態代理實現日志功能詳解

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

標簽: Spring
相關文章:
主站蜘蛛池模板: 九九全国免费视频 | 日韩中文字幕在线看 | 亚洲一区二区天海翼 | 中文字幕国产视频 | 一级毛片一片毛 | 欧美又粗又硬又大久久久 | 国产高清视频免费在线观看 | 日韩毛毛片 | 国产午夜小视频 | 日本手机看片 | 国内久久久 | 国产免费午夜a无码v视频 | 国产成年| 人人爽人人香蕉 | 国产麻豆交换夫妇 | 香港国产特级一级毛片 | 亚洲不卡视频在线观看 | 一级毛片不卡片免费观看 | 二区久久国产乱子伦免费精品 | 欧美18毛片免费看 | 国产精品欧美激情在线播放 | 国产伦码精品一区二区 | 看久久久久毛片婷婷色 | 很黄很色的免费视频 | 外国成人网在线观看免费视频 | 亚洲一区二区三区四区 | 91精品欧美综合在线观看 | 日本免费人成黄页在线观看视频 | 久久精品国产亚洲7777小说 | 在线视频 一区二区 | 欧美不卡在线视频 | 免费aⅴ片 | 高清一级毛片 | 日韩一级黄色 | 一级成人 | 久久久久免费精品国产 | 亚洲国产精品久久久久久网站 | 我要看a级毛片 | 亚洲欧美视频在线 | 亚洲精品欧洲一区二区三区 | 国产精品亚洲四区在线观看 |