av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

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

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

代理模式(Proxy)是通過(guò)代理對(duì)象訪問(wèn)目標(biāo)對(duì)象,這樣可以在目標(biāo)對(duì)象基礎(chǔ)上增強(qiáng)額外的功能,如添加權(quán)限,訪問(wè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)類(lèi)

package com.haijiao12138.demo.spring.agentLog0815; /** * @author: haijiao12138 * @ClassName: BusinessClassServiceImpl * @description: 業(yè)務(wù)類(lèi) * @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)類(lèi)

package com.haijiao12138.demo.spring.agentLog0815; import java.lang.reflect.Method; /** * @author: haijiao12138 * @ClassName: MyLogger * @description:日志類(lèi)接口 * @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)類(lèi) * @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.下面是日志類(lèi)的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)類(lèi) * @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è)試類(lèi)

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

結(jié)果輸出:

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

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

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧美一区二区三区在线看 | 婷婷福利 | 日韩在线国产 | 一区二区三区国产 | 欧美激情一区二区三级高清视频 | 亚洲一区中文字幕 | 91一区二区三区在线观看 | 一区二区三区视频在线观看 | 国产精品美女一区二区 | 九九99精品 | 老司机精品福利视频 | 精品麻豆剧传媒av国产九九九 | 国产精品久久久久久久久 | 色狠狠一区 | 国产成人免费视频网站高清观看视频 | 中文字幕不卡在线88 | 男女一区二区三区 | 人干人人 | 成人亚洲视频 | 国产视频福利在线观看 | 日韩中文字幕在线观看 | 天天操夜夜爽 | 91久久精品 | 视频一区二区三区中文字幕 | 黄色网址在线免费播放 | 中文字幕国产精品 | 伊人激情网 | 久久午夜视频 | 免费成人高清在线视频 | 日韩另类| 麻豆视频在线免费看 | 久久久www成人免费精品 | 欧美一级视频 | 蜜桃av一区二区三区 | 一色一黄视频 | 正在播放国产精品 | 精品久| 免费视频一区二区 | 最新中文字幕一区 | 综合久久网 | 超级黄色一级片 |