网站备案号如何获得,品牌营销和市场营销的区别,南京做网站多少钱,销售管理系统设计Spring Cloud(微服务)学习篇(五)
1 nacos配置文件的读取
1.1 访问localhost:8848/index.html并输入账户密码后进入nacos界面并点击配置列表 1.2 点击右侧的号 1.3 点击加号后,进入新建配置界面,并做好如下配置 1.4 往下翻动,点击发布按钮 1.5 发布成功后的界面 1.6 在pom.xml…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 加入所需要导入的依赖 !--配置中心--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency1.6.2 完整的pom.xml文件内容
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdshop-user/artifactIdgroupIdcom.zlz/groupIdversion1.0/version/parentmodelVersion4.0.0/modelVersionartifactIdshop-user-server/artifactIddependencies!--服务的注册与发现--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!--mvc--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!--引入短信接口模块--dependencygroupIdcom.zlz/groupIdartifactIdshop-sms-api/artifactIdversion1.0/version/dependency!--配置中心--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency/dependencies/project1.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 srestTemplate.postForObject(http://shop-sms/send, null, String.class);
// String srestTemplate.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 ssmsService.send();return 用户服务调用短信服务 结果:s;}RequestMapping(test3)public String t3(String tel){SmsDTO smsDTO new SmsDTO();smsDTO.setTel(tel);String ssmsService.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 加上如下注解
RefreshScopea.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 srestTemplate.postForObject(http://shop-sms/send, null, String.class);
// String srestTemplate.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 ssmsService.send();return 用户服务调用短信服务 结果:s;}RequestMapping(test3)public String t3(String tel){SmsDTO smsDTO new SmsDTO();smsDTO.setTel(tel);String ssmsService.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地址后