Spring boot nacos config 配置中心的例子,自定义dataId groupId namespace

使用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上了。有需要的可以看一下。

https://github.com/cmshome/nacos-examples/tree/master/nacos-spring-boot-example/nacos-spring-boot-config-example

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

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页