官方教程:CSDN

Linux使用docker部署nacos:CSDN

默认账号密码都是:nacos

 nacos下载地址:CSDN

pom.xml

   <!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter --> 
        <dependency> 
            <groupId>com.alibaba.boot</groupId> 
            <artifactId>nacos-config-spring-boot-starter</artifactId> 
            <version>0.2.7</version> 
        </dependency>

application.properties 中配置 Nacos server 的地址:

nacos.config.server-addr=127.0.0.1:8848 

如果命名空间不是public要单独设置

nacos.config.namespace=dev

 

启动器类

 这里的dataId要和配置中心的dataId对应

测试控制器

 /** 
     * 通过NacosValue读取配置, 
     * autoRefreshed 表示是否自动更新 
     */ 
    @NacosValue(value = "${http_url}", autoRefreshed = true) 
    private String httpUrl; 
 
    @GetMapping(value = "/get") 
    @ResponseBody 
    public String get() { 
        return httpUrl; 
    }

 下面是第二种写法

 下面这种要放在boostrap.yml中

 SpringBoot项目bootstrap.yml配置文件不加载:CSDN

 pom依赖  这个我把注册中心的依赖也加了 

        <dependency> 
            <groupId>com.alibaba.cloud</groupId> 
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> 
            <version>2.1.4.RELEASE</version> 
        </dependency> 
 
        <dependency> 
            <groupId>com.alibaba.cloud</groupId> 
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> 
            <version>2.1.4.RELEASE</version> 
        </dependency>

配置方式

spring: 
  application: 
    name: demo-service #项目名 
  profiles: 
    active: dev 
  cloud: 
    nacos: 
      # 配置中心 
      config: 
        # 命名空间id(此处不用public,因public初始化的空间, id为空) 
        namespace: ${spring.profiles.active} 
        # nacos的ip地址和端口 
        server-addr: ${NACOS-HOST:127.0.0.1}:${NACOS-PORT:8848} 
        #nacos登录用户名 
        username: nacos 
        #nacos登录密码 
        password: nacos 
        # 这个就表示 在我们nacos命名空间id为 dev中 有一个data-id 为 demo-service.yml 的配置文件 读取这个里面的配置 
        file-extension: yml 
        config-retry-time: 300000 
        # 共享配置, 可以把公共配置放在同个命名空间下,然后创建一个 common.yml 文件 ,里面可以放共用的配置 
        shared-configs: common.yml 
 
      # 发布到注册中心 (如果没有使用可以不配) 
      discovery: 
        # 命名空间id(此处不用public,因public初始化的空间, id为空) 
        namespace: ${spring.profiles.active} 
        # nacos的ip地址和端口 
        server-addr: ${NACOS-HOST:127.0.0.1}:${NACOS-PORT:8848}

如果要覆盖共享配置里面的内容 只需要在主配置文件(application.yml)中在写一遍配置即可 ,主配置优先级高

如果本地也存在application.yml文件,本地和nacos上都有这个配置,那么nacos上的优先级会比较高,只有nacos上没有这个配置时,才会读取本地的配置文件

配置参数说明

  • contextPath 路径上下文。 该属性体现在serverAddr属性中 {ip}:{port}/{contextPath} ,默认是 nacos,就是页面访问时的url
  • clusterName nacos config 集群名称。你的serverAddr实际上是 {ip}:{port}/{contextPath}/{clusterName} 。
  • dataId规则:${prefix}-${spring.profile.active}.${file-extension} 。prefix 默认是spring.application.name。这里我们采用默认配置定义一个spring.application.name。spring.profile.active如果不设置的话nacos会自动把前面的-符号也去掉

评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

SpringBoot整合nacos启动报错:java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata