1. 引入注册中心
引入注册中心的意思是,这个服务注册到nacos里面,相当于服务被发现
大前提-----我的spring-cloud基础依赖已经引入过了,现在只是加入nacos
1.1 在父类里面引入
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
1.2 在子类里面引入
<!--注册中心nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
1.3 在子类的application.yml文件,配置如下
配置完称,打开nacos客户端页面,服务管理->服务列表,里面就有该服务
server:
port: 6002
spring:
application:
name: sign-work
profiles:
active: dev
cloud:
nacos:
# nacos注册中心地址,注意:结尾不能带斜杠/
discovery:
server-addr: 101.11.22.123:8848
namespace: 2d4de5e3-eeee-4377-b0e0-d3dffad51fe7
2. 引入配置中心
2.1 同上面,先父pom引入依赖,一如过了,就不要再重复添加了
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
2.2 在子类里面引入了
<!-- nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.3 在子类里面的yml文件
参考(里面有参数详细解析):https://blog.csdn.net/Mrs_chens/article/details/115260208
server:
port: 6002
spring:
application:
# 应用名称
name: sign-work
profiles:
# 环境配置
active: dev
# 允许覆盖bean定义
main:
allow-bean-definition-overriding: true
# could-nacos注册中心配置
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 101.11.22.123:8848
namespace: 2d4de5e3-fb2e-4377-b0e0-d3dffad51fe7
config:
enabled: true # 不想使用Nacos进行配置管理,设置为 false 即可,默认true
# nacos配置中心地址,注意:结尾不能带斜杠 /
server-addr: 101.11.22.123:8848
namespace: 2d4de5e3-fb2e-4377-b0e0-d3dffad51fe7
file-extension: yml
# 尽量和应用名称一致
prefix: ${spring.application.name}
shared-configs:
- ${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
2.4. 将 application.yml 文件 改名为 bootstrap.yml文件
注意
1. bootstrap 是应用程序的父上下文
2. bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性
3. boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载
4. boostrap 里面的属性不能被覆盖(如果本地有相同名称的属性,不能被覆盖)
2.6 文件名命名规则:sign-work(服务名)-dev(运行环境).yml(扩展名) 【重要】
2.7 按图片配置完后,添加一个controller 测试是否能读取到配置文件
package com.luck.sign.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RefreshScope
@RestController
@RequestMapping(value = "/config")
public class ConfigController {
/**
* 读取 username 配置信息 获取的是windows用户名
*/
@Value(value = "${username:}")
private String userName;
/**
* 读取 redis 配置信息
*/
@Value(value = "${spring.datasource.drive-class-name:}")
private String driveClassName;
/**
* 读取 redis 配置信息
*/
@Value(value = "${server.port:}")
private String port;
/**
* 获取配置内容
*
* @return
*/
@RequestMapping(value = "/get")
public String getConfig() {
System.out.println(userName);
System.out.println(driveClassName);
System.out.println(port);
return "userName:"+userName + " driveClassName:" + driveClassName + " port:"+port;
}
}
6.运行结果如下:
3. 学习链接
1.SpringCloud集成Nacos并使用(里面有讲解参数含义)