spring boot接入nacos 配置中心

再接入nacos配置中心时,需要确认几点:

1. spring boot 版本 (spring boot 2.x )

2. nacos 配置中心 服务端 版本 (1.1.4)

3. nacos client 客户端版本 (1.1.4)

方式一

1. 启动 nacos 服务端,这里不做解释

在配置中心中加入几个配置

2. 在自己的应用里引入 依赖包

<dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.8</version>
        </dependency>

注意, nacos-config-spring-boot-starter 的版本内 引入了 nacos-client,需要注意引入的版本 是否与nacos服务端匹配。如果不匹配,可能会有问题。

这里使用的 nacos 服务端 是 1.x版本,所有引入的包也是1.x的才可以。

3. 配置 nacos 服务端地址

nacos.config.server-addr= localhost:8848 

4.  在spring boot 启动类 加入 注解

如果是 只有一个 dataId,使用 @NacosPropertySource

如果有 多个 dataId,使用 @NacosPropertySources

@SpringBootApplication
@NacosPropertySources({
        @NacosPropertySource(dataId = "springboot-nacos-hello", autoRefreshed = true,type = ConfigType.PROPERTIES),
        @NacosPropertySource(dataId = "useLocalCache", autoRefreshed = true,type = ConfigType.PROPERTIES)
})
public class NacostestApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacostestApplication.class, args);
    }

}

5. 读取 配置

使用 注解 @NacosValue

    @NacosValue(value = "${hi}", autoRefreshed = true)
    private String useLocalCache;

方式二:

引入依赖

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.1.4</version>
        </dependency>

直接调用api

@Component
public class ConfigS {
    @Bean
    public ConfigService configService() {
        try {
            Properties properties = new Properties();
            properties.setProperty("serverAddr", "localhost:8848");
            ConfigService configService = NacosFactory.createConfigService(properties);
            configService.addListener("springboot-nacos-hello", "DEFAULT_GROUP", new Listener() {
                @Override
                public Executor getExecutor() {
                    return null;
                }

                @Override
                public void receiveConfigInfo(String configInfo) {
                    // 配置更新处理逻辑
                    System.out.printf(configInfo);

                }
            });
            return configService;
        } catch (Exception e) {
            return null;
        }
    }
}
configService.getConfig("springboot-nacos-hello","DEFAULT_GROUP",10000)

这种方式 只是简单的拉去配置中心的内容,需要自己解析 配置内容和监听更新

方案三

引入依赖包

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>com.alibaba.nacos</groupId>
                    <artifactId>nacos-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.1.4</version>
        </dependency>

 在 bootstrap.properties 文件中配置属性:

#服务地址
spring.cloud.nacos.config.server-addr= localhost:8848


#共享配置
spring.cloud.nacos.config.shared-dataids=a.properties,b.properties
spring.cloud.nacos.config.refreshable-dataids=a.properties

#扩展配置
spring.cloud.nacos.config.ext-config.0.data-id=useLocalCache.properties
spring.cloud.nacos.config.ext-config.0.refresh=true
spring.cloud.nacos.config.ext-config.1.data-id=useLocalCache2.properties

#当前应用
spring.cloud.nacos.config.prefix=app
spring.cloud.nacos.config.file-extension= properties

读取配置: 使用@Value 注解

@Value(value = "${hi}")
private String useLocalCache;

 

nacos配置中心添加配置

 

共有三种配置:

1. 加载共享配置

sharedDataids 注意: 需要有后缀

refreshableDataids

分隔符 "[,]"

2. 加载扩展配置

extConfig 数组结构

dataId 必须有后缀

3. 加载应用级别的配置

读取 prefix /name/spring.application.name 属性

作为dataId

1. 直接加载 dataId

2. 加载 dataId.fileExtension

3. 加载 dataId - profile . fileExtension

覆盖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值