将nacos作为配置中心
springboot:3.3.5
spring cloud:2023.0.1
nacos config:2023.0.1.2
bootstrap:3.1.7
nacos容器:2.5.1
一、父工程pom:
<?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">
<!--1、以下:定义父项目的唯一标识,子模块会继承这些信息(groupId、version)-->
<!-- 基本坐标 -->
<modelVersion>4.0.0</modelVersion>
<groupId>com.iyll</groupId>
<artifactId>springboot-nacos</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging> <!-- 核心:父项目必须用pom打包 -->
<!--2、以下:通过<modules>标签聚合所有子模块(如微服务模块、公共工具模块),方便统一构建(如mvn clean install可一次性构建所有子模块) -->
<!-- 子模块目录名必须与<module>标签中的值一致 -->
<modules>
<module>iyll-user</module>
<module>iyll-order</module>
</modules>
<!--3、以下:通过<properties>标签定义全局变量-->
<!--集中管理版本号(如Java版本、Spring Boot版本、依赖版本),避免子模块重复写版本,方便后续升级-->
<properties>
<!-- 基础环境 -->
<java.version>17</java.version> <!-- Java版本(与Spring Boot 3.x兼容) -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- 编码格式 -->
<!-- Spring 生态版本 -->
<spring.boot.version>3.3.5</spring.boot.version> <!-- Spring Boot版本 -->
<spring.cloud.version>2023.0.1</spring.cloud.version> <!-- Spring Cloud版本(微服务必选) -->
<!-- 常用依赖版本 -->
<hutool.version>5.8.35</hutool.version>
<mysql.version>8.0.33</mysql.version> <!-- MySQL驱动版本 -->
<lombok.version>1.18.30</lombok.version> <!-- Lombok版本 -->
<mybatis-plus.version>3.5.12</mybatis-plus.version> <!-- mybatis-plus版本 -->
<!-- 插件版本 -->
<maven-compiler-plugin.version>3.12.1</maven-compiler-plugin.version> <!-- 编译插件版本 -->
<ali.nacos.config.version>2023.0.1.2</ali.nacos.config.version>
<bootstrap.version>3.1.7</bootstrap.version>
</properties>
<!--4、以下:通过<dependencyManagement>标签统一管理依赖版本,子模块引入依赖时无需指定版本 -->
<!-- 避免版本冲突(如Spring Boot与Spring Cloud版本不兼容 -->
<dependencyManagement> <!--这个标签是版本管理的,子模块引入依赖时,无需写版本version-->
<dependencies>
<!-- (1)Spring Boot 依赖管理(必须) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring Boot Web Starter 版本管理 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version> <!-- 版本由父项目属性定义(如3.5.3) -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot.version}</version> <!-- 继承父项目的Spring Boot版本 -->
<scope>test</scope> <!-- 默认scope为test(仅测试阶段生效) -->
</dependency>
<!-- (2)Spring Cloud 依赖管理(微服务必选) -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope> <!-- 导入Spring Cloud的依赖管理 -->
</dependency>
<!-- (3)常用第三方依赖(统一版本) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope> <!-- Lombok无需打包到jar -->
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- Spring Cloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${ali.nacos.config.version}</version>
</dependency>
<!-- 启用 bootstrap 配置加载(Spring Boot 2.4+ 需显式引入) -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>${bootstrap.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--5、以下:公共插件配置(子模块继承) -->
<build>
<pluginManagement> <!--这是用来插件版本管理的,子模块引入插件时,无需写版本version-->
<plugins>
<!-- (1)编译插件(必须) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source> <!-- 源文件Java版本 -->
<target>${java.version}</target> <!-- 目标class文件Java版本 -->
<encoding>${project.build.sourceEncoding}</encoding> <!-- 编码格式 -->
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- 6、以下:镜像仓库配置(可选,加速依赖下载) -->
<repositories>
<repository>
<id>aliyun-public</id>
<name>Aliyun Public Repository</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled> <!-- 禁用快照版本(稳定) -->
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-plugin</id>
<name>Aliyun Plugin Repository</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>二、子工程pom:
<?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">
<!--1、子模块通过<parent>标签继承父项目的**groupId、version、dependencyManagement、build**等配置,是子模块的核心基础。-->
<modelVersion>4.0.0</modelVersion>
<parent><!--父亲的意思,指定父项目坐标-->
<groupId>com.iyll</groupId>
<artifactId>springboot-nacos</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <!-- 正确指向父项目的pom.xml -->
</parent>
<!-- 2. 子模块基本标识(必选) -->
<artifactId>iyll-user</artifactId><!-- 子模块唯一标识(必写) -->
<packaging>jar</packaging><!-- 打包方式(Spring Boot应用必选jar) -->
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 3. 依赖引入(无版本,父项目管理) -->
<!--子模块不要重复配置dependencyManagement,否则会覆盖父项目的版本管理,导致版本冲突。-->
<dependencies>
<!-- Spring Cloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- 启用 bootstrap 配置加载(Spring Boot 2.4+ 需显式引入) -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 可选:测试 Starter(包含JUnit、Spring Test等) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <!-- Lombok(无需版本,父项目已配置scope=provided) -->
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId> <!-- MySQL驱动(无需版本) -->
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
</dependencies>
<!-- 4. 构建配置(必选) -->
<build>
<plugins>
<!-- Spring Boot 打包插件(必选,生成可执行jar) -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <!-- 插件版本由父项目pluginManagement管理 -->
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 重打包为可执行jar(默认) -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>三、配置文件
# bootstrap.yaml
spring:
application:
name: iyll-user # 对应 Nacos 中的 Data ID
profiles:
active: prod # 指定环境(dev/test/prod)
server:
port: 9527# bootstrap-dev.yaml
spring:
cloud:
nacos:
config:
server-addr: 192.168.124.128:8848 # Nacos 地址
namespace: dev # 命名空间 ID(非名称)
group: DEFAULT_GROUP # 配置分组
file-extension: yaml # 配置格式
refresh-enabled: true # 动态刷新
username: nacos # 认证用户名(若开启)
password: nacos.123 # 认证密码
config:
import: optional:nacos:${spring.application.name}.${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 显式导入配置# bootstrap-prod.yaml
spring:
cloud:
nacos:
config:
server-addr: 192.168.124.128:8848 # Nacos 地址
namespace: prod # 命名空间 ID(非名称)
group: DEFAULT_GROUP # 配置分组
file-extension: yaml # 配置格式
refresh-enabled: true # 动态刷新
username: nacos # 认证用户名(若开启)
password: nacos.123 # 认证密码
config:
import: optional:nacos:${spring.application.name}.${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 显式导入配置四、nacos客户端配置


将nacos作为配置中心
http://111.180.147.175:37008/archives/jiang-nacoszuo-wei-pei-zhi-zhong-xin