Java 注解

第一個表示覆蓋了父類的方法
第二個表示方法已經過期(但是還是可以使用,會出現警告)
第三表示使用過期方法忽略警告










Aop
需求 如某些方法需要管理員權限才能運行。
- 在只能管理員運行的方法里面進行硬編碼判斷當前用戶是不是管理員(侵入式高)
- 使用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

問號部分可以省略


獲取參數

