午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

代理模式(Proxy)是通過代理對(duì)象訪問目標(biāo)對(duì)象,這樣可以在目標(biāo)對(duì)象基礎(chǔ)上增強(qiáng)額外的功能,如添加權(quán)限,訪問控制和審計(jì)等功能。

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

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è)務(wù)接口實(shí)現(xiàn)類

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

3.日志接口和實(shí)現(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 { //記錄進(jìn)入方法時(shí)間 public void saveIntoMethodTime(Method method); //記錄退出方法的時(shí)間 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 日志實(shí)現(xiàn)類 * @date: 2021/8/15 14:40 */public class MyLoggerImpl implements MyLogger{ @Override public void saveIntoMethodTime(Method method) {System.out.println('進(jìn)入' + method.getName() +'方法時(shí)間為: ' + new Date()); } @Override public void saveOutMethodTime(Method method) {System.out.println('退出' + method.getName() + '方法時(shí)間為:' + new Date()); }}

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

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

5.測(cè)試類

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

結(jié)果輸出:

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产欧美精品一区二区三区 | 亚洲天堂av一区 | 99热精品在线观看 | 亚洲成人资源 | 欧美爱爱网 | 天天天天天天天操 | 久久97| 久久av一区 | 成年人免费视频观看 | 第一色网站 | 亚洲午夜久久久久久久久红桃 | 操操操操操 | 黄频在线免费观看 | 一区二区免费在线观看视频 | 国内久久 | 亚洲一区福利视频 | 一夜七次郎在线视频 | 久久99国产综合精品免费 | 欲望岛av| 国产精品1区2区 | 欧美成人二区 | 国产一区在线免费 | 他也色在线视频 | h在线观看视频 | 在线免费av网站 | 这里只有精品999 | 国产在线视频网站 | 日本高清视频一区二区 | 视频一区日韩 | 自拍偷拍第2页 | 日韩中文字幕无砖 | 国产裸体永久免费无遮挡 | 久久久91视频 | 国产精品久久久一区 | 亚洲最新网址 | 中文字幕在线免费 | www.激情五月 | 久久久久一区二区三区四区 | 日韩成人精品一区二区 | 狠狠操图片| 久久久久久影视 |