注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置等功能
新建一个(注解)类,然后更改内容为:
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://blog.zgcwkj.cn/archives/111.html
转载声明:请注明本文章的标题及内容的出处和声明,谢谢
评论已关闭