diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/src/main/java/com/alibaba/cloud/examples/Application.java b/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/src/main/java/com/alibaba/cloud/examples/Application.java
index 74433245..a9cb91eb 100644
--- a/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/src/main/java/com/alibaba/cloud/examples/Application.java
+++ b/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/src/main/java/com/alibaba/cloud/examples/Application.java
@@ -88,10 +88,14 @@ class SampleController {
String userName;
@Value("${user.age:25}")
- int age;
+ Integer age;
+
+ @Autowired
+ private NacosConfigManager nacosConfigManager;
@RequestMapping("/user")
public String simple() {
- return "Hello Nacos Config!" + "Hello " + userName + " " + age + "!";
+ return "Hello Nacos Config!" + "Hello " + userName + " " + age + "!"
+ + nacosConfigManager.getConfigService();
}
}
\ No newline at end of file
diff --git a/spring-cloud-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigManager.java b/spring-cloud-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigManager.java
index 4cf39980..91f4759d 100644
--- a/spring-cloud-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigManager.java
+++ b/spring-cloud-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/NacosConfigManager.java
@@ -19,36 +19,36 @@ package com.alibaba.cloud.nacos;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Objects;
/**
* @author liaochuntao
*/
-public class NacosConfigManager implements ApplicationContextAware {
+public class NacosConfigManager {
+
private static final Logger log = LoggerFactory.getLogger(NacosConfigManager.class);
- private ConfigService configService;
+
+ private static ConfigService service = null;
+
+ @Autowired
+ private NacosConfigProperties properties;
public ConfigService getConfigService() {
- return configService;
+ if (Objects.isNull(service)) {
+ try {
+ service = NacosFactory
+ .createConfigService(properties.getConfigServiceProperties());
+ properties.initConfigService(service);
+ }
+ catch (NacosException e) {
+ log.error("create config service error!properties={},e=,", properties, e);
+ }
+ }
+ return service;
}
- @Override
- public void setApplicationContext(ApplicationContext applicationContext)
- throws BeansException {
- NacosConfigProperties properties = applicationContext
- .getBean(NacosConfigProperties.class);
- try {
- configService = NacosFactory
- .createConfigService(properties.getConfigServiceProperties());
- properties.initConfigService(configService);
- }
- catch (NacosException e) {
- log.error("create config service error!properties={},e=,", properties, e);
- }
- }
}
diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosNamingManager.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosNamingManager.java
index 9bf40a45..46968b52 100644
--- a/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosNamingManager.java
+++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosNamingManager.java
@@ -18,32 +18,37 @@ package com.alibaba.cloud.nacos;
import com.alibaba.nacos.api.naming.NamingMaintainService;
import com.alibaba.nacos.api.naming.NamingService;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Objects;
/**
* @author liaochuntao
*/
-public class NacosNamingManager implements ApplicationContextAware {
+public class NacosNamingManager {
- private NamingService namingService;
- private NamingMaintainService namingMaintainService;
+ private static final Logger log = LoggerFactory.getLogger(NacosNamingManager.class);
+
+ private static NamingService namingService = null;
+ private static NamingMaintainService namingMaintainService = null;
+
+ @Autowired
+ private NacosDiscoveryProperties discoveryProperties;
public NamingService getNamingService() {
+ if (Objects.isNull(namingService)) {
+ namingService = discoveryProperties.namingServiceInstance();
+ }
return namingService;
}
public NamingMaintainService getNamingMaintainService() {
+ if (Objects.isNull(namingMaintainService)) {
+ namingMaintainService = discoveryProperties.namingMaintainServiceInstance();
+ }
return namingMaintainService;
}
- @Override
- public void setApplicationContext(ApplicationContext applicationContext)
- throws BeansException {
- NacosDiscoveryProperties properties = applicationContext
- .getBean(NacosDiscoveryProperties.class);
- namingService = properties.namingServiceInstance();
- namingMaintainService = properties.namingMaintainServiceInstance();
- }
}