日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

springboot切面返回值_SpringBoot实战15-Spring基础-AOP

發布時間:2024/4/19 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot切面返回值_SpringBoot实战15-Spring基础-AOP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上篇我們學習了《SpringBoot實戰14-Spring基礎-Spring EL表達式》,本篇我們學習面向切面編程AOP。

7 AOP

面向切面編程(Aspect-Oriented Programming簡稱AOP),它可以做到添加額外的行為到現有的指定條件的一批Bean上,但是我們并不需要修改Bean的代碼,這樣使得額外行為和Bean本身行為關注隔離。

學習AOP,我們首先要熟悉下面的概念:

  • 切面:Aspect,編寫額外行為的地方;
  • 連接點:Join Point,被攔截的方法;
  • 切點:PointCut,通過條件匹配一批連接點;
  • 建言:Advice,對于每個連接點需要做的行為;
  • 目標對象:符合指定條件的Bean

我們使用AOP開發需要使用@EnableAspectJAutoProxy注解來開啟AspectJ的支持,Spring Boot已經為我們自動做了配置,我們無需額外聲明。

我們來編寫一個使用AOP來記錄操作日志的例子,我們先編寫一個注解用來給切點作為攔截條件:

@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Logging { String value() default "";}

目標對象為:

@Servicepublic class PersonService { @Logging("人員新增操作") public void add(String name){ //每個被攔截的方法都是連接點 System.out.println("人員新增"); } @Logging("人員刪除操作") public void remove(String name){ System.out.println("人員刪除"); } @Logging("人員查詢操作") public String query(String name){ System.out.println("人員查詢"); return name; } @Logging("人員修改操作") public String modify(String name){ System.out.println("人員修改"); return name.toUpperCase(); }}

下面是我們最重要的部分,切面部分的編寫:

@Aspect //1@Componentpublic class LoggingAspect { @Pointcut("@annotation(top.wisely.springfundamentals.aop.Logging)") //2 public void annotationPointCut(){} @Before("annotationPointCut()") //3 public void beforeAnnotationPointCut(JoinPoint joinPoint){//4 String name = (String) joinPoint.getArgs()[0]; //5 MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); String action = methodSignature.getMethod().getAnnotation(Logging.class).value(); //6 System.out.println("對" + name + "進行了"+ action); } @AfterReturning(pointcut = "annotationPointCut()", returning = "retName") //7 public void afterReturningAnnotationPointCut(JoinPoint joinPoint, String retName){ String name = (String) joinPoint.getArgs()[0]; MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); String action = methodSignature.getMethod().getAnnotation(Logging.class).value(); System.out.println("對" + name + "進行了"+ action + ",返回的名字為:" + retName); } }
  • 使用@Aspect定義一個切面;
  • 使用@Pointcut,他將所有注解了@Logging注解的方法作為條件;
  • 使用@Before建言,它使用的切點annotationPointCut(),針對符合切點條件的Bean執行beforeAnnotationPointCut()方法里的行為;
  • JoinPoint joinPoint代表被攔截的方法,可以從joinPoint獲得方法的簽名信息;
  • 通過joinPoint獲得被攔截方法的參數;
  • 通過jointPoint獲得被攔截方法的注解信息;
  • 使用@AfterReturning建言,我們可以獲得被攔截方法的返回值retName。
  • 我們在JavaConfig執行:

    @BeanCommandLineRunner aopCle(PersonService personService){ return args -> { personService.add("wyf"); personService.remove("wyf"); personService.query("wyf"); personService.modify("wyf"); };}

    下一篇《SpringBoot實戰16-Spring基礎-Spring注解的工作原理》

    總結

    以上是生活随笔為你收集整理的springboot切面返回值_SpringBoot实战15-Spring基础-AOP的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩精品在线观看中文字幕 | 在线精品亚洲欧美日韩国产 | 激情文学亚洲色图 | 91理论片| 奇米视频在线观看 | 一级黄色免费毛片 | 啪啪免费 | 国产色频 | 老狼影院伦理片 | 特级毛片在线播放 | 荫道bbwbbb高潮潮喷 | 男人捅爽女人 | 96免费视频 | 女人十八岁毛片 | 久草免费在线观看 | 欧美亚洲一级片 | 欧美在线激情 | 国产成人精品在线播放 | 少妇精品无码一区二区三区 | 日噜噜夜噜噜 | 欧美成人秋霞久久aa片 | 成人午夜在线观看视频 | 美女色诱男人激情视频 | 欧美成人aaaa | 韩国毛片视频 | 亚洲人成电影在线 | 国产拍拍视频 | 你懂的在线免费观看 | 成人欧美在线视频 | 精品无人区无码乱码毛片国产 | 久久久精品人妻一区二区三区色秀 | 奇米网一区二区 | 亚洲成人18 | 亚洲高清不卡 | 国产欧美视频一区二区三区 | 日产精品久久久一区二区 | 黄色男人的天堂 | 国产成人精品自拍 | 午夜精品一区二区在线观看 | 国产网站视频 | 日韩毛片免费观看 | 日本调教电影 | 潮见百合子 | 国产第一页屁屁影院 | 欧美日韩黄色大片 | 中文视频在线观看 | 成人毛片18女人毛片免费 | 亚洲国产99 | 成人av一区二区在线观看 | 亚州欧美 | 欧美日韩啪啪 | 天天操操操 | 热久久久久久久 | 成人久久久精品乱码一区二区三区 | 国产麻豆乱码精品一区二区三区 | 精品国产综合区久久久久久 | 欧美日韩精品一区二区在线观看 | 欧美 亚洲 一区 | 久久中文字幕在线 | 91中文字幕| 精品一区二区在线观看视频 | 欧美 唯美 清纯 偷拍 | 精品色哟哟 | 黄网站免费入口 | av黄页| 国产美女精品视频国产 | 国产欧美一区二区三区在线 | 国产精品久久久久久亚洲av | 久久久久久久久久久97 | 青青国产在线观看 | 91porny九色 | 成人在线观看网 | 狠狠干很很操 | 免费看黄色一级片 | 精品在线一区 | 欧美日韩色 | 亚洲午夜精选 | 人人舔人人干 | 福利网站在线观看 | 欧美日韩中文字幕在线播放 | 小泽玛利亚一区二区三区 | 免费网站观看www在线观看 | 亚洲成a人无码 | 日本少妇xxxx软件 | 日韩男人的天堂 | 色婷婷久久一区二区三区麻豆 | 澳门av在线 | 青青草国产在线播放 | 亚洲天堂2021av | 国产乱人 | 99这里只有精品 | 人人综合网 | 少妇精品久久久久久久久久 | 色日韩| 中文字幕精品在线 | 熟妇人妻中文字幕无码老熟妇 | 欧美一级性生活 | 天天拍天天干 | 日韩伦理一区二区 |