配置中心

一、配置中心服务端

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

二、配置中心客户端

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

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

  1. git配置文件演示

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

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

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

整合bus的方案

服务端修改:

  1. 加依赖
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.cloud</groupId>
  7. <artifactId>spring-cloud-starter-bus-amqp</artifactId>
  8. </dependency>
  1. 启动一个rabbitmq
  2. 配置文件
  1. spring:
  2. cloud:
  3. bus:
  4. enabled: true
  5. trace:
  6. enabled: true
  7. rabbitmq:
  8. host: localhost
  9. port: 5672
  10. username: guest
  11. password: guest
  12. management:
  13. endpoints:
  14. web:
  15. exposure:
  16. include: "bus-refresh"

客户端:

  1. 加依赖
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.cloud</groupId>
  7. <artifactId>spring-cloud-starter-bus-amqp</artifactId>
  8. </dependency>
  1. 加注解

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

  1. @RestController
  2. @RefreshScope
  3. public class ConfigTestController {
  4. @Value("${ordernotiry}")
  5. private Boolean ordernotiry;
  6. @RequestMapping("/testconfig")
  7. public String testconfig(){
  8. return String.valueOf(ordernotiry);
  9. }
  10. }
  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里不行)文件里加配置
  1. encrypt:
  2. key: trademmc
  1. 测试

http://localhost:9100/encrypt/status

返回OK代表配置成功

5. 测试加密方法

  1. 解密方法

http://localhost:9100/decrypt

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

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

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

避免直接访问配置文件

  • 在config-server里加依赖
  1. <!-- 安全配置 -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-security</artifactId>
  5. </dependency>
  • bootstrap.yml配置文件里开启
  1. spring:
  2. security:
  3. user:
  4. name: root
  5. password: 123456
  6. basic:
  7. enable: true
  • 客户端里也要配置相应的密码
  1. spring:
  2. cloud:
  3. config:
  4. uri: http://localhost:9100
  5. profile: test
  6. label: master
  7. username: root
  8. 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. 利用JDBC工具类添加和查询数据-Java(新手)

    JDBC工具类: 1 package cn.lxr.jdbclx; 2 3 import java.sql.*; 4 5 public class JDBCUtils { 6 private stat ...

  2. ubuntu 16.04服务器安装apache2 + php + mysql

    具体操作 第一步:安装mysql apt-get install mysql-server mysql-client 第二步:安装apache2 apt-get install apache2 第三步 ...

  3. 实用干货丨如何使用Prometheus配置自定义告警规则

    前 言 Prometheus是一个用于监控和告警的开源系统.一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一.从整个Linux服务器 ...

  4. Leetcode_面试题 17.24. 最大子矩阵

    最大子矩阵问题,n是200,枚举上下行,O(N)求一下最大子段和. code class Solution { public: vector<int> getMaxMatrix(vecto ...

  5. SCF(SenparcCoreFramework) 系列教程(一):项目介绍及快速搭建

    2020年3月25日的“盛派周三分享”活动首次使用直播的方式与大家见面,共有 500 多人参与了活动,得到了众多开发者的好评,并强烈要求我分享 PPT,这点要求当然必须满足啦! 除此以外,还有许多开发 ...

  6. JSP(三)----EL表达式

    ##  EL表达式 1.概念:Expression  alnguage  表达式语言 2.作用:替换和简化JSP页面中java代码的编写 3.语法:${表达式} 4.注意: *  jsp默认支持EL表 ...

  7. JDK下载、安装、卸载

    学习java的朋友,第一课就是安装JDK,如果你连他都不会安装,那就非常尴尬,如果面试的时候如果问到这个问题,就Game over了,下面来看看怎么弄吧! 了解JDK JDK的全称是JavaSE De ...

  8. CodeForces 196B Infinite Maze

    Infinite Maze time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  9. Building Applications with Force.com and VisualForce (DEV401) (二四):JavaScript in Visualforce

    Dev401-025:Visualforce Pages: JavaScript in Visualforce Module Objectives1.Describe the use of AJAX ...

  10. 机器学习算法系列:FM分解机

    在线性回归中,是假设每个特征之间独立的,也即是线性回归模型是无法捕获特征之间的关系.为了捕捉特征之间的关系,便有了FM分解机的出现了.FM分解机是在线性回归的基础上加上了交叉特征,通过学习交叉特征的权 ...