三 注解的获取与使用

使用spring用得最爽的莫过于注解了,但是怎么获取注解的参数值可能我们并不是很关心,再读源码前还是需要知道注解的参数是怎么获取的.请自行了解五个元注解.

测试代码如下:

先建立一个注解类:

package com.xq.anno;

import org.springframework.stereotype.Indexed;

import java.lang.annotation.*;

@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Indexed
public @interface XqAnno {
	String value() default "";
	String bb() default "";
}

再建立一个类,写上注解:

package com.xq.anno;

@XqAnno(value = "aaa")
public class Annotest {

	@XqAnno(value = "method111",bb = "mbb")
	public void test(){
		System.out.println("hahaha");
	}
}

另起一个类去解析到注解值:

package com.xq.anno;


import com.sun.tools.javac.code.Attribute;

import java.lang.reflect.Method;

public class AcquireAnno {
	public static void main(String[] args) throws ClassNotFoundException {
		//首先通过反射获取类
		Class<?> c = Class.forName(Annotest.class.getName());
		//判断类上是否包含相应注解
		boolean b = c.isAnnotationPresent(XqAnno.class);
		if (b) {
			//获取类上的注解
			XqAnno annotation = c.getAnnotation(XqAnno.class);
			System.out.println("class is :"+annotation.value()+",,"+annotation.bb());
		}
		//拿到类上所有方法
		Method[] methods = c.getDeclaredMethods();
		for (Method method : methods) {
			//判断方法上是否包含相应注解
			boolean ok = method.isAnnotationPresent(XqAnno.class);
			if (ok) {
				XqAnno methodAnnotation = method.getAnnotation(XqAnno.class);
				System.out.println("method is :"+methodAnnotation.value()+",,"+methodAnnotation.bb());
			}

		}
	}
}

结果:

至于拿到了注解值,应该干什么事就全凭能力了.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值