springboot集成nacos配置中心

nacos项目主页

https://github.com/alibaba/nacos

nacos配置启动

使用的nacos版本nacos-server-2.0.0-BETA

1、建立nacos库并导入nacos/conf/nacos-mysql.sql
2、修改配置 nacos/conf/application.properties

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.1.82:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=Sgl20@14

3、启动 nacos/bin/startup.cmd -m standalone

4、访问 http://localhost:8848/nacos/#/login
账号密码都是 nacos、nacos

5、新增一个配置
配置列表-->点击“+号”新增-->


image.png

使用YAML 格式;dataId 设置为 IAM;

需要剥离的配置内容如下:

useLocalCache: true

sprintboot改动

依赖

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

main类;
加上注解:@NacosPropertySource(dataId = "IAM", autoRefreshed = true, type = ConfigType.YAML);
还有添加监听Nacos加载方法

package com.ruoyi;

import com.alibaba.nacos.api.config.ConfigType;
import com.alibaba.nacos.api.config.annotation.NacosConfigListener;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

/**
 * 启动程序
 *
 * @author ruoyi
 */
@NacosPropertySource(dataId = "IAM", autoRefreshed = true, type = ConfigType.YAML)
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class RuoYiApplication {

    public static void main(String[] args) {
        // System.setProperty("spring.devtools.restart.enabled", "false");
        SpringApplication.run(RuoYiApplication.class, args);
        System.out.println("(♥◠‿◠)ノ゙  若依启动成功   ლ(´ڡ`ლ)゙  \n" +
            " .-------.       ____     __        \n" +
            " |  _ _   \\      \\   \\   /  /    \n" +
            " | ( ' )  |       \\  _. /  '       \n" +
            " |(_ o _) /        _( )_ .'         \n" +
            " | (_,_).' __  ___(_ o _)'          \n" +
            " |  |\\ \\  |  ||   |(_,_)'         \n" +
            " |  | \\ `'   /|   `-'  /           \n" +
            " |  |  \\    /  \\      /           \n" +
            " ''-'   `'-'    `-..-'              ");
    }

    /**
     * 监听Nacos加载
     *
     * @param config
     */
    @NacosConfigListener(dataId = "IAM", type = ConfigType.YAML)
    public void onMessage(String config) {
        System.out.println(config);
    }
}

springboot集成nacos配置;这个配置和@NacosPropertySource注解选择其一即可,其实是相同的效果

nacos:
  config:
    server-addr: localhost:8848
    data-id: IAM

controller里注入useLocalCache; 使用@NacosValue注解而不是原来的@Value

package com.ruoyi.web.controller.business;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import static org.springframework.web.bind.annotation.RequestMethod.GET;

@Controller
@RequestMapping("config")
public class ConfigController {

    private boolean useLocalCache;

    @NacosValue(value = "${useLocalCache}", autoRefreshed = true)
    public void setUseLocalCache(boolean useLocalCache) {
        this.useLocalCache = useLocalCache;
    }

    @RequestMapping(value = "/get", method = GET)
    @ResponseBody
    public boolean get() {
        return useLocalCache;
    }
}

注意:用配置中心的配置要把原来的注释掉,不然会一直用默认的

至此集成完毕,现在启动工程会从nacos中拉取上文维护的配置信息

如何同时指定多个data-id

image.png

nacos配置如下

nacos:
  config:
    type: yaml
    server-addr: 192.168.1.82:8848
    context-path: nacos
    data-ids: IAM,IAM-DATA
    auto-refresh: true
    group: DEFAULT_GROUP
    bootstrap:
      enable: true
      log:
        enable: true

dataId之间逗号分割;或者使用多个@NacosPropertySource代替

其它问题

nacos启动报错
1、nacos启动报错ClientOperationServiceProxy.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'persistentClien;将data目录删除即可解决;

https://github.com/alibaba/nacos/releases/tag/2.0.0-BETA

nacos动态刷新配置
其实大部分的配置在nacos中变更后都可以都到刷新应用,既可以实现不重启springboot服务来达到动态更改的目的;但是像连接像redis、mysql这样使用连接池的数据库是没办法动态刷新的,想要生效就必须重启服务!因为他们的连接参数在程序初始化时就已加载。

@NacosValue没有读取到配置会报错
所以得给一个默认值如下:

    @NacosValue(value = "${business.patientSign.hospital:DEFAULT}", autoRefreshed = true)
    private String hospital;

而且可以指定默认值常量:

    @NacosValue(value = "${business.health.url:" + Constants.HEALTHCARDQRCODEDATAURL
        + "}", autoRefreshed = true)
    public void setHealthCardqrCodeDataUrl(String healthCardqrCodeDataUrl) {
        BizPatientSignServiceImpl.healthCardqrCodeDataUrl = healthCardqrCodeDataUrl;
    }

Nacos1.4.0启动报错解决方案

看了官网得知Nacos1.4.0环境要求,jdk1.8+ 64,maven3.2.x+。我的操作系统是win10
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\librocksdbjni6835459412041025213.dll: Can't find dependent
下载并安装vc++ 2015 依赖库,地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=48145

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容