使用mars 动态配置中心步骤
一、克隆github 项目到本地 地址:https://github.com/fashionbrot/mars-config.git
二、找到 init.sql 穿件库 mars_test 而后导入数据库
三、找到 项目中mars-console 控制台项目,配置application.properties中的数据库配置
四、以上配置好,打war包 放置tomcat ,启动tomcat服务便可
登陆 http://localhost:8080/ 帐号和密码一致:mars html
五、进入动态配置中心后
- 应用环境管理 -》应用列表 -》新增 建立应用
- 应用环境管理 -》环境列表 -》新增 建立环境 (生产环境建立一个就行)(测试环境可建立 BetaA、BetaB ...)
- 在 配置管理->配置列表 中配置 环境应用须要的配置内容
- 新增环境应用对于的配置 test 文件
- 新增完配置,配置可操做权限
- 配置好权限而后发布
六、在本身项目中添加 xml 配置
<dependency> <groupId>com.github.fashionbrot</groupId> <artifactId>mars-spring-config</artifactId> <version>0.1.1</version> </dependency>
七、在本身项目的 application.propeties 配置文件配置如下
一、application.propeties 配置下增长
mars.config.app-id=app-server mars.config.env-code=betaA mars.config.http.server-address=http://localhost:8080
二、建立 启动类
package com.github.fashionbrot.springboot; import com.github.fashionbrot.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); } }
三、建立 TestConfig 类
package com.github.fashionbrot.springboot.config; import com.github.fashionbrot.spring.properties.annotation.MarsConfigurationProperties; import com.github.fashionbrot.spring.properties.annotation.MarsIgnoreField; import com.github.fashionbrot.spring.properties.annotation.MarsProperty; import lombok.Data; import org.springframework.stereotype.Component; @MarsConfigurationProperties(fileName = "test",autoRefreshed = true) @Data public class TestConfig { @MarsProperty("abc") public String name ; @MarsProperty("test") public String appName ; @MarsIgnoreField private String sgrTest; }
四、建立接口类
package com.github.fashionbrot.springboot.controller; import com.github.fashionbrot.springboot.config.TestConfig; import com.github.fashionbrot.spring.enums.ConfigTypeEnum; import com.github.fashionbrot.spring.listener.annotation.MarsConfigListener; import com.github.fashionbrot.spring.value.MarsValue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Properties; @Controller public class TestController { /** * 方式1 获取 abc 配置 */ @MarsValue(value = "${abc}",autoRefreshed = true) private String abc; @RequestMapping("/test") @ResponseBody public String test(){ return abc; } /** * 方式2 根据类获取 配置 */ @Autowired private TestConfig testConfig; @RequestMapping("/test2") @ResponseBody public String test2(){ return testConfig.appName+":"+testConfig.name; } /** * 方式三根据 配置发生变化获取到监听 * @param properties */ @MarsConfigListener(fileName = "test",type = ConfigTypeEnum.TEXT,autoRefreshed = false) public void testP(String properties){ System.out.println(properties.toString()); } /** @MarsConfigListener(fileName = "app.text",type = ConfigTypeEnum.TEXT) public void testT(String properties){ System.out.printf(properties.toString()); } @MarsConfigListener(fileName = "app.yaml",type = ConfigTypeEnum.YAML) public void testY(Properties properties){ System.out.printf(properties.toString()); }*/ }
五、访问接口
/** * 方式三根据 配置发生变化获取到监听 * @param properties */ @MarsConfigListener(fileName = "test",type = ConfigTypeEnum.TEXT,autoRefreshed = false) public void testP(String properties){ System.out.println(properties.toString()); } 输出如下 {"content":"test=test1234\r\nabc=abc1234","dataConfig":{"appId":"app-server","configType":"PROPERTIES","content":"test=test1234\r\nabc=abc1234","envCode":"betaA","fileName":"test","version":"157554474787979264"},"timestamp":1586514314255}
六、若是 mars-console 服务挂掉,使用的服务优先加载本地缓存的配置文件
项目地址:https://github.com/fashionbrot/mars-config/tree/master/mars-test/springboot-testjava