使用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