SpringCloud创建Config模块
1.说明
本文详细介绍Spring Cloud创建Config模块的方法,
基于已经创建好的Spring Cloud父工程,
请参考SpringCloud创建项目父工程,
创建Config模块这个子工程,
作为Spring Cloud的配置中心,
这个配置中心可以独立启动。
然后配合创建好的Eureka子工程,
请参考SpringCloud创建Eureka模块,
把Config服务注册到Eureka。
2.创建config模块
这一步创建一个Maven Module,
作为Spring Cloud的父工程下的一个子工程:
在父工程spring-cloud-demo上右键 -> New -> Other... -> Maven -> Maven Project
勾选Create a simple project(skip archetype selection),
输入Module Name:config-server,
查看Parent Project:spring-cloud-demo,
如果不是自己选择的父工程,请重新选择。
点击Finish完成工程创建。
3.添加依赖
在pom.xml中增加spring-cloud-config-server的依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
4.新增配置文件
在src/main/resource目录下新增application.yml文件,
并且增加如下配置:
server:
port: 9009
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: https://gitee.com/bugzeroman/spring-cloud-config.git
主要是配置中心需要使用到的git仓库,
这里使用https协议的git地址。
如果使用git协议的地址,
需要配置ssh的私钥privateKey,
同时strictHostKeyChecking要为false,
否则会报错"reject HostKey : gitee.com",
参考配置如下:
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: git@gitee.com:bugzeroman/spring-cloud-config.git
strictHostKeyChecking: false
privateKey: |
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAuThLh+LHK0g7g/dJ4IUCyOYg7JNXQDGYt4khUYnJIw5pxX/a
... please input real id_rsa ...
UZp40gCDS64ve++Z/leNTMYH0YiAxNkcIp2Czvwm8P+hCkxvdgWgkbb5nuXfR1Gp
2OrvwOk/z076Wo3kTl0Oh+Tt9EB7bf1h2MC23QrRXUim8r0+Vjl3
-----END RSA PRIVATE KEY-----
5.新增主启动类
在src/main/java目录下新增主启动类,
Package:com.yuwen.spring.config
Name:ConfigApplication
然后修改ConfigApplication.java如下,
注意一定要有EnableConfigServer注解,
表示这是一个配置中心:
package com.yuwen.spring.config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
6.git仓库
在上面我们指定了spring-cloud-config仓库的地址:
https://gitee.com/bugzeroman/spring-cloud-config.git
git@gitee.com:bugzeroman/spring-cloud-config.git
在这个仓库下面我们上传各种配置文件,
这样就可以通过配置中心config拉取到各种配置。
现在新增一个application.yml如下,
然后上传到仓库中即可。
spring:
profiles:
active:
- dev
---
# 开发环境
spring:
profiles: dev
application:
name: config-server-dev
---
# 测试环境
spring:
profiles: test
application:
name: config-server-test
7.启动config
右键主启动类ConfigApplication.java,
Run As ... -> Java Application
成功启动日志如下,
可以看到对外提供的服务端口是9009:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.1.RELEASE)
2020-09-09 15:53:28.680 INFO 19844 --- [ main] c.yuwen.spring.config.ConfigApplication : No active profile set, falling back to default profiles: default
2020-09-09 15:53:29.325 INFO 19844 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=1d5d8597-77d3-3e14-9239-79e89f24c7a4
2020-09-09 15:53:29.825 INFO 19844 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9009 (http)
2020-09-09 15:53:29.833 INFO 19844 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-09-09 15:53:29.833 INFO 19844 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.36]
2020-09-09 15:53:29.918 INFO 19844 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-09-09 15:53:29.918 INFO 19844 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1226 ms
2020-09-09 15:53:30.162 INFO 19844 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-09-09 15:53:31.160 INFO 19844 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator'
2020-09-09 15:53:31.201 INFO 19844 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9009 (http) with context path ''
2020-09-09 15:53:31.489 INFO 19844 --- [ main] c.yuwen.spring.config.ConfigApplication : Started ConfigApplication in 3.957 seconds (JVM running for 4.284)
2020-09-09 15:54:03.392 INFO 19844 --- [nio-9009-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-09-09 15:54:03.392 INFO 19844 --- [nio-9009-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-09-09 15:54:03.397 INFO 19844 --- [nio-9009-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 5 ms
2020-09-09 15:54:04.760 INFO 19844 --- [nio-9009-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/C:/Users/yuwen/AppData/Local/Temp/config-repo-5990891065379764128/application.yml (document #0)
8.测试效果
在浏览器中输入如下URL,
分别对应不同的文本输出,
表名拉取到了仓库中对应的配置。
8.1.master下的application.yml
http://localhost:9009/master/application.yml
{
"name": "master",
"profiles": [
"application.yml"
],
"label": null,
"version": "c8a86decaab4b20d7470e09e6b9da50ed69d5d32",
"state": null,
"propertySources": [
{
"name": "https://gitee.com/bugzeroman/spring-cloud-config.git/application.yml (document #0)",
"source": {
"spring.profiles.active[0]": "dev"
}
}
]
}
8.2.开发环境
http://localhost:9009/master/application-dev.yml
spring:
application:
name: config-server-dev
profiles:
active:
- dev
8.3.测试环境
http://localhost:9009/master/application-test.yml
spring:
application:
name: config-server-test
profiles:
active:
- dev
9.Config服务注册到Eureka
SpringCloud创建Config模块的更多相关文章
- SpringCloud创建Config读取本地配置
1.说明 Config Server获取配置支持的方式很多, 包括Git仓库(github/gitee等),任何与JDBC兼容的数据库, Subversion,Hashicorp Vault,Cred ...
- SpringCloud创建Config Client配置读取
1.说明 本文详细介绍配置中心客户端使用方法, 即Config Client到Config Server读取配置, 这里以创建Config Client服务为例, 基于已经创建好的Config Ser ...
- SpringCloud创建Eureka模块集群
1.说明 本文详细介绍Spring Cloud创建Eureka模块集群的方法, 基于已经创建好的Spring Cloud Eureka Server模块, 请参考SpringCloud创建Eureka ...
- SpringCloud创建Gateway模块
1.说明 本文详细介绍Spring Cloud创建Gateway模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 和已经创建好的Eureka ...
- SpringCloud创建Config Client通过Eureka访问Config
1.说明 本文详细介绍配置中心客户端使用方法, 即Config Client到Config Server读取配置. 读取配置的方式有两种, 第一种是直接配置Configer Server的URL, 第 ...
- SpringCloud创建Eureka模块
1.说明 本文详细介绍Spring Cloud创建Eureka模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 在里面创建Eureka模块, ...
- SpringCloud创建Config多客户端公共配置
1.说明 基于已经创建好的Spring Cloud配置中心, 在配置中心仅保存一套配置文件, 多个客户端可以通过配置中心读取到相同的配置, 而不需要在每个客户端重复配置一遍, 下面以一个Config ...
- SpringCloud创建Eureka Client服务注册
1.说明 本文详细介绍微服务注册到Eureka的方法, 即Eureka Client注册到Eureka Server, 这里用任意一个Spring Cloud服务为例, 比如下面已经创建好的Confi ...
- SpringCloud之Config
1.背景 在前的学习中,我们几乎解决了springCloud的所有常规应用,但是大家有没有想过这样一个问题: 是使用微服务后,有非常多的application.yml文件,每个模块都有一个,实际开发中 ...
随机推荐
- 【分布式】Zookeeper的Leader选举-选举过程介绍(经典的Paxos算法解析)
一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...
- java加密方式
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些 ...
- malloc() vs new
Following are the differences between malloc() and operator new. (1)new calls constructors, while ma ...
- 关于ssh-keygen 生成的key以“BEGIN OPENSSH PRIVATE KEY”开头
现在使用命令 ssh-keygen -t rsa 生成ssh,默认是以新的格式生成,id_rsa的第一行变成了"BEGIN OPENSSH PRIVATE KEY" 而不在是&q ...
- JSP常见的状态码
1.404错误 -- 找不到访问的页面或资源 a.URL输入错误: b.未部署项目. 2.500错误 -- JSP页面代码有错误 3.302状态码+200状态码 -- 重定向 4.200状态码 -- ...
- [IDEA] chapter_reader - idea看小说插件 idea阅读插件 idea摸鱼插件
目录 1. 简述: 2. 使用说明: 2.1 版本说明: 2.2 重要说明: 2.3 简单使用方法: 2.4 目前支持的网站有 (新↓): 2.5 菜单介绍: 2.6 快捷键设置及推荐: 2.7 在线 ...
- tableau添加参考线
一.将数据窗口切换至分析窗口-点击自定义-参考线 二.出现编辑参考线和参考区间的界面(整个表指的是整个视图,每区指的是如下2018就是一个区,每单元格指的是横轴的最小值) 三.我们分别为每区添加最大值 ...
- STL模板前言(1)
STL提供以下数据结构方便使用: 顺序容器: vector(动态数组):从后面直接插入删除元素,直接访问任何元素. deque(双端队列):从前面和后面快速插入删除,直接访问任何元素. list(双链 ...
- 从 CPython 源码角度看 Python 垃圾回收机制
环状双向链表 refchain 在 Python 程序中创建的任何对象都会被放到 refchain 链表中,当创建一个 Python 对象时,内部实际上创建了一些基本的数据: 上一个对象 下一个对象 ...
- 资源工作表中与资源有关的操作(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 这个内容,我需要专门写一篇吗? 不写吧,好像对不起我那股学习的劲:写吧,实在是--一句话就够了:所有与任务有关的新建.修改 ...