springboot整合springcloud:nacos配置心
整合配置中心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
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhicac
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13