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文件,每个模块都有一个,实际开发中 ...
随机推荐
- SVN终端演练(个人开发\多人开发)
SVN终端演练(个人开发) ### 1. 命令格式 命令行格式: svn <subcommand> [options] [args] svn 子命令 [选项] [参数] ...
- 注册页面css版本
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- jdk1.7源码之-hashMap源码解析
背景: 笔者最近这几天在思考,为什么要学习设计模式,学些设计模式无非是提高自己的开发技能,但是通过这一段时间来看,其实我也学习了一些设计模式,但是都是一些demo,没有具体的例子,学习起来不深刻,所以 ...
- SQL注入 (1) SQL注入类型介绍
SQL注入 SQL注入介绍与分类 1. 什么是sql注入 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 2. sql注入类型 按照注入 ...
- 【C/C++】字符数组:char,char*,char a[], char *a[], char **s 的区别与联系/const char*和char*的区别
一.char,char*,char a[], char *a[], char **s 的区别与联系 C语言中的字符串是字符数组,可以像处理普通数组一样处理字符串. 可以理解为在内存中连续存储的字符. ...
- Apache log4j2 远程代码执行漏洞复现👻
Apache log4j2 远程代码执行漏洞复现 最近爆出的一个Apache log4j2的远程代码执行漏洞听说危害程度极大哈,我想着也来找一下环境看看试一下.找了一会环境还真找到一个. 漏洞原理: ...
- pf4j及pf4j-spring
什么是PF4J 一个插件框架,用于实现插件的动态加载,支持的插件格式(zip.jar). 核心组件 Plugin:是所有插件类型的基类.每个插件都被加载到一个单独的类加载器中以避免冲突. Plugin ...
- [BUUCTF]PWN13——ciscn_2019_n_8
[BUUCTF]PWN13--ciscn_2019_n_8 题目网址:https://buuoj.cn/challenges#ciscn_2019_n_8 步骤: 例行检查,32位,保护开的挺多,ca ...
- 【Azure Redis 缓存】Azure Cache for Redis 中如何快速查看慢指令情况(Slowlogs)
问题描述 当 Azure Redis 服务器负载过高的情况下,使用时就会遇见连接超时,命令超时,IO Socket超时等异常.为了能定位是那些因素引起的,可以参考微软官方文档( 管理 Azure Ca ...
- springboot 整合activemq
1.配置连接信息 spring: activemq: broker-url: tcp://192.168.1.28:61616 user: admin password: 123456 package ...