SpringDemo(6)--项目中集成nacos

一、将配置文件放到nacos服务端,项目从nacos服务端读取配置文件

1、前提说明

2、pom.xml 中,增加 nacos依赖

<!-- nacos 配置 -->
<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     <version>2.2.9.RELEASE</version>
     <exclusions>
         <exclusion>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-netiflix-ribbon</artifactId>
         </exclusion>
     </exclusions>
 </dependency>

3、删除 application.yml 文件,新建 bootstrap.yml 文件。bootstrap.yml 文件内容如下:

【特别注意】:(1)依赖nacos后,配置文件名改为了 bootstrap.yml 。(2)其中,namespace 要写命名空间ID,不要写public、dev等。

spring:
  application:
    name: user-service
  cloud:
    # nacos配置
    nacos:
      username: nacos  #nacos服务端的登录用户名
      password: nacos  #nacos服务端的登录密码
      config:
        server-addr: ${nacos-server-addr}
        namespace: a31af456-634b-470c-827a-67ace200t  #注意要写命名空间ID,不要写public、dev等
        group: DEFAULT_GROUP
        file-extension: yml
  profiles:
    active: env


# nacos server地址
nacos-server-addr: 127.0.0.1:8848

4、项目启动类,加上 @EnableDiscoveryClient 注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class UserApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
        System.out.println("用户服务,启动完成");
    }
}

5、nacos服务端,在对应的命名空间下 新建配置文件,文件名为"user-service-env.yml"。文件内容如下:

spring:
  application:
    name: user-service

server:
  port: 8081


developer:
  id: OHZ
  name: 平凡英雄
  desc: 一位热爱技术的开发者。因为热爱,所以无所畏惧。

二、从nacos注册中心,发现获取服务实例

1、前提说明

  • 本次改造,是在上面第一部分集成nacos的基础上进行改造。

2、pom.xml 中,增加 nacos依赖

<!-- nacos依赖,从 nacos 注册中心去获取服务实例 -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.9.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netiflix-ribbon</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3、bootstrap.yml中,nacos参数下面增加discovery相关配置

spring:
  cloud:
    # nacos配置
    nacos:
      discovery:
        server-addr: ${nacos-server-addr}
        namespace: a31af456-634b-470c-827a-67ace200t

三、使用@RefreshScope注解,实现当nacos中配置文件参数变化时,自动更新javaBean配置类的属性值

1、DeveloperConfig.java 配置类上,加上 @RefreshScope 注解

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

/**
 * 开发者
 */
@Component
@ConfigurationProperties(prefix = "developer")
@RefreshScope
@Data
public class DeveloperConfig {
    private String id;
    private String name;
    private String desc;
}

2、当"user-service-env.yml"文件中,developer下的参数变化时,DeveloperConfig实例的属性值也会进行刷新更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值