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

使用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

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

從截圖上看,還有這麼些個選項是能夠配置的。測試

相關文章
相關標籤/搜索