Quellcode durchsuchen

feat:搭建nacos配置中心案例,学习如何使用nacos作为配置中心以及如何进行配置

yang yi vor 1 Jahr
Ursprung
Commit
655da9eca0

+ 49 - 0
nacos-config-client_5000/pom.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>distributedSystemLearn</artifactId>
+        <groupId>anyi.space</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>nacos-config-client_5000</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <!--nacos配置中心依赖-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+        <!--nacos服务发现依赖-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+        <!--在新版的springcloud应用中使用bootstarp配置文件,需要引入这个依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+            <version>3.1.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 20 - 0
nacos-config-client_5000/src/main/java/space/anyi/nacosConfigClient/NacosConfigClientApplication.java

@@ -0,0 +1,20 @@
+package space.anyi.nacosConfigClient;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: NacosConfigClientApplication
+ * @Author: 杨逸
+ * @Data:2025/9/14 17:45
+ * @Description:
+ */
+@EnableDiscoveryClient
+@SpringBootApplication
+public class NacosConfigClientApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(NacosConfigClientApplication.class,args);
+    }
+}

+ 37 - 0
nacos-config-client_5000/src/main/java/space/anyi/nacosConfigClient/controller/NacosConfigClientController.java

@@ -0,0 +1,37 @@
+package space.anyi.nacosConfigClient.controller;
+
+import com.alibaba.nacos.api.config.annotation.NacosValue;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ProjectName: distributedSystemLearn
+ * @FileName: NacosConfigClientController
+ * @Author: 杨逸
+ * @Data:2025/9/14 18:02
+ * @Description: 测试nacos配置中心的controller
+ */
+@Data
+@RestController()
+@RequestMapping("/config")
+//@RefreshScope表示自动刷新配置,配合配置中心实现配置的动态刷新
+@RefreshScope
+public class NacosConfigClientController {
+    @Value("${config.info}")
+    private String configInfo;
+    @Value("${config.name}")
+    private String configName;
+
+    @GetMapping("/info")
+    public String getConfigInfo(){
+        return configInfo;
+    }
+    @GetMapping("/name")
+    public String getConfigName(){
+        return configName;
+    }
+}

+ 5 - 0
nacos-config-client_5000/src/main/resources/application.yaml

@@ -0,0 +1,5 @@
+spring:
+  profiles:
+    #使用哪个环境的配置文件
+    #test:测试环境,dev:开发环境,prod:生产环境
+    active: test

+ 24 - 0
nacos-config-client_5000/src/main/resources/bootstrap.yaml

@@ -0,0 +1,24 @@
+server:
+  port: 5000
+  servlet:
+    context-path: /nacos-config-client
+spring:
+  cloud:
+    nacos:
+      discovery:
+        #注册中心服务地址
+        server-addr: localhost:8848
+      #匹配nacos配置中心中DataId为: ${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 的配置文件
+      config:
+        #配置中心服务地址
+        server-addr: localhost:8848
+        #配置文件后缀
+        file-extension: yaml
+        #配置文件前缀,默认值为"spring.application.name"参数的值
+        prefix: ${spring.application.name}
+        #配置分组名称,默认为:DEFAULT_GROUP
+        group: DEFAULT_GROUP
+        #配置文件命名空间,默认为:public,配置其他的namespace时,使用的namespace的ID
+        namespace: public
+  application:
+    name: nacos-config-client

+ 1 - 0
pom.xml

@@ -12,6 +12,7 @@
         <module>member-service-consumer</module>
         <module>common</module>
         <module>member-service-provider_10002</module>
+        <module>nacos-config-client_5000</module>
     </modules>
     <packaging>pom</packaging>