Nacos注册中心和配置中心基础搭建
注册中心
一、pom文件添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
</dependency>
二、添加配置
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: 455e99a3-279d-438d-bf5d-e8b56f0840a7
三、启动类上添加注解@EnableDiscoveryClient
四、启动服务,登录页面检查是否在nacos上注册
配置中心
一、pom文件添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
二、添加相关配置
- 因为nacos的配置需要在Springboot的配置前生效,所以配置文件需要在新建的“bootstrap.yml”中编写。否则启动会报找不到配置异常
- 配置类型只有“yaml”,写“yml”会无法匹配对应的配置 “服务名称不能使用下划线”
Could not resolve placeholder '' in value "${}"
spring:
#application.name和profiles.active可以写在application.yml文件中,也可以写在这里
application:
name: nacos-service
profiles:
active: dev
cloud:
nacos:
config:
#服务器地址
server-addr: localhost:8848
#配置文件格式,需要注意类型现只支持“properties”和“yaml”
file-extension: yaml
#命名空间id
namespace: 455e99a3-279d-438d-bf5d-e8b56f0840a7
#所在组名称
group: DEFAULT_GROUP
三、新建属性字段并创建调取方法
@RestController
//当前类下的所有属性都自动更新
@RefreshScope
public class NacosController {
@Value(value = "${conf.user.name}")
private String name;
@Value(value = "${conf.user.age}")
private String age;
@GetMapping("/config")
public String getPropertyFromNacos(){
return "${user.name} = " + name + ",${user.age} = " + age;
}
}
四、在nacos可视化页面上新建对应配置
新建配置的data_id需要和项目相匹配,规则为
例如我的为:
五、设置动态配置
只需要在想要动态获取数据的类上添加“@RefreshScope”注解即可
六、同一项目不同环境使用相同配置
不加profile后缀的配置文件,属于公共配置,所有环境都会默认使用,
添加profile后缀的配置文件,属于指定配置,优先级高于默认配置