Config
经过上面的学习我们不难发现springcloud基本操作就是导入依赖、编写配置类、在主启动类上开启这个组件。如果我们的服务多了那么配置文件也就变多了,配置文件有很大一部分是相同的,是不是感觉很烦,一样的代码我们却要写很多遍,springcloud-config就是解决这样的事,我们把配置文件放在云端,我需要是直接把配置文件加入我们的服务即可。而且我们更改配置文件时会对引用这个文件的程序有影响。
GitEE
在学习springloud-config之前我们得去gitee上创建一个分支,并在分支里编写一个yml文件。
这个yml文件就是我们springboot的一个环境配置文件。
spring:
profiles:
active: dev
---
spring:
profiles: dev
application:
name: springcloudconfig10001
cloud:
config:
server:
git:
uri: https://gitee.com/jiang_ming_hong/styconfig.git
server:
port: 10001
---
spring:
profiles: eureka
application:
name: springcloudconfig1000
cloud:
config:
server:
git:
uri: https://gitee.com/jiang_ming_hong/styconfig.git
server:
port: 1000
ConfigService
导入依赖
Config依赖 spring-cloud-config-server
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
配置文件
git.uri 标明我们使用git 且把uri地址明确,uri地址就是gitee上节点的下载地址,选择https不要选择git的
如图:
spring:
profiles:
active: dev
---
spring:
profiles: dev
application:
name: springcloudconfig10001
# config配置
cloud:
config:
server:
git: # 标明我们使用git 且把uri地址明确,uri地址就是gitee上节点的下载地址,选择https不要选择git的
uri: https://gitee.com/jiang_ming_hong/styconfig.git
server:
port: 10001
主启动类
@EnableConfigServer
@SpringBootApplication
@EnableConfigServer
public class SpringcloudConfig6666Application {
public static void main(String[] args) {
SpringApplication.run(SpringcloudConfig6666Application.class, args);
}
}
测试:
开启这个服务并输入地址
到这里,我们就可以通过本地拿到gitee上的配置文件中的内容。
ConfigClient
我们做一个简单的案例,那就是把服务注册到eureka的中。
导入依赖 spring-cloud-starter-config
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
配置文件
创建一个yml文件,名字是bootstrap,里面吗配置为:
# 系统级别的配置
spring:
cloud:
config:
name: application # 需要从git上读取的资源名称,不要后缀
profile: eureka # 配置文件中的环境
label: master # gitee 上的节点,这里是主节点
uri: http://localhost:10001 # cofig服务端的地址
application.yml
spring:
application:
name: springcloudconfigclient10002
主启动
只需要开启eureka客户端
@SpringBootApplication
@EnableEurekaClient
public class SpringcloudConfigClient10002Application {
public static void main(String[] args) {
SpringApplication.run(SpringcloudConfigClient10002Application.class, args);
}
}
测试:
开启eureka服务端,开启config服务端、开启我们的config客户端。
我们发现我们的服务被注册到eureka中了。我们在本地并没有配置eureka的任何配置,我们使用的都是远程的。
再一次理解: