IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringCloudAlibaba—Nacos config -> 正文阅读

[Java知识库]SpringCloudAlibaba—Nacos config

nacos做配置中心

应用场景

当你在application.properties里面设置一些变量值value的时候,在项目中也进行使用了。

但是项目上线之后,突然发现需要修改配置文件的value值。那你必须要修改然后重新打包上线,就很麻烦,也会浪费重新上线的时间,nacos config就可以在平台上去注册配置,然后动态的修改就可以了,会同步修改项目中使用到的配置value值,可以避免重新打包上线项目。

使用步骤?

1、导入依赖

<!--    配置中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
 

2、bootstrap.properties(必须用bootstrap,官方规定)

coupon.user.name=我是上线用户1
coupon.user.age=18
spring.application.name=CouponMoudle

3、application.yml

# mysql
spring:
  datasource:
    #MySQL配置
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/gulimail_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 111111
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848         #Nacos服务注册中心地址
      config:
        server-addr: 127.0.0.1:8848         #Nacos作为配置中心地址
  application:
    name: CouponMoudle

mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto


server:
  port: 8000

4、?CouponController使用配置value

@RefreshScope   //开启动态刷新
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    @Value("${coupon.user.name}")
    private  String name;
    @Value("${coupon.user.age}")
    private  Integer age;

    @RequestMapping("/user/test")
    public R test(){
        return  R.ok().put("name",name).put("age",age);
    }
}

注意:启动类上记得加@EnableDiscoveryClient,这里是默认项目已经搭建好了,主要是如何在项目中使用nacos做配置中心

5、在配置中心添加配置?

Data ID的配置:

??? 完整格式:${prefix}-${spring.profiles.active}.${file-extension}

??? prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
??? spring.profiles.active 即为当前环境对应的 profile 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
??? file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

?因为我配置了spring.application.name,前缀就是name,后缀是配置文件格式,自己选择,也可以配置。

?6、动态修改配置,无需重启!

?

nacos命名空间

刚刚我们添加了的配置都会默认public(保留空间)。

?但是开发中肯定都是多环境生成开发。

命名空间就可以实现配置隔离
默认: public(保留空间);默认新增的所有配置都在public空间。其他环境:开发,测试,生产
配置集
配置集ID配置分组

第一步,新增命名空间

id可以自己配置,不配置会随机生成

?我们在dev环境下也编写一个配置

?然后我们再去启动Coupon服务,这时候我们没有任何配置,它还是会默认去加载public环境下的配置文件。但是我们如果上线了要想让他去加载dev的配置文件,怎么做呢?

第二步,配置springboot配置文件?

很简单,在springboot里面配置

?

?

spring.cloud.nacos.config.namespace=1164213208    #命名空间id

?命名空间必须在bootstrap里面配置,这就是官方规定!不能在application里面配置!

?

启动后,发现它读取的就是dev环境下的配置

?当然我们除了可以区分生产环境的命名空间,也可以区分项目,看自己需求。

扩展:分组

nacos配置文件也可以配置分组

在springboot里面配置使用就是?

?

spring.cloud.nacos.config.group=111

我们可以定义一个某个节日例如双十一分组,在当天就使用那个分组的配置,也很方便?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:29:56  更:2022-08-06 10:31:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:55:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码