使用nacos作为配置中心,在非spring项目,直接使用nacos的 Java sdk也还是简单的。

nacos Java SDK 1.3.1 来实现配置管理

要是套上Spring的情况下。这个例子就是Spring boot + nacos来实现配置中心。好多例子都是只一个dataId,我这带上dataId groupId namespace的设置。

    <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,自动监听更新

@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使用的值就变了。

实际测试的图

本次测试代码,放在github上了。有需要的可以看一下。

IT虾米网

从截图上看,还有这么些个选项是可以配置的。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!