反射包Reflections调用方法
1,获取加在类上的注解的相关属性
//反射工具包,指明扫描的路径
Reflections reflections = new Reflections("com.example.demo");//设置扫描的路径
//获取带RpcTest注解的类
Set<Class<?>> classSet = reflections.getTypesAnnotatedWith(RpcTest.class);
2,获取加在方法上的注解的相关属性
//获取RequestMappingh注解的value值以及声明类、方法名
Reflections reflections = new Reflections(new ConfigurationBuilder()
.setUrls(ClasspathHelper.forPackage("com.example.demo"))
.setScanners(new MethodAnnotationsScanner())
);
//获取被添加了@RequestMapping注解的方法的实例集合
Set<Method> methodSet = reflections.getMethodsAnnotatedWith(RequestMapping.class);
for (Method method : methodSet){
//可以获取到注解中的参数
RequestMapping mapping = method.getAnnotation(RequestMapping.class);
mapping.value();//获取注解中value的属性值
//获取声明了该方法的实例的字节码对象,通过反射就可以肆意妄为了
Class<?> declaringClass = method.getDeclaringClass();
method.getName();获取方法名
}
更多的方法可以参考官网:https://www.programcreek.com/java-api-examples/index.php?api=org.reflections.scanners.MethodAnnotationsScanner