SpringBoot+Nacos

Nacos下载与配置

下载

Nacos 快速开始

Nacos Server 下载 | Nacos 官网,目前最新稳定的是2.3.2

也可以在Github下载,Releases · alibaba/nacos (github.com)

配置(不知道这一步是否必要)

下载完后解压,conf目录中有一个mysql-schema.sql文件,先在自己的MySQL创建nacos数据库,然后在nacos数据库运行这个SQL文件创建相应的表。

然后还是conf目录下的application.properties文件,使用自己的文本编辑器编辑打开这个文件,把43行到45行取消注释并且修改为自己的数据库信息。这几行大概是这个样子

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456

运行

方式1

在bin目录下,通过命令行来运行

启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone

或者说你把nacos这个bin目录添加到自己的环境变量,那么在哪都可以直接运行这个命令脚本

方式2

或者也可以直接编辑startup.cmd,把26行的

set MODE="cluster"

改成

set MODE="standalone"

保存退出,就可以直接点这个文件来运行。

使用

运行成功之后在命令行输出的nacos图标右侧可以看到进入的网址,如果是本地运行直接localhost:8848/nacos也可以

进入nacos页面在配置管理-配置列表就可以新建自己的配置了。

SpringBoot版本用的2.6.5

Maven

 <!-- 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.12</version>
 </dependency>

在pom.xml文件中添加这个依赖。

配置文件 application.yml

 spring:
   application:
     name: demonacos
 nacos:
   config:
     server-addr: 127.0.0.1:8848
     namespace: dbfe38f8-482c-4d49-a96e-b40e46f20afa
     auto-refresh: true
     bootstrap:
       enable: true
     data-id: demo.yml
     group: DEMO_GROUP

name用自己的就可以,就是项目名称

如果Nacos自己新建了命名空间那么,namespace写命名空间的id,没有新建用的默认的话应该就不用写,默认的是public

server-addr,如果没有修改过配置就写这个,如果不是本地运行或者修改过端口号就自己做相应修改。

data-id写自己的,group如果Nacos没有修改这里应该也不用写。

这个是yml/yaml文件的格式,默认的是properties格式,写法不太一样,yml文件层次更清晰一些,不知道的话可以自己去搜一下这两个文件的区别,应该建议是用yml。

运行文件

 package com.demonacos;
 ​
 import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 ​
 @SpringBootApplication
 @NacosPropertySource(dataId = "demo.yml", groupId = "DEMO_GROUP")
 public class DemonacosApplication {
 ​
     public static void main(String[] args) {
         SpringApplication.run(DemonacosApplication.class, args);
     }
 ​
 }

运行文件在自己运行文件的基础上加一个@NacosPropertySource注解,参数也是改成自己的,其实按说yml配置文件里有相应的配置,这里就不需要了,但是我还不可以,后面再看看吧,反正这样是可以的。

测试程序

 package com.demonacos.controller;
 ​
 import com.alibaba.nacos.api.config.annotation.NacosValue;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 ​
 @RestController
 public class UserController {
     @NacosValue(value = "${author}", autoRefreshed = true)
     private String author;
 ​
     @GetMapping("/test")
     public String test() {
         return author;
     }
 }

@NacosValue(value = "${author}", autoRefreshed = true)这个注解中的value就是你nacos配置的东西,autoRefreshed = true就是你nacos配置改变之后这边也可以不重新启动而获取新的配置。

我的nacos配置:

server:
    port: 8081
author: Alkaid

也是用的yaml格式。所以我取author就能够取到Alkaid这个值,假如说我想取端口号,就可以写

value = "${server.port}"

所以我在nacos直接配了服务的运行端口号,如果我读nacos的配置成功了,我的项目在运行起来,看他端口号就能够看到是8081而不是默认的8080。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值