使用nacos做爲配置中心,在非spring項目,直接使用nacos的 Java sdk也仍是簡單的。html
nacos Java SDK 1.3.1 來實現配置管理java
要是套上Spring的狀況下。這個例子就是Spring boot + nacos來實現配置中心。好多例子都是隻一個dataId,我這帶上dataId groupId namespace的設置。git
<properties> <nacos-config-spring-boot.version>0.2.1</nacos-config-spring-boot.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>${nacos-config-spring-boot.version}</version> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-actuator</artifactId> <version>${nacos-config-spring-boot.version}</version> </dependency> </dependencies>
application.properties 的內容,namespace在這兒設置 nacos.config.server-addr=192.168.1.191:8848 nacos.config.namespace=test management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always
@SpringBootApplication @NacosPropertySource(dataId = "lxk", groupId = "test", autoRefreshed = true) public class NacosConfigApplication { public static void main(String[] args) { SpringApplication.run(NacosConfigApplication.class, args); } }
主要類。設置類使用的是nacos server的哪一個dataId和groupId,自動監聽更新github
@Controller @RequestMapping("config") public class ConfigController { @NacosValue(value = "${useLocalCache:false}", autoRefreshed = true) private boolean useLocalCache; @NacosValue(value = "${name:lxk-test}", autoRefreshed = true) private String name; @NacosValue(value = "${age:18}", autoRefreshed = true) private int age; @RequestMapping(value = "/get", method = GET) @ResponseBody public String get() { Map<String, Object> map = Maps.newHashMap(); map.put("useLocalCache", useLocalCache); map.put("name", name); map.put("age", age); return JsonUtils.parseObjToFormatJson(map); } }
使用配置的類,相似Spring的@value註解,這地方換成了@NacosValue 。能夠感知更新。當nacos server的配置修改變化以後,再次發佈的時候,這個controller使用的值就變了。web
實際測試的圖spring
本次測試代碼,放在github上了。有須要的能夠看一下。app
從截圖上看,還有這麼些個選項是能夠配置的。測試