在 pom.xml
中添加 Nacos 相关的依赖,包括 Nacos 服务发现、配置管理和 Spring Cloud 启动器的依赖:
<!-- 引入 Nacos 服务发现依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!-- 该依赖用于 Spring Cloud 应用集成 Nacos 服务发现功能 -->
</dependency>
<!-- 引入 Nacos 配置管理依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<!-- 该依赖用于 Spring Cloud 应用集成 Nacos 配置管理功能 -->
</dependency>
<!-- 引入 Spring Cloud 启动器 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<!-- 该依赖用于 Spring Boot 配置的引导,通常在配置文件 (bootstrap.yaml) 中加载 Nacos 配置 -->
</dependency>
spring:
application:
name: cart-service
cloud:
nacos:
discovery:
server-addr: xiaotianlong.xyz:8848
config:
server-addr: xiaotianlong.xyz:8848
file-extension: yaml
通过 Nacos 的共享配置功能,可以将不同服务共享的配置存储在 Nacos 中,避免重复配置。
bootstrap.yaml
在 bootstrap.yaml
中,增加共享配置的配置项,确保应用能够加载 Nacos 配置:
spring:
application:
name: cart-service # 这里设置应用名称
cloud:
nacos:
discovery:
server-addr: xiaotianlong.xyz:8848 # Nacos 服务地址
config:
server-addr: xiaotianlong.xyz:8848 # 配置服务地址
file-extension: yaml # 配置文件的格式(yaml)
shared-configs: # 配置共享项
- data-id: shared-jdbc.yaml # 配置的 dataId
refresh: true # 是否启用热更新
- data-id: shared-log.yaml
refresh: true
- data-id: shared-swagger.yaml
refresh: true
shared-configs
: 配置共享的配置项,data-id
是 Nacos 上共享配置的唯一标识,refresh
设置为 true
表示启用热更新。application.yaml
在 application.yaml
中配置应用特定的属性,读取共享的配置信息:
server:
port: 8081 # 配置服务端口
hm:
db:
host: xiaotianlong.xyz # 数据库主机地址
port: 3306 # 数据库端口
database: hm-cart # 数据库名称
un: root # 数据库用户名
pw: 123 # 数据库密码
swagger:
title: 购物车管理接口文档 # Swagger 接口文档的标题
desc: 购物车管理接口文档 # Swagger 描述
package: com.hmall.cart.controller # Swagger 扫描的包路径
server.port
: 配置应用监听的端口。hm.db
: 配置数据库连接信息。hm.swagger
: 配置 Swagger 的接口文档信息。为了启用 Nacos 配置的热更新功能,我们需要在 Nacos 控制台中提交配置文件,并确保命名格式正确。
文件命名规则:[服务名]-[spring.active.profile].[后缀名]
cart-service
。spring.active.profile
:如 dev
或 prod
,指定当前环境,默认为 default
。yaml
或 properties
。例如,配置文件可以命名为:cart-service-dev.yaml
。
提交配置后,可以在 Nacos 控制台中查看已上传的配置。
通过 Java 代码读取配置并启用热更新功能,我们可以使用 @ConfigurationProperties
注解来绑定 Nacos 配置。
package com.hmall.cart.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "hm.cart") // 绑定前缀为 "hm.cart" 的配置
public class CartProperties {
private Integer maxAmount; // 购物车最大金额
}
@ConfigurationProperties(prefix = "hm.cart")
: 将 Nacos 中的配置项绑定到 CartProperties
类的属性中。maxAmount
: 在配置文件中定义的最大购物车金额。此时,如果 maxAmount
的值在 Nacos 中发生变化,Spring 会自动加载最新的配置,支持热更新。
因篇幅问题不能全部显示,请点此查看更多更全内容