mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -20,6 +20,7 @@ import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
@@ -28,7 +29,6 @@ import org.springframework.cloud.alibaba.nacos.registry.NacosAutoServiceRegistra
|
||||
import org.springframework.cloud.alibaba.nacos.registry.NacosRegistration;
|
||||
import org.springframework.cloud.alibaba.nacos.registry.NacosServiceRegistry;
|
||||
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration;
|
||||
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
|
||||
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -42,48 +42,59 @@ import org.springframework.context.annotation.Configuration;
|
||||
@EnableConfigurationProperties
|
||||
@ConditionalOnNacosDiscoveryEnabled
|
||||
@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true)
|
||||
@AutoConfigureBefore({AutoServiceRegistrationAutoConfiguration.class,
|
||||
NacosDiscoveryClientAutoConfiguration.class})
|
||||
@AutoConfigureAfter(AutoServiceRegistrationConfiguration.class)
|
||||
@AutoConfigureBefore(NacosDiscoveryClientAutoConfiguration.class)
|
||||
@AutoConfigureAfter(AutoServiceRegistrationAutoConfiguration.class)
|
||||
public class NacosDiscoveryAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
public NacosServiceRegistry nacosServiceRegistry(NacosDiscoveryProperties nacosDiscoveryProperties) {
|
||||
return new NacosServiceRegistry(nacosDiscoveryProperties);
|
||||
}
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public NacosDiscoveryProperties nacosProperties() {
|
||||
return new NacosDiscoveryProperties();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
|
||||
public NacosRegistration nacosRegistration(
|
||||
NacosDiscoveryProperties nacosDiscoveryProperties,
|
||||
ApplicationContext context) {
|
||||
return new NacosRegistration(nacosDiscoveryProperties, context);
|
||||
}
|
||||
@Bean
|
||||
public NacosServiceRegistry nacosServiceRegistry(
|
||||
NacosDiscoveryProperties nacosDiscoveryProperties) {
|
||||
return new NacosServiceRegistry(nacosDiscoveryProperties);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
|
||||
public NacosAutoServiceRegistration nacosAutoServiceRegistration(
|
||||
NacosServiceRegistry registry,
|
||||
AutoServiceRegistrationProperties autoServiceRegistrationProperties,
|
||||
NacosRegistration registration) {
|
||||
return new NacosAutoServiceRegistration(registry,
|
||||
autoServiceRegistrationProperties, registration);
|
||||
}
|
||||
@Bean
|
||||
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
|
||||
public NacosRegistration nacosRegistration(
|
||||
NacosDiscoveryProperties nacosDiscoveryProperties,
|
||||
ApplicationContext context) {
|
||||
return new NacosRegistration(nacosDiscoveryProperties, context);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(NacosAutoServiceRegistration.class) // NacosAutoServiceRegistration should be present
|
||||
@ConditionalOnNotWebApplication // Not Web Application
|
||||
public ApplicationRunner applicationRunner(NacosAutoServiceRegistration nacosAutoServiceRegistration) {
|
||||
return args -> {
|
||||
// WebServerInitializedEvent should not be multicast in Non-Web environment.
|
||||
// Whatever, NacosAutoServiceRegistration must be checked it's running or not.
|
||||
if (!nacosAutoServiceRegistration.isRunning()) { // If it's not running, let it start.
|
||||
// FIXME: Please make sure "spring.cloud.nacos.discovery.port" must be configured on an available port,
|
||||
// or the startup or Nacos health check will be failed.
|
||||
nacosAutoServiceRegistration.start();
|
||||
// NacosAutoServiceRegistration will be stopped after its destroy() method is invoked.
|
||||
// @PreDestroy destroy() -> stop()
|
||||
}
|
||||
};
|
||||
}
|
||||
@Bean
|
||||
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
|
||||
public NacosAutoServiceRegistration nacosAutoServiceRegistration(
|
||||
NacosServiceRegistry registry,
|
||||
AutoServiceRegistrationProperties autoServiceRegistrationProperties,
|
||||
NacosRegistration registration) {
|
||||
return new NacosAutoServiceRegistration(registry,
|
||||
autoServiceRegistrationProperties, registration);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(NacosAutoServiceRegistration.class) // NacosAutoServiceRegistration
|
||||
// should be present
|
||||
@ConditionalOnNotWebApplication // Not Web Application
|
||||
public ApplicationRunner applicationRunner(
|
||||
NacosAutoServiceRegistration nacosAutoServiceRegistration) {
|
||||
return args -> {
|
||||
// WebServerInitializedEvent should not be multicast in Non-Web environment.
|
||||
// Whatever, NacosAutoServiceRegistration must be checked it's running or not.
|
||||
if (!nacosAutoServiceRegistration.isRunning()) { // If it's not running, let
|
||||
// it start.
|
||||
// FIXME: Please make sure "spring.cloud.nacos.discovery.port" must be
|
||||
// configured on an available port,
|
||||
// or the startup or Nacos health check will be failed.
|
||||
nacosAutoServiceRegistration.start();
|
||||
// NacosAutoServiceRegistration will be stopped after its destroy() method
|
||||
// is invoked.
|
||||
// @PreDestroy destroy() -> stop()
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
@@ -154,6 +154,9 @@ public class NacosDiscoveryProperties {
|
||||
}
|
||||
|
||||
serverAddr = Objects.toString(serverAddr, "");
|
||||
if(serverAddr.lastIndexOf("/") != -1) {
|
||||
serverAddr.substring(0,serverAddr.length()-1);
|
||||
}
|
||||
endpoint = Objects.toString(endpoint, "");
|
||||
namespace = Objects.toString(namespace, "");
|
||||
logName = Objects.toString(logName, "");
|
||||
|
@@ -36,7 +36,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
@ConditionalOnNacosDiscoveryEnabled
|
||||
@EnableConfigurationProperties
|
||||
@AutoConfigureBefore({ SimpleDiscoveryClientAutoConfiguration.class,
|
||||
CommonsClientAutoConfiguration.class })
|
||||
CommonsClientAutoConfiguration.class })
|
||||
public class NacosDiscoveryClientAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@@ -45,16 +45,9 @@ public class NacosDiscoveryClientAutoConfiguration {
|
||||
return new NacosDiscoveryClient(discoveryProperties);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public NacosDiscoveryProperties nacosProperties() {
|
||||
return new NacosDiscoveryProperties();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public NacosWatch nacosWatch(NacosDiscoveryProperties nacosDiscoveryProperties) {
|
||||
return new NacosWatch(nacosDiscoveryProperties);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user