[alibaba/nacos]NacosNamingService注入时机

2025-11-10 501 views
2

请问springclould整合nacos时NacosNamingService是如何注入容器的

回答

3

Ref Spring-Cloud-Alibaba:

@Configuration(proxyBeanMethods = false)
@ConditionalOnDiscoveryEnabled
@ConditionalOnNacosDiscoveryEnabled
public class NacosServiceAutoConfiguration {

    @Bean
    public NacosServiceManager nacosServiceManager() {
        return new NacosServiceManager();
    }

}

public class NacosServiceManager {

    private volatile NamingService namingService;

    private volatile NamingMaintainService namingMaintainService;
         // ...
}
3

NacosServiceManager 这个组件注入的时候似乎并不会注入所依赖的NamingService,是在其他环节注入的吗?

5

https://github.com/alibaba/spring-cloud-alibaba/blob/78e789bc35fa735db23c7a44d05b06491f984689/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosServiceManager.java

4

这里好像是创建对象,创建的对象并没有交给容器吧

0

7

容器

是的。SCA中通过NacosServiceManager使用NamingService, 而不是直接使用。

5

。。。 看下源码,用的是懒加载,不会一开始就创建NamingSesrvice

2

可是通过容器对象 我又能获取到NamingService的具体实现NacosNamingService

7

懒加载是体现在具体哪里啊

8

这个问题应该移交给Spring Cloud阿里巴巴社区。