RibbonClient client = ConsumerApplication.class.getAnnotation(RibbonClient.class);
Class<?>[] configuration = client.configuration();
// for (Class<?> class1 : configuration) {
// System.out.println("ConsumerApplication类上的注解有--->"+class1.getName());
//
// }
// 获取InvocationHandler
InvocationHandler h = Proxy.getInvocationHandler(client);
// 获取 AnnotationInvocationHandler 的 memberValues 字段
Field hField = h.getClass().getDeclaredField("memberValues");
// 打开权限
hField.setAccessible(true);
@SuppressWarnings("rawtypes")
Map memberValues = (Map) hField.get(h);
// 修改 name,configuration 属性值
memberValues.put("name", "client");
Class<?>[] configuration2 = { TestConfigurationInsideScanPackage2.class };
memberValues.put("configuration", configuration2);
该处是修改类上的注解,至于修改方法,属性上的注解同理;
Java中修改注解属性值
最新推荐文章于 2024-06-29 03:39:30 发布