国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 在Spring Boot框架中使用AOP的正確姿勢

在Spring Boot框架中使用AOP的正確姿勢

2021-05-25 12:19餓了么物流技術團隊 Java教程

aop是spring的兩大功能模塊之一,功能非常強大,為解耦提供了非常優秀的解決方案。下面這篇文章主要給大家介紹了如何在Spring Boot框架中使用AOP的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

spring boot是基于spring的用來開發web應用的框架,功能與spring mvc有點類似,但是spring boot的一大特點就是需要的配置非常少。spring boot推薦convention over configuration,也就是約定大于配置,因此spring boot會幫你做許多自動的配置,并且spring boot使用的是java config,幾乎可以做到零xml文件配置。

假設現在有這樣一種場景,需要統計某個接口的處理耗時,我們可以使用aop來實現,aop為aspect oriented programming的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。在spring boot中使用aop也非常簡單,只需要一點簡單的配置即可。

需要使用aop的類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@restcontroller
public class downloadcontroller {
 
 @autowired
 private xmldownloadservice downloadservice;
 
 @autowired
 private xmlfileclearservice clearservice;
 
 @requestmapping("/download")
 @timer
 public string download() throws exception {
  downloadservice.download();
  clearservice.compress();
  clearservice.clearall();
  return "ok";
 }
}

這是一個使用@restcontroller注解的controller類,這個類會去下載一些xml文件,然后壓縮,最后刪除下載的xml文件。現在我們要統計整個處理過程的耗時,使用aop來實現。在download上使用了一個@timer注解,這是一個自定義的普通注解,用來標記這個方法作為一個切點。

aspect類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@aspect
@component
public class vipaspect {
 
 private static final logger logger = loggerfactory.getlogger(vipaspect.class);
 
 private long start;
 
 //定義切點
 @pointcut("@annotation(cn.magicwindow.mlink.content.annotation.timer)")
 public void timer(){}
 
 //在方法執行前執行
 @before("timer()")
 public void before() {
  start = system.currenttimemillis();
 }
 
 //在方法執行后執行
 @after("timer()")
 public void after() {
  long now = system.currenttimemillis();
  logger.info("job took time {}s in summary", (now - start) / 1000);
 }
}

這里使用了注解來標記切點,也可以直接按照方法名稱來定義,具體的使用方法可以參考官方文檔。

配置spring boot支持aop

?
1
2
3
4
@configuration
@enableaspectjautoproxy
public class config {
}

只需要使用@enableaspectjautoproxy注解開啟spring boot的aop支持即可。

最后,在調用download方法之后就會打印出本次處理的用時。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://juejin.im/post/5b67b8a5f265da0f742f07f1

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕中文字幕 | 亚洲欧美另类在线 | 另类国产ts人妖高潮系列视频 | 日本精品在线 | 久久久成人精品 | 亚洲 欧美 日韩 丝袜 另类 | 一级黄免费看 | 欧美一区二区三区 | 在线观看中文字幕 | 成人欧美 | 色片在线观看 | 欧美一级久久 | 国产噜噜噜噜噜久久久久久久久 | 精品国产乱码久久久久久影片 | 久久久国产精品入口麻豆 | 一a级毛片| 久久久精品影院 | 黄色免费在线观看 | 日本成人三级 | 成人午夜精品视频 | 国产福利91精品一区二区三区 | 日韩在线免费电影 | 一级特黄录像免费播放全99 | 韩国精品免费视频 | 亚洲精品在线看 | 黄色精品在线观看 | 九九在线视频 | 国产精品久久久久国产a级 国产免费久久 | 久久精品亚洲一区二区 | 久久久久综合精品福利啪啪 | 亚洲精品久久久久久久久久吃药 | 免费的黄视频 | 国产精选一区二区三区不卡催乳 | 精品96久久久久久中文字幕无 | 久久久美女视频 | 国产精品二区一区二区aⅴ污介绍 | 午夜精品网站 | 69久久| 亚洲一区二区福利 | 日本精品视频一区二区 | 久久综合九色 |