• 81890

    文章

  • 734

    评论

  • 18

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

mars-config 动态配置管理

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

mars-config

 码云地址:https://gitee.com/fashionbrot/mars-config

介绍

spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 

软件架构

软件架构说明

后端使用技术 :springboot mybatis jwt

前端使用:thymeleaf 模板引擎

数据库 :mysql

jdk :1.8

安装教程

  1. 先创建数据库mars_db ,导入 sql目录下的 init.sql 文件
  2. mars-console 后端管理页面,直接使用外置tomcat 启动即可 端口默认:8080
  3. mars-spring-config 发布jar 后依赖当前jar 即可使用
  4. 访问地址:ip + port 账户:mars 密码:mars 权限:超级管理员

使用说明

  1. 在启动类上使用 @EnableMarsConfig 开启功能使用

    1、mars.config.app-id 服务名 和 后端appName 一致

    2、mars.config.env-code 环境Code 和 后端envCode 一致

    3、mars.config.http.server-address 服务Ip,多个服务地址已逗号分隔

  2. 在后端管理操作

    1、应用环境管理 菜单 创建 应用、环境

    2、配置管理 菜单 创建配置 点击发布,依赖 mars-spring-config 就会收到服务端修改内容

  3. springboot 具体使用步骤

1、在启动类上添加 @EnableMarsConfig 开启mars 动态配置

import com.gitee.mars.spring.config.annotation.EnableMarsConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableMarsConfig
public class Main  extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

2、通过 @MarsValue 获取动态配置的值 如同spring @Value 功能 autoRefreshed 表示是否自动更新当前值

@MarsValue(value = "${abc}",autoRefreshed = true)
    private String abc;

3、通过@MarsConfigurationProperties 注解把对应配置映射到 TestConfig 类中,如springboot @ConfigurationProperties 功能相似

@MarsProperty 读取配置key @MarsIgnoreField忽略abc字段配置

import com.gitee.mars.spring.properties.annotation.MarsConfigurationProperties;
import com.gitee.mars.spring.properties.annotation.MarsIgnoreField;
import com.gitee.mars.spring.properties.annotation.MarsProperty;
import lombok.Data;


@Data
@MarsConfigurationProperties(fileName = "aaa",autoRefreshed = true)
public class TestConfig {

    @MarsProperty("abc")
    public String name ;

    @MarsIgnoreField
    private String abc;
}

4、通过 @MarsConfigListener 监听文件变化,可根据需要使用

@MarsConfigListener(fileName = "aaa",type = ConfigTypeEnum.TEXT)
    public void marsConfigListenerTest(String context){
        System.out.print(context);
    }

    @MarsConfigListener(fileName = "aaa",type = ConfigTypeEnum.PROPERTIES)
    public void marsConfigListenerProperties(Properties properties){
        System.out.print(properties.toString());
    }

5、在配置文件中添加以下配置

mars.config.app-id=app
mars.config.env-code=betaXX
mars.config.http.server-address=192.168.0.108:8080

6、可通过 mars-test项目中的 springboot-test 参考使用 demo

7、后端管理系统支持 properties yaml text 三种配置格式

8、后端管理系统支持 权限管理,可根据不同人分配不同菜单、不同配置权限

9、如有问题请通过 mars-issue 提出问题我们非常认真地对待错误和缺陷


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客