首頁>技術>

使用註解配置AOP

使用註解基於AspectJ

首先Spring怎麼使用註解?Sprinng不會自動尋找註解,必須告訴哪個類包下面有註解。

註解,就是代替配置檔案。

如同--配置了demo類,配置了通知類,切點,切點和通知之間的關係

applicationcontext.xml配置檔案

Spring他用到的名稱空間context

官方配置文件

<context:component-scan base-package=""></context:component-scan>

進入翻譯頁面

譯文:component-scan

掃描將自動註冊為Spring bean的帶註釋元件的類路徑。透過預設情況下,spring提供的@Component, @Repository, @Service, @Controller,將檢測到@RestController、@ControllerAdvice和@Configuration構造型。注意:這個標籤暗示了‘註釋-配置’標籤的效果,啟用@Required, @Autowired,@PostConstruct, @PreDestroy, @Resource, @PersistenceContext和@PersistenceUnit元件類中的註釋,這通常是自動檢測元件所需要的(沒有外部配置)。

指明註解在那個包下,多個包那貓就用逗號隔開!demo使用註解測試Spring是否檢測到註解物件結果:(被Spring管理的物件)

[demo,

org.springframework.context.annotation.internalConfigurationAnnotationProcessor,

org.springframework.context.annotation.internalAutowiredAnnotationProcessor,

org.springframework.context.annotation.internalRequiredAnnotationProcessor,

org.springframework.context.annotation.internalCommonAnnotationProcessor,

org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,

org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationP

rocessor]

demo1張三 :12

demo1張三(輸入一個引數

發現:Demo首字母被小寫,這是預設情況下類名首字母小寫管理物件,也可以自定義:結果:

後面的報錯是有因為test程式碼獲取的是Spring不存在的demo物件,Spring管理的是demo$123

結論:透過第一個註解省去了手動配置獲取切點程式

@Component 相當於</bean>

如果沒有引數。把類名首字母小寫,相當於</bean id=""/>

@Component(“自定義名”)

advice的配置檔案Spring指明瞭所在包註解同意昂是component

上面註解解放了配置

後面該配置aop

配置切點:官方文件:

必須定義切點

@Pointcut("execution(* transfer(..))")// the pointcut expressionprivate void anyOldTransfer() {}// the pointcut signature
註解配置前置通知:並註明該類是通知切面類:相當於<aop:aspect ref="myadvice">測試:text並沒有出現前置(配置還缺少)

<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>

譯文:屬性:proxy-target-class要建立基於類(CGLIB)的代理嗎?預設情況下,基於標準Java介面建立代理。資料型別:布林型預設值:false列舉值:——真正的——錯誤

true:使用cglib動態代理

false:使用jdk動態代理

-->

註解一般基於cjlib

結果報錯:

咋又報錯了呢?煩啊?說是繫結不了切點呃呃呃呃??

demo這個類Spring沒有找到,把自定義改了默

結果,BUG還是有

去掉輸入值

結果:BUG還在

重新寫註解

結果:還是這個BUG-------真要氣瘋

那咋個辦,熬夜?????????????

上網查沒結果,步驟也都說是這樣沒錯啊

反正搞了那麼久就BUG突然消失,真是無語了,可能電腦慢Spring程式碼可能缺少沒下載全

真雞兒蛋疼??不知道什麼原因BUG悄悄的幹活。。。。。

沒BUG的時候的樣子:結果真是無語

那麼什麼是cjlib註解以後寫

同理:後置,環繞,異常結果:

一般有環繞就不需要寫前置後置

總結:

1.在Spring配置檔案中設定註解在哪些包中

2.在demo類中新增@componet, 在方法上新增@pointcut("")定義切點

3.在通知類中配置

@component:表示類唄Spring管理

@Aspect相當於<aop:aspect>切點通知方法在當前類中

18
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何暴力破解wifi密碼