注解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置等功能
新建一個(注解)類,然後更改內容為:
package com.zgcwkj;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
// Retention注解決定注解的生命周期
@Retention(RetentionPolicy.RUNTIME)
// Target注解決定注解可以加在哪些成分上
@Target({ ElementType.METHOD, ElementType.TYPE })
// 對不應再使用的方法進行注釋,與正在聲明為過時的方法放在同一行
@Documented
public @interface Authorization {
public String str() default "";
}
使用方法 一(全部通用):
package com.zgcwkj;
import com.zgcwkj.config.warrant.Authorization;
import java.lang.reflect.Method;
@Authorization(str = "注釋信息")
public class Test {
public static void main(String[] args) throws Exception {
// 如果類名上有注解修飾,則為true
if (Test.class.isAnnotationPresent(Authorization.class)) {
System.out.println("類");
// 獲取方法注解上的信息
Authorization authorization = Test.class.getAnnotation(Authorization.class);
String str = authorization.str();
System.out.println(str);
}
Method method = Test.class.getMethod("toTest");
// 如果類名上有注解修飾,則為true
if (method.isAnnotationPresent(Authorization.class)) {
System.out.println("方法");
// 獲取方法注解上的信息
Authorization authorization = method.getAnnotation(Authorization.class);
String str = authorization.str();
System.out.println(str);
}
}
@Authorization(str = "注釋信息方法")
public void toTest() {
System.out.println("hello world");
}
}
使用方法 二(SpringAOP 中可用):
package com.zgcwkj;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class AOPAuthorization {
@Around(value = "@annotation(authorization)")
public Object around(ProceedingJoinPoint pjp, Authorization authorization) throws Throwable {
// 注解信息
String str = authorization.str();
Object result = pjp.proceed();
return result;
}
}
相關類似推薦:C# 特性類使用和說明
版權屬於:zgcwkj
本文鏈接:https://www.zgcwkj.com/archives/111.html
轉載聲明:請注明本文章的標題及內容的出處和聲明,謝謝
評論已關閉