【實時推送演示】
一、程式連線Apollo配置
1、在專案pom中增加Apollo客戶端依賴
app: id: ${app_ip:gray_apollo}apollo: cluster: ${apollo_cluster:default} bootstrap: enabled: ${apollo_bootstrap:true} name spaces: ${apollo_namespaces:grayapollo} meta: ${apollo_meta:http://127.0.0.1:8080}3、啟動專案後,可以在Apollo配置中心看到注入一個例項
二、@value型別,程式演示
1、演示程式碼
package com.zhanghan.grayapollo.controller;import com.zhanghan.grayapollo.util.wrapper.WrapMapper;import com.zhanghan.grayapollo.util.wrapper.Wrapper;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;import java.util.Map;@RestController@Api(value = "演示Apollo控制器",tags = {"演示Apollo控制器"})public class DynamicController { @Value("${zh.int}") private Integer zhInt; @Autowired private RedisTemplate<String, String> strRedisTemplate; @ApiOperation(value="測試通過@value注入資料",tags = {"演示Apollo控制器"}) @RequestMapping(value = "/test/value", method = RequestMethod.POST) public Wrapper testValue() { Map<String, Object> map = new HashMap(); map.put("zhTest", zhInt); return WrapMapper.ok(map); }}
2、啟動專案後,在swagger中訪問
3、在Apollo上修改zh.int的值
4、在Apollo上釋出此次修改
5、檢視專案日誌(發現值已經推送到程式)
6、再次通過swagger訪問此介面(驚奇發現程式值已修改為8)
7、小結:
以上為大家演示,在不用重啟程式情況下,讓配置檔案改變@value讀取值進行更改。
三、專案地址
灰度實戰:github dangnianchuntian/gray
【總結】1、本節第一部分為大家演示Apollo動態更新@value值,這個功能應用特別實用,比如一些閾值的設定等等。
2、下一篇為大家演示如何接收Apollo動態更新連第三方中介軟體的連線池(以redis連線池為例)。
最新評論