SpringBoot集成Nacos

目录

  简介

  依赖

  配置文件

  代码

  测试

简介:

        Nacos 是阿里巴巴的新开源项目,其核心定位是 “一个更易于帮助构建云原生应用的集注册中心与配置中心于一体的管理平台”,又是我们口中所称的配置和注册中心。上文说到如何安装和启动Nacos,那么现在我们就浅谈下Nacos的使用方法。

依赖:

Nacos作为阿里的开源项目,他的依赖也必然带上了阿里,这一点注意别导错依赖了。我这里使用的是2.2.1RELEASE,在这里值得一提的是,最起码nacos的大版本要和SpringBoot保持一致,注册和配置中心的依赖保持一致!!!!(如果后面出问题了,记得看一下依赖)

        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            2.2.2.RELEASE
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            2.2.2.RELEASE
        

配置文件:

在这里要说一下,配置文件在这里使用的是bootstrap.yml,为系统的配置文件,其优先级大于application.yml。

在这里我们也可以使用bootstrap.properties文件,其效果和yml文件相同。

spring:
  application:
    name: xiaoguai    #为服务名
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        namespace: monitor
        group: monitor
        server-addr: 47.108.211.93:8848
      config:
        file-extension: yaml #后缀名,只支持 properties 和 yaml 类型
        prefix: xiaoguai #文件名,如果没有配置则默认为 ${spring.appliction.name}
        namespace: monitor
        auto-refresh: true
        enable-remote-sync-config: true #启用远程同步配置,
        timeout: 3000
        group: DEFAULT_GROUP  #配置组
        refresh-enabled: true
        server-addr: 47.108.211.93:8848

下图为Nacos的对应关系:

SpringBoot集成Nacos_第1张图片

 在加上阿里的依赖后,启动类上还要添加注解@EnableDiscoveryClient开启配置。

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

/**
 * @Author: xiaoguai
 * @Date: 2022-09/06/14:11
 */
@SpringBootApplication
@EnableDiscoveryClient
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);

    }
}

启动启动类后,访问nacos的地址https:localhost:8848/nacos,打开服务列表,为你的服务,服务名对应

spring.application.name:xiaoguai

SpringBoot集成Nacos_第2张图片

代码:

要实现配置文件的动态刷新,还需要一个注解@RefreshScope

在需要动态刷新的controller上添加此注解

注意:@Value注解为org.springframework.beans.factory.annotation.Value包下的,不要导成Lombok下的了!!!

@RestController
@RefreshScope
public class HelloController {

   @Autowired
   private MyConfiguration myConfiguration;

   @Value("${log.level}")
   private String level;

    @GetMapping("/info")
    public String getConfigInfo() {
        String all = myConfiguration.getUsername()+"
"+myConfiguration.getPassword()+level; System.out.println(all); return all; } }

测试:

在启动之后访问以上内容

控制台和网页分别输出为:

SpringBoot集成Nacos_第3张图片

 现在我们在不重启应用的情况下,修改Nacos的配置文件。

SpringBoot集成Nacos_第4张图片

 在上次的网页进行刷新操作,分别观察网页和控制台的输出:

SpringBoot集成Nacos_第5张图片

 

 这样就完成了Nacos的动态配置和动态刷新了!!

你可能感兴趣的:(nacos,alibaba,spring,boot,java,微服务)