Java中修改注解属性值

	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);
该处是修改类上的注解,至于修改方法,属性上的注解同理;

猜你喜欢

转载自blog.csdn.net/a276202031/article/details/80013732