注解類使用和說明

@zgcwkj  2019年05月28日

分類:

代碼 其它 

注解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置等功能

新建一個(注解)類,然後更改內容為:

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# 特性類使用和說明


評論已關閉

Top