当前位置: 首页 > news >正文

Spring Cloud(微服务)学习篇(五)

Spring Cloud(微服务)学习篇(五)

1 nacos配置文件的读取

1.1 访问localhost:8848/index.html并输入账户密码后进入nacos界面并点击配置列表

在这里插入图片描述

1.2 点击右侧的+号

在这里插入图片描述

1.3 点击加号后,进入新建配置界面,并做好如下配置

在这里插入图片描述

1.4 往下翻动,点击发布按钮

在这里插入图片描述

1.5 发布成功后的界面

在这里插入图片描述

1.6 在pom.xml(shop-user-server项目)中加入依赖

1.6.1 加入所需要导入的依赖

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

1.6.2 完整的pom.xml文件内容

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>shop-user</artifactId><groupId>com.zlz</groupId><version>1.0</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shop-user-server</artifactId><dependencies><!--服务的注册与发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--mvc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--引入短信接口模块--><dependency><groupId>com.zlz</groupId><artifactId>shop-sms-api</artifactId><version>1.0</version></dependency><!--配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency></dependencies></project>

1.7 变更application.yml文件

1.7.1 加入的部分

config:server-addr: 127.0.0.1:8848 #配置中心地址

1.7.2 完整的application.yml代码

server:port: 8010 #801开头 表示用户集群 用户服务
spring:application:name: shop-user #项目名称 作为微服务名cloud:nacos:server-addr: 127.0.0.1:8848 #注册中心地址config:server-addr: 127.0.0.1:8848 #配置中心地址

1.8 变更UserController类

1.8.1 加入的部分

 @Value("${jdbc.username}")private String yhm;@Value("${jdbc.password}")private String password;@RequestMapping("config")public String config(){return "读取的用户名: "+yhm+" ,密码:"+password;}

1.8.2 完整的UserController类代码

package com.zlz.controller;import com.zlz.shop.sms.api.dto.SmsDTO;
import com.zlz.shop.sms.api.service.SmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;@RestController
public class UserController {@AutowiredRestTemplate restTemplate;@RequestMapping("test")public String t(){//http://shop-sms/sendString s=restTemplate.postForObject("http://shop-sms/send", null, String.class);
//        String s=restTemplate.postForObject("http://127.0.0.1:8021/send", null, String.class);return "用户服务调用短信服务 结果:"+s;}//使用oepnFeign的方式发送短信@AutowiredSmsService smsService;@RequestMapping("test2")public String t2(){//http://shop-sms/sendString s=smsService.send();return "用户服务调用短信服务 结果:"+s;}@RequestMapping("test3")public String t3(String tel){SmsDTO smsDTO = new SmsDTO();smsDTO.setTel(tel);String s=smsService.send2(smsDTO);return "用户服务调用短信服务 结果:"+s;}//spring环境里面的所有数据都可以读取,配置文件都行/*这里的jdbc.username需要和配置文件的key保持一致*/@Value("${jdbc.username}")private String yhm;@Value("${jdbc.password}")private String password;@RequestMapping("config")public String config(){return "读取的用户名: "+yhm+" ,密码:"+password;}
}

1.9 三种情况

1.9.1 更新配置文件后读取内容不刷新

a 启动用户服务

在这里插入图片描述

b 第一次访问127.0.0.1:8010/config地址

在这里插入图片描述

c 更改配置文件中的usename为zhangsan并点击发布按钮

在这里插入图片描述

d 再次访问127.0.0.1:8010/config地址

在这里插入图片描述

1.9.2 更新配置文件后读取内容刷新(实时读取最新的配置)

a 变更UserController类
a.1 加上如下注解
@RefreshScope
a.2 完整的UserController类代码
package com.zlz.controller;import com.zlz.shop.sms.api.dto.SmsDTO;
import com.zlz.shop.sms.api.service.SmsService;
import org.springframework.beans.factory.annotation.Autowired;
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;
import org.springframework.web.client.RestTemplate;@RestController
@RefreshScope//动态刷新config
public class UserController {@AutowiredRestTemplate restTemplate;@RequestMapping("test")public String t(){//http://shop-sms/sendString s=restTemplate.postForObject("http://shop-sms/send", null, String.class);
//        String s=restTemplate.postForObject("http://127.0.0.1:8021/send", null, String.class);return "用户服务调用短信服务 结果:"+s;}//使用oepnFeign的方式发送短信@AutowiredSmsService smsService;@RequestMapping("test2")public String t2(){//http://shop-sms/sendString s=smsService.send();return "用户服务调用短信服务 结果:"+s;}@RequestMapping("test3")public String t3(String tel){SmsDTO smsDTO = new SmsDTO();smsDTO.setTel(tel);String s=smsService.send2(smsDTO);return "用户服务调用短信服务 结果:"+s;}//spring环境里面的所有数据都可以读取,配置文件都行(这些username会在启动项目的时候去读取)/*这里的jdbc.username需要和配置文件的key保持一致*/@Value("${jdbc.username}")private String yhm;@Value("${jdbc.password}")private String password;@RequestMapping("config")public String config(){return "读取的用户名: "+yhm+" ,密码:"+password;}
}
b 启动nacos

在这里插入图片描述

c 启动用户服务

在这里插入图片描述

d 第一次访问127.0.0.1:8010/config地址

在这里插入图片描述

e 更改配置文件中的usename为lisi,并点击发布按钮

在这里插入图片描述

f 再次访问127.0.0.1:8010/config地址

在这里插入图片描述

1.9.3 读取指定配置文件的内容

a 新建一个配置shop-user-dev
a.1 点右边的加号,进入新建配置界面,然后填写相关信息

在这里插入图片描述

a.2 往下翻,点击发布按钮

在这里插入图片描述

b 更改application.yml(shop-user-server项目)
b.1 加入如下代码
  profiles:active: dev #环境,不写读取的就是无环境配置文件 如shop-user.properties,加了啥就会读取啥
b.2 完整的application.yml代码
server:port: 8010 #801开头 表示用户集群 用户服务
spring:application:name: shop-user #项目名称 作为微服务名cloud:nacos:server-addr: 127.0.0.1:8848 #注册中心地址config:server-addr: 127.0.0.1:8848 #配置中心地址profiles:active: dev #环境,不写读取的就是无环境配置文件 如shop-user.properties,加了啥就会读取啥
c 重新启动用户服务

在这里插入图片描述

d 访问127.0.0.1:8010/config地址后

在这里插入图片描述

http://www.lryc.cn/news/40409.html

相关文章:

  • 道阻且长,未来可期,从GPT-4窥得通用人工智能时代的冰山一角!
  • 百度将?百度已!
  • 内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
  • 女子举重问题
  • 试题 历届真题 循环小数【第十一届】【决赛】【Python】
  • 关于类型转换
  • 蓝桥杯冲击-02约数篇(必考)
  • 122.(leaflet篇)leaflet地图图片之间存在缝隙
  • 4.类的基本概念
  • 有图解有案例,我终于把 Condition 的原理讲透彻了
  • Linux之找回root密码
  • stack_queue | priority_queue | 仿函数
  • 第十四届蓝桥杯三月真题刷题训练——第 14 天
  • 【Hadoop-yarn-01】大白话讲讲资源调度器YARN,原来这么好理解
  • 技术掉:PDF显示,使用pdf.js
  • 有关pytorch的一些总结
  • 基础IO【Linux】
  • Vue3——自定义封装上传图片样式
  • ChatGLM-6B (介绍以及本地部署)
  • react的基础使用
  • letcode 4.寻找两个正序数组的中位数(官方题解笔记)
  • 【面试题系列】K8S常见面试题
  • 字符函数和字符串函数(上)-C语言详解
  • 全连接神经网络
  • 深度学习目标检测ui界面-交通标志检测识别
  • ubuntu不同版本的源(换源)(镜像源)(lsb_release -c命令,显示当前系统的发行版代号(Codename))
  • linux入门---程序翻译的过程
  • springboot复习(黑马)
  • C++指针详解
  • tauri+vite+vue3开发环境下创建、启动运行和打包发布