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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|

服務(wù)器之家 - 編程語言 - JAVA教程 - 圖解JAVA中Spring Aop作用

圖解JAVA中Spring Aop作用

2020-09-15 14:21再寫三行 JAVA教程

這篇文章主要介紹了Java的Spring框架下的AOP的作用,需要的朋友可以參考

假如沒有aop,在做日志處理的時候,我們會在每個方法中添加日志處理,比如

圖解JAVA中Spring Aop作用

但大多數(shù)的日子處理代碼是相同的,為了實現(xiàn)代碼復(fù)用,我們可能把日志處理抽離成一個新的方法。但是這樣我們?nèi)匀槐仨毷謩硬迦脒@些方法。

圖解JAVA中Spring Aop作用

但這樣兩個方法就是強(qiáng)耦合的,假如此時我們不需要這個功能了,或者想換成其他功能,那么就必須一個個修改。

通過動態(tài)代理,可以在指定位置執(zhí)行對應(yīng)流程。這樣就可以將一些橫向的功能抽離出來形成一個獨立的模塊,然后在指定位置

插入這些功能。這樣的思想,被稱為面向切面編程,亦即aop。

圖解JAVA中Spring Aop作用

為了在指定位置執(zhí)行這些橫向的功能,需要知道指定的是什么地方

圖解JAVA中Spring Aop作用

例如上圖,方法級別的aop實現(xiàn),在一個程序執(zhí)行鏈條中,把method2稱為切點,也就是說在method2執(zhí)行時會執(zhí)行橫切的功能,那么是在method2之前還是之后呢,又是執(zhí)行什么呢?這些都由advice(通知)來指定。advice有5種類型,分別是

通知類型 簡介

before(前置通知) 目標(biāo)方法調(diào)用之前執(zhí)行

after(后置通知) 目標(biāo)方法調(diào)用之后執(zhí)行

after-returning(返回通知) 目標(biāo)方法執(zhí)行成功后執(zhí)行

after-throwing(異常通知) 目標(biāo)方法拋出異常后執(zhí)行

around(環(huán)繞通知) 相當(dāng)于合并了前置和后置

把切點和通知合在一起就是切面了,一個切面指定了在何時何地執(zhí)行何種方法。在spring aop中如此定義這個切面:

?
1
2
3
4
5
6
7
8
9
10
@aspect
@component
public class useraspect {
 
  @before("execution(* com.aop.service.impl.userserviceimpl.login(..))")
  public void loginlog(){
    system.out.println("user login");
  }
 
}

使用注解@aspect將某個特定的類聲明為切面,這樣,該類下的方法就可以聲明為橫向的功能點后插入到指定位置。使用execution表達(dá)式聲明在這個切點,格式如下

圖解JAVA中Spring Aop作用

第一個位置指定了方法的返回值,*號代表任意類型的返回值,然后是所在的類和方法名,*號同樣代表任意,就是該類中任意的方法,在上一個例子中方法名是login,則是指定了該類中的login方法。然后最后一個參數(shù)是方法入?yún)ⅲ驗閖ava中支持重載,所以這個參數(shù)可以幫助你更精確的進(jìn)行定位。兩點表示任意參數(shù)類型。這樣,execution表達(dá)式告訴了程序該在何地執(zhí)行通知。而被諸如@before注解修飾的方法就是通知的內(nèi)容,也就是做什么。

至此,我們就可以使用spring aop,但是還有兩點需要得到注意

將切面類聲明為一個bean

切點指定的方法所在的類也同樣需由spring注入才能生效

希望本篇文章對您有所幫助

原文鏈接:http://blog.csdn.net/baidu_33403616/article/details/70304051

延伸 · 閱讀

精彩推薦
  • JAVA教程java多線程編程之從線程返回數(shù)據(jù)的兩種方法

    java多線程編程之從線程返回數(shù)據(jù)的兩種方法

    從線程中返回數(shù)據(jù)和向線程傳遞數(shù)據(jù)類似。也可以通過類成員以及回調(diào)函數(shù)來返回數(shù)據(jù)。但類成員在返回數(shù)據(jù)和傳遞數(shù)據(jù)時有一些區(qū)別,下面讓我們來看看...

    java教程網(wǎng)2982019-11-04
  • JAVA教程JAVA實現(xiàn)雙邊決策的示例

    JAVA實現(xiàn)雙邊決策的示例

    本篇文章主要介紹了JAVA實現(xiàn)雙邊決策,介紹了雙邊決策的實現(xiàn)算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。...

    xiaojimanman1322020-06-27
  • JAVA教程Java數(shù)據(jù)結(jié)構(gòu)之圖(動力節(jié)點Java學(xué)院整理)

    Java數(shù)據(jù)結(jié)構(gòu)之圖(動力節(jié)點Java學(xué)院整理)

    本文章主要講解學(xué)習(xí)如何使用JAVA語言以鄰接表的方式實現(xiàn)了數(shù)據(jù)結(jié)構(gòu)---圖(Graph)。對java數(shù)據(jù)結(jié)構(gòu)之圖相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧...

    動力節(jié)點2892020-09-11
  • JAVA教程java 基礎(chǔ)知識之IO總結(jié)

    java 基礎(chǔ)知識之IO總結(jié)

    這篇文章主要介紹了java 基礎(chǔ)知識之IO總結(jié)的相關(guān)資料,Java中的I/O分為兩種類型,一種是順序讀取,一種是隨機(jī)讀取,需要的朋友可以參考下...

    Java之家4332020-08-25
  • JAVA教程java中實體類和JSON對象之間相互轉(zhuǎn)化

    java中實體類和JSON對象之間相互轉(zhuǎn)化

    Java中關(guān)于Json格式轉(zhuǎn)化Object,Map,Collection類型和String類型之間的轉(zhuǎn)化在我們實際項目中應(yīng)用的很是普遍和廣泛。最近工作的過程中也是經(jīng)常有,因此,自己封裝...

    hebedich4652019-12-17
  • JAVA教程在java中使用dom4j解析xml(示例代碼)

    在java中使用dom4j解析xml(示例代碼)

    鑒于目前的趨勢,我們這里來講講Dom4j的基本用法,不涉及遞歸等復(fù)雜操作。Dom4j的用法很多,官網(wǎng)上的示例有那么點兒晦澀,這里就不寫了 ...

    java代碼網(wǎng)4692019-10-17
  • JAVA教程Java 面試題和答案 - (下)

    Java 面試題和答案 - (下)

    本文主要介紹Java 面試題,這里整理了Java面試題關(guān)于JDBC,線程異常處理,Servlet,JSP的知識的整理,幫助大家理解知識點,便于面試,有興趣的小伙伴可以參...

    ImportNew3742020-06-10
  • JAVA教程教你使用java實現(xiàn)去除各種空格

    教你使用java實現(xiàn)去除各種空格

    本文給大家匯總介紹了5種java中去除空格的方法,分別是String.trim()、str.replace(" ", "");、replaceAll(" +","");以及自定義的remove函數(shù),非常的簡單實用,需要的小...

    hebedich2512019-12-13
主站蜘蛛池模板: 亚洲高清在线 | 狠狠久 | 午夜精品久久 | 免费av一区二区三区 | 久久精品电影 | 在线一区视频 | 老黄网站在线观看 | 99久久久无码国产精品 | 欧美黄色网视频 | 久久久久久久久久久久久久免费看 | 午夜免费电影 | 蜜桃视频一区二区 | 综合99 | 国产日韩久久 | 日韩欧美在线观看 | 午夜视频在线播放 | 欧美日韩精品久久久免费观看 | 成人动慢 | 日韩毛片免费看 | 综合婷婷 | 高清视频一区二区三区 | 久久精品日产第一区二区三区 | 日本高清视频在线 | 日日骚网 | 亚洲国产日韩欧美在线 | 一区二区三区免费 | 国产黄色小视频 | 欧美日韩电影一区二区 | 日韩视频在线一区二区 | 超碰首页 | 久久久区 | 我要看日本黄色小视频 | 免费黄色电影在线观看 | 精品欧美一区二区三区久久久 | 在线观看av国产一区二区 | 欧美婷婷| 午夜精品在线观看 | 国产精品久久久久久久久久久天堂 | 日本亚洲欧美 | 精品亚洲一区二区三区四区五区 | 欧美a在线 |