使用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
从截图上看,还有这么些个选项是能够配置的。测试