国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

長沙免費(fèi)網(wǎng)站排名seo觀察網(wǎng)

長沙免費(fèi)網(wǎng)站排名,seo觀察網(wǎng),htmi如何做網(wǎng)站,網(wǎng)站建站和推廣服務(wù)公司什么是AOP AOP是面向切面,面向切面編程,是通過預(yù)編譯方式和運(yùn)行期動態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。對多個(gè)對象共同行為封裝成一個(gè)模塊叫切面,然后某個(gè)方法為切點(diǎn)。 通俗的講:就是在一些代碼中做重復(fù)操作的時(shí)候,我們?yōu)榱恕?article class="baidu_pl">

什么是AOP

?????????AOP是面向切面,面向切面編程,是通過預(yù)編譯方式和運(yùn)行期動態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。對多個(gè)對象共同行為封裝成一個(gè)模塊叫切面,然后某個(gè)方法為切點(diǎn)。

????????通俗的講:就是在一些代碼中做重復(fù)操作的時(shí)候,我們?yōu)榱藢?shí)現(xiàn)代碼的復(fù)用性,統(tǒng)一去處理這些工作,讓后讓我們得操作自然的嵌入(用自定義注解)到指定方法的指定位置。

????????利用AOP可以對業(yè)務(wù)邏輯 的各個(gè)部分進(jìn)行隔離,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高程序的可重用性,同時(shí)提高 了開發(fā)的效率。

如下圖所示: ????????把水平面抽象成一個(gè)切面對象,我們把日志代碼放到切面對象中,然后對這個(gè)切面對象去編程,本質(zhì)上還是面向?qū)ο缶幊?#xff0c;但是思想是面向切面編程。 通過aop可以對其進(jìn)行增強(qiáng),減少重復(fù)代碼,降低耦合?;诖韺?shí)現(xiàn)。

5個(gè)關(guān)鍵術(shù)語

1)橫切關(guān)注點(diǎn),從每個(gè)方法中抽取出來的同一類非核心業(yè)務(wù)

2)切面(Aspect),對橫切關(guān)注點(diǎn)進(jìn)行封裝的類,每個(gè)關(guān)注點(diǎn)體現(xiàn)為一個(gè)通知方法;通常使用 @Aspect 注解來定義切面。

3)通知(Advice),切面必須要完成的各個(gè)具體工作,比如我們的日志切面需要記錄接口調(diào)用前后的時(shí)長,就需要在調(diào)用接口前后記錄時(shí)間,再取差值。通知的方式有五種:

  • @Before:通知方法會在目標(biāo)方法調(diào)用之前執(zhí)行

  • @After:通知方法會在目標(biāo)方法調(diào)用后執(zhí)行

  • @AfterReturning:通知方法會在目標(biāo)方法返回后執(zhí)行

  • @AfterThrowing:通知方法會在目標(biāo)方法拋出異常后執(zhí)行

  • @Around:把整個(gè)目標(biāo)方法包裹起來,在被調(diào)用前和調(diào)用之后分別執(zhí)行通知方法

4)連接點(diǎn)(JoinPoint),通知應(yīng)用的時(shí)機(jī),比如接口方法被調(diào)用時(shí)就是日志切面的連接點(diǎn)。

5)切點(diǎn)(Pointcut),通知功能被應(yīng)用的范圍,比如本篇日志切面的應(yīng)用范圍是所有 controller 的接口。通常使用 @Pointcut 注解來定義切點(diǎn)表達(dá)式。

項(xiàng)目中使用過AOP嗎?AOP使用場景?

我的項(xiàng)目里面,日志操作用過。

用戶請求的時(shí)候,我們需要記錄下這些操作,例如需要記錄操作的用戶是誰、請求方式是什么、訪問地址、模塊名稱、登錄IP、操作時(shí)間等。就用到了這個(gè)AOP。具體如何操作,看下面如何使用AOP。

常用的使用場景

  1. 記錄操作日志

  2. 緩存處理

  3. Spring中內(nèi)置的事務(wù)

如何使用AOP?

例如日志操作:日志操作的核心是使用aop中的環(huán)繞通知+切點(diǎn)表達(dá)式(找到要記錄日志的方法),通過環(huán)繞通知的參數(shù)獲取請求方法的參數(shù),保存到數(shù)據(jù)庫。

日志用來記錄一下請求的方式(解析方法可以獲取)、URL、用戶名(解析Session可以獲取)、操作時(shí)間等。

????????1. 在項(xiàng)目中導(dǎo)入AOP,就是導(dǎo)入到xml文件中

????????2. 在切面類上加一個(gè)注解@Aspect,表明這是切面類。例如日志操作,那你的切面類里面就需要寫一些業(yè)務(wù):獲取操作時(shí)間、操作人的用戶名(可以用Session或token獲取)、訪問的URL、請求方式等,然后將這些記錄到數(shù)據(jù)庫。

????????3. 自定義一個(gè)注解,用來標(biāo)注你要做的公共代碼。 ?

????????????????有的代碼需要記錄日志,有的不需要,那就用這個(gè)注解來表示哪些需要做日志。

AOP核心:動態(tài)代理

????????將程序中的業(yè)務(wù)邏輯加到目標(biāo)類上,就會涉及到動態(tài)代理,AOP的核心技術(shù)是動態(tài)代理,體現(xiàn)動態(tài)代理核心(mybatis的dao層其實(shí)就是使用到了jdk動態(tài)代理,只有接口)需要通過CGlib生成實(shí)現(xiàn)類,作為模板類,給代理使用,Spring通過代理,引入模板類,生成代理類對象,invoke調(diào)用對象的Method方法,傳入目標(biāo)類對象和參數(shù),完成動態(tài)代理

Spring AOP和 AspectJ AOP有什么區(qū)別?

  • springAOP 是spring支持的面向切面AOP 編程。

  • AspectJ是一個(gè)面向切面的框架,它擴(kuò)展了Java語言。AspectJ定義了AOP語法,它有一個(gè)專門的編譯器用來生成遵守Java字節(jié)編碼規(guī)范的Class文件。

springAOP 不是一個(gè)完備的AOP 方案。

AspectJ是最首創(chuàng)的AOP技術(shù),用來提供全面的AOP方案。

Spring AOP屬于運(yùn)行時(shí)增強(qiáng)而Aspect是編譯時(shí)增強(qiáng)。Spring AOP 基于代理(Proxying),而AspectJ基于字節(jié)碼操作(Bytecode Manipulation)。 Spring AOP已經(jīng)集成了Aspectl, Aspectl應(yīng)該算的上是Java生態(tài)系統(tǒng)中最完整的 AOP框架了。Aspectl相比于Spring AOP功能更加強(qiáng)大,但是 Spring AOP相對來說更簡單, 如果我們的切面比較少,那么兩者性能差異不大。但是,當(dāng)切面太多的話,最好選擇Aspectl,它比Spring A0P.快很多。 同級調(diào)用方法不可切入

http://aloenet.com.cn/news/43271.html

相關(guān)文章:

  • 做o2o平臺網(wǎng)站需要多少錢chrome 谷歌瀏覽器
  • 個(gè)性個(gè)人網(wǎng)站模板建網(wǎng)站建設(shè)
  • 化妝品可做的團(tuán)購網(wǎng)站有哪些seo排名優(yōu)化教程
  • php網(wǎng)站開發(fā)什么外貿(mào)推廣代理
  • 潤東電子科技 網(wǎng)站建設(shè)全網(wǎng)營銷推廣方案外包
  • 濟(jì)南網(wǎng)站APP如何做好百度推廣
  • 二手房網(wǎng)站怎么做最常見企業(yè)網(wǎng)站公司有哪些
  • 云主機(jī)做網(wǎng)站域名打不開線上營銷活動有哪些
  • 外貿(mào)公司的網(wǎng)站建設(shè)杭州seo專員
  • 我要建個(gè)網(wǎng)站做微商如何引流推廣怎么找客源
  • wordpress Ins同步百度seo關(guān)鍵詞排名 s
  • 有找獵聘網(wǎng)站做簡歷優(yōu)化的南寧關(guān)鍵詞排名公司
  • 龍巖網(wǎng)站設(shè)計(jì)培訓(xùn)軟文營銷的步驟
  • 金閶公司網(wǎng)站建設(shè)電話優(yōu)化排名推廣關(guān)鍵詞
  • 拓客軟件網(wǎng)站百度seo關(guān)鍵詞優(yōu)化
  • 阿里云服務(wù)器上的網(wǎng)站怎么做修改四川省人民政府官網(wǎng)
  • 北京公司網(wǎng)站建設(shè)價(jià)格seo營銷排名
  • 手機(jī)網(wǎng)站底部電話軟文營銷的寫作技巧有哪些
  • jq特效網(wǎng)站模板全網(wǎng)最好的推廣平臺
  • 怎么做自已的網(wǎng)站太原seo網(wǎng)站排名
  • asp做網(wǎng)站的優(yōu)勢是什么新品牌推廣方案
  • 鄭州網(wǎng)站建設(shè)特色得物app的網(wǎng)絡(luò)營銷分析論文
  • 桂林市內(nèi)旅游必去景點(diǎn)整站seo外包
  • 深圳做網(wǎng)站信科品牌推廣內(nèi)容
  • ppt模板免費(fèi)下載網(wǎng)站不需要登錄torrentkitty磁力官網(wǎng)
  • 快速做網(wǎng)站的軟件免費(fèi)網(wǎng)絡(luò)空間搜索引擎
  • 360客服做網(wǎng)站電話網(wǎng)絡(luò)工程師培訓(xùn)班要多少錢
  • 在線做章網(wǎng)站aso蘋果關(guān)鍵詞優(yōu)化
  • 哪家建設(shè)網(wǎng)站長春網(wǎng)站建設(shè)平臺
  • 如何自己做攝影網(wǎng)站萬能搜索引擎網(wǎng)站