配置中心

一、配置中心服务端

  1. 新建项目study-config-server
  2. 引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
  1. 加配置文件
server:
port: 9100
spring:
application:
name: study-config-server
cloud:
config:
server:
git:
uri: https://github.com/mmcLine/cloudconfigTest.git
username: mmcLine
password: ********
  1. 加注解 @EnableConfigServer
@SpringBootApplication
@EnableConfigServer
public class StudyConfigApplication { public static void main(String[] args) {
SpringApplication.run(StudyConfigApplication.class);
}
}
  1. 创建一个git项目,并在根目录下新建一个application.yml文件
spring:
profiles:
active: test
---
spring:
profiles: test
application:
name: config-test server:
port:9101
---
spring:
profiles: prod
application:
name: config-prod server:
port:9102
  1. 访问规则

二、配置中心客户端

  1. 引入依赖
 <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
  1. 配置文件,新增bootstrap.yml文件
spring:
application:
name: study-trade
cloud:
config:
uri: http://localhost:9100
profile: test
label: master

注意:git上的配置yml文件名要对应这里配置的spring.application.name

  1. git配置文件演示

  1. 测试配置是否生效
@RestController
public class ConfigTestController { @Value("${ordernotiry}")
private Boolean ordernotiry; @RequestMapping("/testconfig")
public String testconfig(){
return String.valueOf(ordernotiry);
}
}

到此最简单的配置中心搭建完成!!!

三、升级不重启修改配置文件

整合bus的方案

服务端修改:

  1. 加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
  1. 启动一个rabbitmq
  2. 配置文件
spring:
cloud:
bus:
enabled: true
trace:
enabled: true
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest management:
endpoints:
web:
exposure:
include: "bus-refresh"

客户端:

  1. 加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
  1. 加注解

在读取配置的类上加@RefreshScope注解

@RestController
@RefreshScope
public class ConfigTestController { @Value("${ordernotiry}")
private Boolean ordernotiry; @RequestMapping("/testconfig")
public String testconfig(){
return String.valueOf(ordernotiry);
}
}
  1. git上修改配置文件后,post方式调用http://localhost:9100/actuator/bus-refresh即可

四、配置加密

  1. 下载jce文件

https://www.oracle.com/java/technologies/javase-jce8-downloads.html

  1. 放入Java\jdk1.8.0_112\jre\lib\security目录下替换掉原有jar包
  2. 在config-server的bootstrap.yml(application.yml里不行)文件里加配置
encrypt:
key: trademmc
  1. 测试

http://localhost:9100/encrypt/status

返回OK代表配置成功

5. 测试加密方法

  1. 解密方法

http://localhost:9100/decrypt

  1. 在配置文件中就可以写密文了

密文内容前需要写{cipher},并且用单引号括起来

loginpass: '{cipher}941c15446567e8211931cf0d25f81696871f5a5ea74fac46638eed71db24e76b'
  1. 加上安全配置

避免直接访问配置文件

  • 在config-server里加依赖
 <!-- 安全配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
  • bootstrap.yml配置文件里开启
spring:
security:
user:
name: root
password: 123456
basic:
enable: true
  • 客户端里也要配置相应的密码
spring:
cloud:
config:
uri: http://localhost:9100
profile: test
label: master
username: root
password: 123456

git地址:https://github.com/mmcLine/spring-cloud-study

从零搭建一个SpringCloud项目之Config(五)的更多相关文章

  1. 从零搭建一个SpringCloud项目之Feign搭建

    从零搭建一个SpringCloud项目之Feign搭建 工程简述 目的:实现trade服务通过feign调用user服务的功能.因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要 ...

  2. 从零搭建一个SpringCloud项目之Zuul(四)

    整合Zuul 为什么要使用Zuul? 易于监控 易于认证 减少客户端与各个微服务之间的交互次数 引入依赖 <dependency> <groupId>org.springfra ...

  3. 从零搭建一个IdentityServer——项目搭建

    本篇文章是基于ASP.NET CORE 5.0以及IdentityServer4的IdentityServer搭建,为什么要从零搭建呢?IdentityServer4本身就有很多模板可以直接生成一个可 ...

  4. 使用Vue脚手架(vue-cli)从零搭建一个vue项目(包含vue项目结构展示)

    注:在搭建项目之前,请先安装一些全局的工具(如:node,vue-cli等) node安装:去node官网(https://nodejs.org/en/)下载并安装node即可,安装node以后就可以 ...

  5. 从零搭建一个IdentityServer——目录(更新中...)

    从零搭建一个IdentityServer--项目搭建 从零搭建一个IdentityServer--集成Asp.net core Identity 从零搭建一个IdentityServer--初识Ope ...

  6. vue-用Vue-cli从零开始搭建一个Vue项目

    Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对 ...

  7. 基于 Express 搭建一个node项目 - 起步

    一,如何基于 Express 搭建一个node项目 什么是Express 借用官方的介绍,Express是一个基于Node.js平台的极简.灵活的web应用开发框架,它提供了一系列强大的特性,帮助你创 ...

  8. 从零开始搭建一个react项目

    Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...

  9. 完整搭建一个vue项目

    目录 一. 搭建一个vue项目的完整步骤 二. 卸载vue-cli 三. 完全卸载webpack 一. 搭建一个vue项目的完整步骤 1.安装node.js 下载地址 # 检查是否安装成功 node ...

随机推荐

  1. java集合-把商品放入集合中调用(新手)

    //创建的一个包名. package qige; //导入的一个包.import java.util.*; //定义一个类.public class Ipcs { //公共静态的主方法. public ...

  2. linux下怎么找到某些命令出自于哪个包

    我们经常会遇到新装机器或者用别人的linux机器的时候找不到某个命令出自哪个软件包而不知道如何安装的情况,用如下命令可以解决 yum provides TARGET 举例说明: #要找到lsb-rel ...

  3. 基于 HTML5 WebGL 与 GIS 的智慧机场大数据可视化分析

    前言:大数据,人工智能,工业物联网,5G 已经或者正在潜移默化地改变着我们的生活.在信息技术快速发展的时代,谁能抓住数据的核心,利用有效的方法对数据做数据挖掘和数据分析,从数据中发现趋势,谁就能做到精 ...

  4. 【Java】反射调用与面向对象结合使用产生的惊艳

    缘起 我在看Spring的源码时,发现了一个隐藏的问题,就是父类方法(Method)在子类实例上的反射(Reflect)调用. 初次看到,感觉有些奇特,因为父类方法可能是抽象的或私有的,但我没有去怀疑 ...

  5. docker redis安装及配置(外网访问 关闭安全限制 设置密码)

    docker run -p 6379:6379 --name redis -v /usr/local/redis/etc/redis.conf:/etc/redis/redis.conf -v /us ...

  6. JavaWeb----Cookie&Session

    ##  会话技术 1.会话:一次会话中包含多次请求和响应. *  第一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止. 2.功能:再一次会话的范围内的多次请求间,共享数据 3. ...

  7. PHP之从反向删除单链表元素的问题谈起

    在完成一个单链表的删除指定元素的题目中,我发现了一件神奇的事情,php对象赋值给另外一个变量后,可以如同引用传值一般继续利用新的变量来实现链表的链接. 后面经过查证后发现: PHP7.0版本除了对象, ...

  8. 图-连通分量-DFS-并查集-695. 岛屿的最大面积

    2020-03-15 16:41:45 问题描述: 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合.你可以假设二 ...

  9. Contest 152

    2019-09-01 20:59:55 总体感受:最近几次参加contest发现自己的水平还是严重的不够,尤其是在处理一些异常情况的时候,遇到TLE,MLE如何有效的进行Debug是需要去锻炼的. 注 ...

  10. spring-boot-plus-v2.0发布了-让天下没有难写的代码

    spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot脚手架 前后端分离,专注于后端服务 目标 每个人都可以独立.快速.高效地开发项目! GITHUB | GI ...