当前位置: 首页>后端>正文

Nacos Spring集成原理

入口

通过查看官方的文档,注解驱动的使用方式如下

@Configuration
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class NacosConfiguration {

}

所以我们看看注解EnableNacosConfig的源码,其中的关键点为@Import(NacosConfigBeanDefinitionRegistrar.class)
这里涉及spring的import注解,它的作用简单概括为:

  1. 声明一个bean
  2. 导入@Configuration注解的配置类
  3. 导入ImportSelector的实现类
  4. 导入ImportBeanDefinitionRegistrar的实现类

查看NacosConfigBeanDefinitionRegistrar源码,它实现了接口ImportBeanDefinitionRegistrar。它主要是注册一些简单 bean 和 post processor 的 bean。下面就说说其中一些重要的

NacosPropertySourcePostProcessor

这个类的主要作用简单的说就是使用ConfigService 从服务端获取配置,解析生成NacosPropertySource(PropertySource的子类),追加到Spring的PropertySources中。
那么nacos服务端的配置是如何注入@NavosValue注解的属性中的呢?那就涉及下面一个类

NacosValueAnnotationBeanPostProcessor

这个类简单的说,把bean中被@NavosValue注解的属性或方法设置值,值来自于调用doGetInjectedBean方法返回的值。
我们看到这个类继承了AnnotationInjectedBeanPostProcessor,它的功能就是对自定义注解的属性注入一个值,至于值是什么,为它的子类的doGetInjectedBean方法返回的值。


https://www.xamrdz.com/backend/34s1944765.html

相关文章: