mars-config是spring mvc 、springboot 动态配置系统。支持http 轮训方式、更新、动态配置。
软件架构说明
后端使用技术 :springboot mybatis jwt
前端使用:thymeleaf 模板引擎
数据库 :mysql
jdk :1.8
1、mars.config.app-id 服务名 和 后端appName 一致
2、mars.config.env-code 环境Code 和 后端envCode 一致
3、mars.config.http.server-address 服务Ip,多个服务地址已逗号分隔
1、应用环境管理 菜单 创建 应用、环境
2、配置管理 菜单 创建配置 点击发布,依赖 mars-spring-config 就会收到服务端修改内容
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); } }
@MarsValue(value = "${abc}",autoRefreshed = true) private String abc;
@ConfigurationProperties 功能相似
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; }
@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()); }
mars.config.app-id=app mars.config.env-code=betaXX mars.config.http.server-address=192.168.0.108:8080
参考使用demo
GitHub地址:https://github.com/fashionbrot/mars-config