文档章节

mars-config 动态配置管理

f
 fashionbrot
发布于 2019/12/12 01:08
字数 609
阅读 460
收藏 0

mars-config

github地址:https://github.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 提出问题我们非常认真地对待错误和缺陷

© 著作权归作者所有

f

fashionbrot

粉丝 2
博文 4
码字总数 3844
作品 3
海淀
私信 提问
spring mvc 、springboot 动态配置系统 - mars-config

mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :springboot mybatis jwt 前端使用:thymeleaf 模板引擎 数据库...

fashionbrot
2019/12/12
615
0
不需要容器的 Java Web 开发框架 - Mars-java

一个来自火星的框架 我是谁 Mars-java是一个不需要容器的javaWeb开发框架,以netty作http服务管理,支持AOP,IOC,MVC,并且集成了Mybatis作为持久层,除此之外还提供了Mars-config 来支撑远程配...

贝克街的天才
2019/03/18
6.8K
7
SherlockHolmnes/Mars-java

一个来自火星的框架 我是谁 Mars-java是一个不需要容器的javaWeb开发框架,以netty作http服务管理,支持AOP,IOC,MVC,并且集成了Mybatis作为持久层,除此之外还提供了Mars-config 来支撑远程配...

SherlockHolmnes
2019/04/21
0
0
Mars-java 2.2.2 发布,不需要容器的 Java Web 开发框架

本次更新如下: 取消了MarsMapping注解,Controller里的所有public方法会自动映射成一个http接口,默认请求方式为get 新增了RequestMethod注解,用来指定http接口的请求方式(不加默认为get...

贝克街的天才
2019/10/22
3.6K
8
新手看招:关闭Linux系统下不必要的服务

chkconfig --list 显示。 chkconfig [service] off 关闭其中一个服务。 守候进程名字功能对照表。 amd:自动安装NFS(网络文件系统)守侯进程。 apmd:高级电源管理。 Arpwatch:记录日志并构...

JavaGG
2009/05/08
519
0

没有更多内容

加载失败,请刷新页面

加载更多

Kettle自定义jar包供javascript使用

我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法。所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用。 本篇文章有参考自:https://www...

CREATE_17
昨天
82
0
处理CSV文件中的逗号

我正在寻找有关如何处理正在创建的csv文件的建议,然后由我们的客户上传,并且该值可能带有逗号(例如公司名称)。 我们正在研究的一些想法是:带引号的标识符(值“,”值“,”等)或使用|...

javail
昨天
79
0
如何克隆一个Date对象?

将Date变量分配给另一个变量会将引用复制到同一实例。 这意味着更改一个将更改另一个。 如何实际克隆或复制Date实例? #1楼 简化版: Date.prototype.clone = function () { return new ...

技术盛宴
昨天
73
0
计算一个数的数位之和

计算一个数的数位之和 例如:128 :1+2+8 = 11 public int numSum(int num) { int sum = 0; do { sum += num % 10; } while ((num = num / 10) > 0); return sum;......

SongAlone
昨天
124
0
为什么图片反复压缩后普遍会变绿,而不是其他颜色?

作者:Lion Yang 链接:https://www.zhihu.com/question/29355920/answer/119088684 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 业余版概要:安卓的...

shzwork
昨天
71
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部