springboot整合springcloud之nacos配置中心

文章介绍了如何将Nacos集成到项目中作为配置中心,通过添加依赖、配置bootstrap.properties文件,使得配置改动无需重启即可生效。此外,文章还讨论了Nacos的命名空间功能,用于环境隔离,以及配置分组和加载多配置集的用法,增强配置管理的灵活性。
摘要由CSDN通过智能技术生成

整合配置中心nacos

应用场景,每次改配置要重新启动才能生效,而把配置放到nacos上,如有修改,那么发布后项目自动就生效了。
场景2:不同微服务单独设置一个命名空间。

一、项目操作

1.引入依赖

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

不用加版本号,因为在此基础上引入的cloud依赖中统一规定了版本号

    <!--spring-cloud-alibaba组件包管理-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${springcloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
                <springcloud.alibaba.version>2.2.2.RELEASE</springcloud.alibaba.version>
    </properties>

2.配置文件

resource目录下新建bootstrap.properties,它优先于application.properties被加载,

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

注意上面的config.server了。

3.传统方式获取application.properties里的值

@Value("${xxx.xxxx.xxx……}")

一旦修改,那就得重启项目,不方便。

二、在nacos上配置

1.创建配置

在这里插入图片描述

2.编写配置

在这里插入图片描述
id默认是项目名.properties。

然后不要忘了,Controller头部加注解

@RefreshScope

表示动态刷新。

3.测试

@Value("${coupon.user.name}")
    private String name;
    @Value("${coupon.user.age}")
    private Integer age;
    @RequestMapping("/test")
    public R test(){

        return R.ok().put("name",name).put("age",age);
    }

在这里插入图片描述
然后项目保持启动,去修改nacos里的配置,并发布,再刷新页面,值就变了。

4.总结

在这里插入图片描述

三、细节

1.命名空间

2.1命名空间:配置隔离;
 * 默认:public(保留空间),默认新增的所有配置都在public空间
 * 然而,环境有开发、测试、生成等等,命名空间不应相同。

在这里插入图片描述
可以切换环境
在这里插入图片描述
把public里的配置克隆到pro,改变里面的值。这样,同一配置,不同环境下,存在多个。那想切换命名空间咋办:bootstrap.properties

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=a82dae20-3e6e-47c0-a5dd-81ad974725e7

新加了一行,规定命名空间,字符串的值就是:
在这里插入图片描述

2.配置分组

即便是同一个命名空间也是可以分配多个组的,
在这里插入图片描述
在这里插入图片描述
可以这样:每个微服务创建自己的命名空间,然后每个环境在不同的group
而且,有些一般项目的配置内容也不是只存在一个配置文件,那样很乱,关于数据源的一般放在一个文件,等等……

3.加载多配置集

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=a82dae20-3e6e-47c0-a5dd-81ad974725e7

spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
spring.cloud.nacos.config.extension-configs[0].refresh=true #自动刷新

spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true

另外依然会读取项目名.properties

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CtrlZ1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值