nacos使用占位符${}进行参数配置的方法
作者:夏威夷8080 发布时间:2022-07-15 08:59:07
标签:nacos,占位符,${}
nacos使用占位符${}进行参数配置的方法
有的时候,我们的nacos会出现一个配置文件里,有多个配置项对应的值都是一样的,这个时候nacos就可以用到占位符${}进行参数配置。
例如下面的这个配置
system:
mapApi:
host: http://192.168.11.222:
port: 7777
header: Authorization
timeout: 100000
bigDataApi:
host: http://192.168.11.222:
port: 8888
header: Authorization
timeout: 200000
可以使用$占位符,进行如下配置
system:
mapApi:
host: http://192.168.11.222:
port: 7777
header: Authorization
timeout: 100000
bigDataApi:
host: ${system.mapApi.host}
port: 8888
header: ${system.mapApi.header}
timeout: 200000
nacos使用占位符${}进行参数配置后,固定相同值的属性以后就只要改一遍就可以了,是不是很方便?
补充知识点:
Spring cloud alibaba Nacos配置中心多数据源配置,Nacos使用占位符${}进行参数配置,Nacos配置MySQL持久化保存配置信息
引入相关依赖,${spring-cloud-starter.version}是我定义的版本变量,可以改成具体版本,例如:2.2.3.RELEASE
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${spring-cloud-starter.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${spring-cloud-starter.version}</version>
</dependency>
项目中配置文件,本次我使用了两个文件,具体配置信息如下
bootstrap.yml 配置参数
spring:
application:
name: hm-user #需要与配置中心的文件前缀匹配
profiles:
active: dev #环境
bootstrap-dev.yml 配置参数
spring:
profiles: dev
cloud:
nacos:
#配置中心设置
config:
username: nacos
password: nacos
#设置配置中心服务端地址
server-addr: 127.0.0.1:8848
namespace: hm-dev
file-extension: yml
#引用扩展配置
extension-configs[0]:
dataId: hm-client-info.yml #扩展配置的名字
group: DEFAULT_GROUP #扩展配置的分组
refresh: true #刷新
Nacos配置文件如下
hm-client-info.yml 配置参数
hm:
redis:
host: 127.0.0.1
port: 6379
database: 2
mysql:
url: jdbc:mysql://127.0.0.1:3306/jpa_test_db?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
username: root
password: abc4561231
hm-user.yml 配置参数
server:
port: 8081
spring:
datasource:
url: ${hm.mysql.url}
username: ${hm.mysql.username}
password: ${hm.mysql.password}
#驱动类
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
host: ${hm.redis.host}
port: ${hm.redis.port}
database: ${hm.redis.database}
cloud:
sentinel:
enabled: true
transport:
dashboard: 127.0.0.1:7777
user:
name: ${hm.redis.host}——${hm.mysql.username}
age: ${hm.redis.port}
创建一个properties类获取配置文件中的信息
@Component
@ConfigurationProperties("user")
public class NacosConfigConfiguration {
public String name;
public String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
启动项目在set方法中打断点,查看值是否正确
Nacos配置MySQL持久化,Nacos下载地址
我本次下载的是.zip的压缩包
将压缩包解压进入 nacos\conf 目录,修改 application.properties 中的数据源
1、开启spring.datasource.platform
2、添加自己想要配置的数据库地址与账号密码
3、去配置的MySQL数据库中,创建对应的database nacos_config
4、在nacos_config控制台中执行 nacos-mysql.sql 中的SQL语句
来源:https://www.cnblogs.com/shamo89/p/17005188.html


猜你喜欢
- 前言:好久没有写博客,最近一年感觉真是好忙,各种做不完的工作。相信很多上班族都会有这种感觉。最近对NFC进行写卡操作,需要计算一个校验位。一
- 我最近上班又遇到一个小难题了,就是如题所述:ViewPager预加载的问题。相信用过ViewPager的人大抵都有遇到过这种情况,网上的解决
- 工厂方法模式简述与简单工厂模式基本相同,只是工厂是一个抽象的,需要有具体的工厂去实现它,然后利用这个工厂生产产品,之所以出现这个模式是因为,
- 在使用EL时,其实EL是先看标识符是否是其隐式对象之一,如果不是,才从四个域(page、request、session、applicatio
- 前言Java线程池中提交任务运行,通常使用execute()方法就足够了。那如果想要实现在主线程中阻塞获取线程池任务运行的结果,该怎么办呢?
- SpringBoot使用protobuf格式的接口建立SpringBoot项目,pom.xml内容如下:<?xml version=&
- //方法一//须添加对System.Web的引用//using System.Web.Security;/// <summary>
- springmvc 使用map接收参数开发过程中有时候我们并不知道前端都会传递哪些参数给到后端. 为方便扩展接口功能, 在请求参数不改变的情
- 下文笔者讲述SpringBoot配置log4j的方法分享,如下所示SpringBoot日志输出springboot框架中默认使用logbac
- 问题在Android开发中,遇到一个问题,是ListView嵌套GridView,需要点击整个ListView的Item进行跳转。但是在点击
- Android Studio连接手机设备教程,供大家参考,具体内容如下一、ADB环境配置1.查看自己Android Studio配置的sdk
- 小程序官方流程图如下,官方地址 : https://developers.weixin.qq.com/miniprogram/dev/fra
- 问题:startTime = DateTime.Now;
- 文件的读取 FileStream fs = new FileStream(@"D:\12.txt", File
- 一、前言前面我们讲了Java的入门知识,相信许多小伙伴对Java基础有一个大概的认识了,这也为我们后续的学习打下了基础,所以我们可以继续学习
- 小菜今年计算机专业大四了,学了不少软件开发方面的东西,也学着编了些小程序,踌躇满志,一心要找一个好单位。当投递了无数份简历后,终于收到了一个
- 一、RFC882文档简单说明RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮
- 1.JMM数据原子操作read(读取)∶从主内存读取数据load(载入):将主内存读取到的数据写入工作内存use(使用):从工作内存读取数据
- 涉及access_token的获取请参考《C#微信公众平台开发之access_token的获取存储与更新》一、为了实现高级群发功能,需要解决
- Commons Beanutils是Apache开源组