diff --git a/demo-nacos/pom.xml b/demo-nacos/pom.xml new file mode 100644 index 0000000..4711ffa --- /dev/null +++ b/demo-nacos/pom.xml @@ -0,0 +1,57 @@ + + + + spring-boot-demo + com.xkcoding + 1.0.0-SNAPSHOT + + 4.0.0 + + demo-nacos + + + + + com.alibaba.boot + nacos-discovery-spring-boot-starter + ${nacos.version} + + + + org.springframework.boot + spring-boot-starter-web + + + + com.alibaba.boot + nacos-config-spring-boot-starter + ${nacos.version} + + + + com.alibaba.boot + nacos-config-spring-boot-actuator + ${nacos.version} + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/demo-nacos/src/main/java/com/xkcoding/nacos/SpringBootDemoNacosApplication.java b/demo-nacos/src/main/java/com/xkcoding/nacos/SpringBootDemoNacosApplication.java new file mode 100644 index 0000000..36bb4e7 --- /dev/null +++ b/demo-nacos/src/main/java/com/xkcoding/nacos/SpringBootDemoNacosApplication.java @@ -0,0 +1,13 @@ +package com.xkcoding.nacos; + +import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +@NacosPropertySource(dataId = "example", autoRefreshed = true) +public class SpringBootDemoNacosApplication { + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoNacosApplication.class, args); + } +} diff --git a/demo-nacos/src/main/java/com/xkcoding/nacos/config/ConfigController.java b/demo-nacos/src/main/java/com/xkcoding/nacos/config/ConfigController.java new file mode 100644 index 0000000..40e8627 --- /dev/null +++ b/demo-nacos/src/main/java/com/xkcoding/nacos/config/ConfigController.java @@ -0,0 +1,26 @@ +package com.xkcoding.nacos.config; + +import com.alibaba.nacos.api.config.annotation.NacosValue; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import static org.springframework.web.bind.annotation.RequestMethod.GET; + +@Controller +@RequestMapping("config") +public class ConfigController { + @NacosValue(value = "${useLocalCache:false}", autoRefreshed = true) + private boolean useLocalCache; + + /** + * 1.通过nacos官网下载nacos服务,启动nacos服务。 + * 通过调用 Nacos Open API 向 Nacos server 发布配置:dataId 为example + * curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example&group=DEFAULT_GROUP&content=useLocalCache=true" + * @return + */ + @RequestMapping(value = "/get", method = GET) + @ResponseBody + public boolean get() { + return useLocalCache; + } +} diff --git a/demo-nacos/src/main/java/com/xkcoding/nacos/discover/DiscoveryController.java b/demo-nacos/src/main/java/com/xkcoding/nacos/discover/DiscoveryController.java new file mode 100644 index 0000000..3c2a506 --- /dev/null +++ b/demo-nacos/src/main/java/com/xkcoding/nacos/discover/DiscoveryController.java @@ -0,0 +1,29 @@ +package com.xkcoding.nacos.discover; + +import com.alibaba.nacos.api.annotation.NacosInjected; +import com.alibaba.nacos.api.exception.NacosException; +import com.alibaba.nacos.api.naming.NamingService; +import com.alibaba.nacos.api.naming.pojo.Instance; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +import static org.springframework.web.bind.annotation.RequestMethod.GET; + +@Controller +@RequestMapping("discovery") +public class DiscoveryController { + + @NacosInjected + private NamingService namingService; + + @RequestMapping(value = "/get", method = GET) + @ResponseBody + public List get(@RequestParam String serviceName) throws NacosException { + return namingService.getAllInstances(serviceName); + } +} + diff --git a/demo-nacos/src/main/resources/application.properties b/demo-nacos/src/main/resources/application.properties new file mode 100644 index 0000000..e66b290 --- /dev/null +++ b/demo-nacos/src/main/resources/application.properties @@ -0,0 +1 @@ +nacos.config.server-addr=127.0.0.1:8848 diff --git a/pom.xml b/pom.xml index 0110e64..e8cc2bd 100644 --- a/pom.xml +++ b/pom.xml @@ -70,6 +70,7 @@ demo-https demo-flyway demo-pay + demo-nacos pom @@ -87,6 +88,7 @@ 5.4.5 29.0-jre 1.20 + 0.2.4