nacos 1.4.2 + springboot 2.4.2 实现配置中心+自动刷新

nacos 1.4.2 + springboot 2.4.2

一、nacos 1.4.2 安装(mysql版)

准备SQL脚本
https://github.com/alibaba/nacos/blob/1.4.2/distribution/conf/nacos-mysql.sql
在数据库中创建nacos_config库 并执行SQL脚本
拉取镜像 nacos 1.4.2
docker pull nacos/nacos-server:1.4.2
启动 nacos
docker run -d \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql服务器IP \
-e MYSQL_SERVICE_PORT=mysql端口 \
-e MYSQL_SERVICE_USER=mysql用户名 \
-e MYSQL_SERVICE_PASSWORD=mysql密码 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--name nacos \
--restart=always \
nacos/nacos-server:1.4.2
访问 nacos 登录信息:nacos/nacos
http://服务器IP:8848/nacos
杂七杂八配置

1、针对当前项目创建一个命名空间
2、在命名空间下创建多个配置文件(推荐格式:应用名字-环境.yaml,比如:dispatchserver-dev.yaml/dispatchserver-test.yaml/dispatchserver-prod.yaml)
在这里插入图片描述

二、整合springboot (版本:2.4.2)

springboot 2.4.2版本比较特殊,需要对bootstrap.yml文件做特殊处理

1、整合配置中心

pom.xml 增加下面依赖

<properties>
    <spring.cloud-version>2020.0.1</spring.cloud-version>
    <spring.cloud.alibaba.version>2021.1</spring.cloud.alibaba.version>
</properties>
... ...
<dependencies>
    <!-- Nacos 组件依赖 -->
    <!-- 通过bootstrap.yml配置文件生效,需要引入spring-cloud-starter-bootstrap  -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>
    <!-- nacos config -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring.cloud-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <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>

在resources目录下增加bootstrap.yml文件

spring:
  application:
    # 应用名字
    name: dispatchserver
  # nacos配置
  cloud:
    nacos:
      config:
        # nacos地址
        server-addr: nacos服务器IP:8848
        # 命名空间
        namespace: c438cc07-****-4a2c-****-479b6a75c925
        # 分组
        group: DEFAULT_GROUP
        # 配置文件后缀
        file-extension: yaml
        # 是否开启自动刷新
        auto-refresh: true

nacos+springboot实现配置中心+自动刷新

方式一 使用@Value注解
@RestController
@RequestMapping("/api")
@RefreshScope //@Value要和RefreshScope一起使用才能实现自动刷新
public class MyApiController {

    @Value("${username}")
    private String username;

    @AnonymousAccess
    @GetMapping(value = "/getData")
    public JSONObject getData() {
        return new JSONObject().fluentPut("username", username);
    }
}
方式二 使用配置类(推荐使用)

创建配置类MyProperties

@Data
@Component
@ConfigurationProperties
public class MyProperties {
    private Integer initTtl;
}

使用配置类MyProperties

@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
public class MyApiController {

    private final MyProperties myProperties;

    @AnonymousAccess
    @GetMapping(value = "/getData")
    public JSONObject getData() {
        return new JSONObject().fluentPut("username", myProperties.getUsername());
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值