private void handleMethodAnnotation()

in spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java [701:738]


	private void handleMethodAnnotation(final Object bean, String beanName, final Method method) {
		NacosConfigKeysListener keysAnnotation = AnnotationUtils.getAnnotation(method, NacosConfigKeysListener.class);
		if (keysAnnotation != null) {
			ReflectionUtils.makeAccessible(method);
			handleMethodNacosConfigKeysChangeListener(keysAnnotation, beanName, bean, method);
			return;
		}
		NacosConfigListener configAnnotation = AnnotationUtils.getAnnotation(method, NacosConfigListener.class);
		if (configAnnotation != null) {
			ReflectionUtils.makeAccessible(method);
			handleMethodNacosConfigListener(configAnnotation, beanName, bean, method);
			return;
		}

		if (!applicationContext.containsBeanDefinition(beanName)) {
			return;
		}
		BeanDefinition beanDefinition = ((GenericApplicationContext) applicationContext).getBeanDefinition(beanName);
		if (beanDefinition instanceof AnnotatedBeanDefinition) {
			MethodMetadata factoryMethodMetadata = (((AnnotatedBeanDefinition) beanDefinition).getFactoryMethodMetadata());
			if (factoryMethodMetadata != null) {

				MergedAnnotations annotations = factoryMethodMetadata.getAnnotations();
				if (annotations != null && annotations.isPresent(NacosConfig.class)) {
					MergedAnnotation<NacosConfig> nacosConfigMergedAnnotation = annotations.get(NacosConfig.class);
					Map<String, Object> stringObjectMap = nacosConfigMergedAnnotation.asMap();
					String dataId = (String) stringObjectMap.get("dataId");

					String group = (String) stringObjectMap.get("group");
					String key = (String) stringObjectMap.get("key");
					String defaultValue = (String) stringObjectMap.get("defaultValue");
					handleBeanNacosConfigAnnotation(dataId, group, key, beanName, bean, defaultValue);
				}
			}

		}

	}