参考资料: Nacos 融合 Spring Cloud: https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html
Java SDK: https://nacos.io/zh-cn/docs/v2/guide/user/sdk.html
POM文件引用: 父pom springcloud,springboot,springcloudalibaba,nacos版本引用
1 2 3 4 5 6 7 8 9 <properties> <java.version>11</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.6.13</spring-boot.version> <spring-cloud.version>2021.0.5</spring-cloud.version> <spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version> <alibaba.nacos.version>2.1.1</alibaba.nacos.version> </properties>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <dependencyManagement> <dependencies> <!--统一版本--> <dependency> <groupId>com.luck.sugar</groupId> <artifactId>luck-bom</artifactId> <version>1.0.0</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SpringBoot 依赖配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SpringCloud 微服务 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Alibaba Nacos 配置 --> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>${alibaba.nacos.version}</version> </dependency> <!-- Mybatis 依赖配置 --> <!-- SpringCloud Alibaba 微服务 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
因为我们使用了注册中心所以配置不能再使用application.yaml,需要优先级更高的bootstrap文件来找到nacos的配置文件,在springboot2.2以后bootstrap默认是关闭的需要打开才能默认使用bootstrap文件为配置文件,需要在pom文件中添加模块引用
1 2 3 4 5 6 7 <dependencies> <!-- bootstrap 启动器 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> </dependencies>
子pom 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <dependencies> <!-- spring web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- spring test --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> </dependencies>
配置文件修改: 上节解释了配置文件变化,以下是bootstrap.yml的示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # Tomcat server: port: 1066 # Spring spring: application: # 应用名称 name: luck-uid profiles: active: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 49.235.122.65:8848 namespace: 5e81acf8-7ce3-42fe-b666-878b41d27fca config: # 配置中心地址 server-addr: 49.235.122.65:8848 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} namespace: 5e81acf8-7ce3-42fe-b666-878b41d27fca
启动类注解添加: @EnableDiscoveryClient
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @EnableDiscoveryClient @SpringBootApplication public class LuckUidApplication { public static void main(String[] args) { SpringApplication.run(LuckUidApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ ID服务启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. .-------. \n" + " | i--------------------i | \n" + " | | | | \n" + " \\| O O |/ \n" + " | /\\ | \n" + " | / \\ | \n" + " | \\__/ | \n" + " | __-- . | \n" + " `-..-' "); } }
效果展示:
异常备注: bootstrap.yml未生效:链接地址为 127.0.0.1 pom未添加spring-cloud-starter-bootstrap,
配置文件格式异常
项目启动完成后没有注册到nacos中: 子pom中未引用:spring-cloud-starter-alibaba-nacos-discovery