非spring boot (即spring) 使用/集成 Spring cloud Config 分布式配置中心

非spring boot 使用Spring cloud Config (老版 spring 集成 spring cloud config ) || spring cloud config 搭建
个人博客:https://eric-ly.github.io/

背景:想自己搭建一个分布式的配置中心,发现spring Cloud Config 不错,(后台基于git,可以配置webhook 实现热更新、回滚,分环境配置等)与自己的期望相近。

虽然好用但是基于spring boot的,spring 与spring boot 还是有挺多巨别。为了能用在现有的 项目中,决定 想办法集成一下,百度 google 都没有现成的可以copy…

于是想自己实现下,查询之后 按照一个大神的想法实现了下。中间遇到许多问题,不过更加了解spring了 也会继续完善。java 新人 希望各位大神多多指导。

github:https://github.com/Eric-ly/hconfig

后面有项目的测试说明:

实现结果:

在spring 中 使用spring Cloud Config 功能,分项目/环境 获取配置文件,自动注入,自动更新 spring boot的注解无法兼容 待稍后解决。

前提:

一个简单的spring spring MVC 项目。

config server 配置好,github 配置好。 这个网上百度就有很多。

(在搭建spring cloud config (server and client)后,搭建注册应用中心 eureka 和 rabbitMq 进行自动热更新。)

实现方式:

1.创建自定义的ApplicationContext,先通过在web.xml中设置 contextClass 来指定应用使用自定义的ApplicationContext,

2.在自定义的applicationContext中 覆写 创建environment的方法,用来定制 environment,把config server的配置信息加入 应用

3.自定义的CloudEnvironment extends StandardServletEnvironment,扩展customizePropertySources方法,指定 配置的来源,然后放入 propertySource的list中,作为整个项目的 配置之一。

4.自定义propertySouce ,使用spring cloud client的ConfigClientProperties 作为 propertySouce的来源, 然后添加到PropertySource中

5.自定义配置类,将配置中心的配置按照单个/model 进行注入

后期实现:

(1)兼容@refresh的注解,使 自动更新。

(2)通过修改name 获取多个配置文件。优化config server的文件

(3)细化 回滚功能

(4)写 拦截器,打成jar包,成为一个工具包,通过自定义注解 来使用。隐藏实现。成为一个通用的功能

最近有点忙,这个项目先达到能基本用,慢慢完善。

具体实现步骤:

1.增加pom 依赖,spring mvc ,spring cloud,logback 等

    <properties>
        <spring.version>4.2.9.RELEASE</spring.version>
        <jstl.version>1.2</jstl.version>
        <junit.version>4.11</junit.version>
        <logback.version>1.0.13</logback.version>
   
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值