一、SpringCloud Config
就在上个博客的基础上写,一个项目开发完,要放到服务器上去运行,所以将项目打成jar搞出来;
1、将项目打成jar包
①、首先将Commons打成jar包
pom.xml中的对应maven仓库中的位置
②、打包父项目
因为子项目都继承父项目,使用父项目的依赖,所以打包父项目
(1)将父项目的承认子项目注掉,不然打包父项目时,同时也会将子项目打包,
(2)打包前先清一下
打包(package和install都可以进行打包)
③、打包生产者(provider)
(1)先清空,在打包,它的jai包可以去本地仓库找也可以在源码编译target哪里找
(2) 将jar复制到桌面
现在服务就已经打包完成了,现在运行它
(3)打开cmd窗口
2、SpringCloud Config
我们使用的是Spring Cloud Alibaba
①、Spring Cloud Alibaba 是使用Nacos来解决这一问题的
(1)父项目导入pom.xml依赖
Spring Cloud Alibaba Nacos Config Nacos 提供用于存储配置和其他元数据的 key/value 存储 , 为分布式系统中的外部化配置提供服务器端和客户端支持。
生产者(provider)和消费者(consumer)都属于客户端;
我们新建一个客户端
②、新建客户端
(1)新建config-client
(2)pom.xml继承父项目,删除不需要的东西
父项目()承认子项目
客户端就建好了,需要读取服务器信息,
提供服务器配置,
新建服务器配置:点击“+”号,新建邮箱服务配置
③、config-client项目中读取配置中心配置的配置
bootstrap.yml 先于 application.yml 加载
父项目pom.xml添加依赖:
假如application.yml中什么都没写,bootstrap.yml写了访问端口号,application.yml就能使用bootstrap.yml的端口号访问,bootstrap.yml相当于application.yml的父类;但是application.yml写了端口号,访问端口就会是application.yml的端口号,因为覆盖了,
(1).application.yml
(2).新建bootstrap.yml
读取远程配置中心的服务
(3)启动类添加注解
注册到注册中心去
(4)测试查看能不能读取配置
新增controller软件包,新建TestController类
第一种yml注入方式:
结果
第二种yml注入方式:
新建EmailProperties
注入再打印
测试结果
所有说生产者就会有生产者的配置文件,消费者就会有消费者的配置文件,不同的相互读取不同的yml文件,所以说,他是给某一个配置去用的,理解为私有配置
但是,还是有一种情况,生产者和消费者存在相同的配置(比如:redis),
④、远程读取配置
(1)写几个公有配置
随机新建redis配置