spring aop切面入門


 

 

Java 注解

 

 

第一個表示覆蓋了父類的方法

第二個表示方法已經過期(但是還是可以使用,會出現警告)

第三表示使用過期方法忽略警告

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aop

 

需求 如某些方法需要管理員權限才能運行。

  1. 在只能管理員運行的方法里面進行硬編碼判斷當前用戶是不是管理員(侵入式高)
  2. 使用aop進行切面攔截特定的方法(侵入式低)

 

定義切面  在定義adminOnly注解的方法之前進行攔截然后運行方法之前@before插入代碼

 

 

package com.Springboot.myBoot.zujie;

 

import java.lang.annotation.Documented;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

 

import javax.lang.model.element.Element;

import javax.persistence.Inheritance;

 

import org.hibernate.validator.internal.xml.ElementType;

import org.mockito.Incubating;

 

 

@Target({java.lang.annotation.ElementType.METHOD})

@Retention(RetentionPolicy.RUNTIME)

@Inheritance

@Documented

public @interface Desciption {

String value();  //可以不加

 

}

 

 

 

 

定義注解

 

package com.Springboot.myBoot.zujie;

 

import org.aspectj.lang.annotation.After;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.aspectj.lang.annotation.Pointcut;

import org.springframework.stereotype.Component;

 

 

@Aspect

@Component

public class qiemian {

/*@Component  @component (把普通pojo實例化到spring容器中,相當於配置文件中的<bean id="" class=""/>*/

 

@Pointcut("@annotation(Desciption)")

public void zdy(){

 

}

 

@Before("zdy()")

public void Front(){

System.out.println("我在特定的方法之前運行");

}

 

@After("zdy()")

public void behind(){

System.out.println("我在特定的方法之前運行");

}

}

 

 

@RequestMapping("/qiemian")

@Desciption("zdy")

public String zdy(){

     System.out.println("我是一個切面方法  我加了自定義注解");

     return "success";

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一個參數 long類型

 

 

多個參數 long類型開頭

 

 

兩個參數 long類型開頭和String

 

 

 

 

類級別的需要將注解的范圍修改。Type

 

 

 

問號部分可以省略

 

 

 

 

        

 

獲取參數

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM