【spring(三)】AOP總結

🌈鍵盤敲爛,年薪30萬🌈

目錄

一、AOP相關概念

① AOP核心思想思想:

② AOP專業術語:

二、AOP快速如入門

三、AOP工作流程

四、切入點表達式

① 語法格式

②支持通配符

③書寫技巧

五、通知類型

①?環繞通知?

六、獲取切入點參數


一、AOP相關概念

① AOP核心思想思想:

  • 無侵入式的功能增強

② AOP專業術語:

  • 連接點:原始方法
  • 切入點表達式:匹配連接點的式子(要追加功能的方法)
  • 通知:追加的功能
  • 切面:綁定通知和切入點

二、AOP快速如入門

AOP入門案例(基于注解 )

分析:

1.導入依賴坐標

2.制作連接點(數據層的方法)

3.定義切入點表達式

4.綁定切入點與通知關系(切面)

定義通知類:

@Component
@Aspect
public class MyAdvice {// 定義切入點表達式@Pointcut("execution(void itpan.dao.impl.BookDaoImpl.update())")public void pt(){}// 定義通知和綁定關系@Before("pt()")public void method(){System.out.println(System.currentTimeMillis());}}

加入支持AOP的注解

@Configuration
@ComponentScan("itpan")
@EnableAspectJAutoProxy // 告訴spring 程序有基于注解開發的AOP
public class SpringConfig {
}

三、AOP工作流程

四、切入點表達式

① 語法格式

  • 標準格式:動作關鍵字(訪問修飾符 返回值 包名.類名或接口名.方法名(參數) 異常名)
  • 例如:execution(public User com.itpan.service.BookService.findById(int))

②支持通配符

..??? 任意

*???? 任意一個

③書寫技巧

  • 權限修飾符一般為public 可省略 private不要省略
  • 包名書寫盡量不要使用.. 常用*或精準匹配
  • 接口名/類名等通用名稱使用*匹配 例如UserService 使用*Service
  • 方法名動詞精準匹配,名詞*匹配 例如getById 使用getBy*

五、通知類型

①?環繞通知?

注意:

返回值類型為Object

?補充:

前置通知 @Before

后置通知 @After

運行成功后通知 @AfterReturning

拋出異常后通知 @AfterThrowing

六、獲取切入點參數

環繞通知:ProceedingJoinPoing中getArgs()

其他通知:JoinPoint中getArgs()方法

注意:ProceedingJoinPoing與JoinPoint必須式方法中的第一個參數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165493.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nodejs 如何將 Buffer 數據轉為 String

問題說明 使用webSocket的時候出現了一個問題,前端小程序和nodejs后端建立websocket連接后,使用send方法發送到后端為buffer格式,以下為我前后端代碼 1、前端小程序代碼 //創建webSocket連接 const socket uni.connectSocket({url: wss…

[架構之路-249]:目標系統 - 設計方法 - 軟件工程 - 需求工程- 需求開發:如何用圖形表達需求,結構化方法的需求分析

目錄 一、概述 二、數據模型:E-R圖/實體關系圖(數據單元之間的結構關系) 三、功能模型:數據流圖DFD(邏輯運算,包括輸入和輸出,實體之間的關系):輸入》處理 》 輸出 四…

【科技素養】藍橋杯STEMA 科技素養組模擬練習試卷5

1、隨著對新冠肺炎研究的深入,多個國家都已經開始了針對新冠肺炎病毒的疫苗的開發。以下關于疫苗的描述中,不正確的是 A、滅活疫苗的基本原理是將經過處理的病原體注射進入人體內 B、大規模接種疫苗可以幫助達成“群體免疫“,阻斷病毒傳播 …

【VSCode】VSCode 使用

目錄 文章目錄 目錄插件配置設置代碼不顯示 git 提示 "xxx months ago | 1 author"設置打開項目不自動選擇 CMakeLists 插件 以下插件為 C 開發偏好設置。 C/CCMakeCMake ToolsGitLensRemote DevelopmentRemote Explorer 配置 設置代碼不顯示 git 提示 “xxx mon…

絕地求生:PGC 2023 賽事直播期間最高可獲:2000萬G-Coins,你還不來嗎?

今年PGC直播期間將有最高2000萬G-Coin掉落,究竟花落誰家咱們拭目以待 公告原文:Watch PGC 2023 Live And Earn G-Coins! 如何賺取高額G-Coin? Throughout the PGC 2023, an astounding 20,000,000 G-Coins will be up for grabs as part of …

一致性 Hash 算法 Hash 環發生偏移怎么解決

本篇是對文章《一文徹底讀懂一致性哈希算法》的重寫,圖文并茂,篇幅較長,歡迎閱讀完提供寶貴的建議,一起提升文章質量。如果感覺不錯不要忘記點贊、關注、轉發哦。原文鏈接: 《一文徹底讀懂一致性Hash 算法》 通過閱讀本…

【OpenCV實現圖像:可視化目標檢測框】

文章目錄 概要畫框函數代碼實現標簽美化角點美化透明效果小結 概要 目標檢測框的可視化在計算機視覺和機器學習領域中是一項重要的任務,有助于直觀地理解和評估目標檢測算法的性能。通過使用Python和相關的圖像處理庫,可以輕松實現目標檢測框的可視化。…

C++二分算法:最多可以參加的會議數目 II

本文涉及的基礎知識點 二分查找算法合集 本題其它解法 C二分向量算法:最多可以參加的會議數目 II 題目 給你一個 events 數組,其中 events[i] [startDayi, endDayi, valuei] ,表示第 i 個會議在 startDayi 天開始,第 endDay…

如何在Ubuntu 20.04.6 LTS系統上運行Selenium自動化測試

文章目錄 寫在前面一、 環境準備1.1 安裝python31.1.1 使用APT安裝Python31.1.2 使用PPA安裝較新版本的Python31.1.3 從源代碼編譯安裝Python31.2 安裝pip31.3 安裝jdk1.4 安裝運行所需瀏覽器1.4 使用Git拉取自動化測試代碼/復制自動化測試代碼到Ubuntu 20.04.6 LTS二、安裝pip…

Let’s xrOS 一款讓你優先體驗社區創作者的 visionOS App工具

Let’s xrOS Apple Vision Pro 發布預示著空間計算時代的到來,讓科技愛好者和開發者開始思考如何在新的交互、系統和硬件上打造獨特的三維應用。 自 WWDC 2023 的發布會后,社交媒體上涌現了許多精美的 visionOS App 的效果圖和演示視頻,然而…

Rola詳解國外住宅IP代理選擇的8個方法,穩定的海外IP哪個靠譜?

一、國外住宅IP代理是什么? 代理服務器充當您和互聯網之間的網關。它是一個中間服務器,將最終用戶與他們瀏覽的網站分開。如果您使用國外代理IP,互聯網流量將通過國外代理服務器流向您請求的地址。然后,請求通過同一個代理服務器…

常見樹種(貴州省):014槭樹、梧桐、鵝掌楸、檫木、梓木、油桐、泡桐、川楝、麻楝

摘要:本專欄樹種介紹圖片來源于PPBC中國植物圖像庫(下附網址),本文整理僅做交流學習使用,同時便于查找,如有侵權請聯系刪除。 圖片網址:PPBC中國植物圖像庫——最大的植物分類圖片庫 一、色木槭…

java--繼承快速入門

1.什么是繼承 java中提供了一個關鍵字extends,用這個關鍵字,可以讓一個類和另一個類建立其父子關系。 2.繼承的特點 子類能繼承父類的非私有成員(成員變量,成員方法)。 3.繼承后對象的創建 子類的對象是由子類、父類共同完成的。 4.繼承的…

基于IDEA+HTML+SpringBoot前后端分離電子商城

基于springboot的電子商城 項目介紹💁🏻 ?B2C 商家對客戶 ?C2B2C 客戶對商家對客戶 1.1.1 B2C 平臺運營方即商品的賣家 小米商城 ?商品 ?用戶 1.1.2 C2B2C 平臺運營方不賣商品(也可以賣) 賣家是平臺的用戶 買家也是平臺用戶 ?…

『C++成長記』C++入門—— 函數重載引用

🔥博客主頁:小王又困了 📚系列專欄:C 🌟人之為學,不日近則日退 ??感謝大家點贊👍收藏?評論?? 目錄 一、函數重載 📒1.1函數重載的概念 📒1.2函數重載的種類 …

基于51單片機音樂盒設計( proteus仿真+程序+原理圖+PCB+報告+講解視頻)

音樂盒 主要功能:仿真原理圖PCB圖程序設計:設計報告實物圖資料清單(提供資料清單所有文件):資料下載鏈接: 基于51單片機音樂盒仿真設計( proteus仿真程序原理圖PCB報告講解視頻) 仿真圖proteus …

Python實現交易策略評價指標-收益率

1.收益率的定義 收益率幾乎是所有投資者都會關注的一個指標,收益率的高低決定了投資策略的賺錢能力,常見關于收益率的指標如下: 持有期收益率 持有期收益率 期末投資權益 ? 期初投資權益 期初投資權益 持有期收益率 \frac {期末投資權益…

GeoTrust SSL數字安全證書介紹

一、GeoTrust OV證書的介紹 GeoTrust OV證書是由GeoTrust公司提供的SSL證書,它是一種支持OpenSSL的數字證書,具有更高的安全性和可信度。GeoTrust是全球領先的網絡安全解決方案提供商,為各類用戶提供SSL證書和信任管理服務。GeoTrust OV證書…

docker國內鏡像加速

創建或修改 /etc/docker/daemon.json 文件,修改為如下形式 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] } Docker中國區官方鏡像htt…

51單片機應用從零開始(八)·循環語句(for循環、while 語句、do‐while 語句)

51單片機應用從零開始(七)循環語句(if語句,swtich語句)-CSDN博客 目錄 1. 用for 語句控制蜂鳴器鳴笛次數 2. 用while 語句控制 LED 3. 用 do‐while 語句控制 P0 口 8 位 LED 流水點亮 1. 用for 語句控制蜂鳴器鳴笛…