2
请问springclould整合nacos时NacosNamingService是如何注入容器的
请问springclould整合nacos时NacosNamingService是如何注入容器的
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;
// ...
}
NacosServiceManager 这个组件注入的时候似乎并不会注入所依赖的NamingService,是在其他环节注入的吗?
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
这里好像是创建对象,创建的对象并没有交给容器吧
容器
是的。SCA中通过NacosServiceManager使用NamingService, 而不是直接使用。
。。。 看下源码,用的是懒加载,不会一开始就创建NamingSesrvice
可是通过容器对象 我又能获取到NamingService的具体实现NacosNamingService
懒加载是体现在具体哪里啊
这个问题应该移交给Spring Cloud阿里巴巴社区。