SpringBoot 整合 Nacos
Posted king哥Java架构
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 整合 Nacos相关的知识,希望对你有一定的参考价值。
搭建SpringBoot项目
加入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
nacos-config
这个依赖就相当于SpringCloud Config
,nacos-discovery
这个依赖就相当于Eureka
。
配置中心
先将nacos-discovery依赖进行注释,先来实现config
在项目中创建bootstrap.yml
文件,加入以下配置:
spring:
application:
#服务名称
name: naocs-service
profiles:
active: dev
cloud:
nacos:
config:
# 配置文件的环境
group: ${spring.profiles.active}
# 配置文件的格式
file-extension: yaml
# 配置中心的地址
server-addr: 47.105.198.54:8848
# 配置文件prefix
prefix: ${spring.application.name}
#命名空间
namespace: mall
然后登录 nacos,在 nacos 页面选择配置管理,创建配置文件
这里主要配置三个东西,DataID、Group 以及要配置的内容。
Data Id 的完整格式为: ${prefix}-${spring.profile.active}.${file-extension}
。
${prefix}
的值默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。${spring.profile.active}
: 即为当前环境对应的profile
, 注意:当spring.profiles.active
为空时,对应的连接符 - 也将不存在,DataID 的拼接格式变成${prefix}.${file-extension}
。${file-extension}
表示配置文件的扩展名,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
Group 也就是分组,本文里也就是按照环境进行划分。比如 dev、test、uat。 笔者配置:
-
Data Id:naocs-service-dev.yaml
-
Group :dev
-
新建命名空间
如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧!
[Java架构群]
群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的JAVA交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
提供测试的 Controller
@RestController
@RefreshScope // 动态刷新
public class HelloController {
@Value("${name}")
private String name;
@GetMapping
public String hell(){
return name;
}
}
然后调用接口:http://localhost:8080/hello
注册中心
将nacos-discovery依赖注释放开
。 然后在bootstrap.yml
文件的nacos
节点下增加如下配置:
discovery:
server-addr: 47.105.198.54:8848
group: ${spring.profiles.active}
namespace: mall
启动项目,登录nacos。可以看到 服务管理 -》服务列表中有注册上来的服务的相关信息。
加载多个配置文件
在实际开发中,我们不可能将所有的配置同时放在同一个配置文件中,那样会显得多而有杂。
product-dev.yaml
新建product-dev.yaml
文件,当然也可以使用上面那个文件。
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#mysql配置
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.105.198.54:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: xxxx
jackson:
date-format: yyyy-MM-dd HH:mm:ss #如果使用字符串表示,用这行设置格式
timezone: GMT+8
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
接下来笔者会将product-dev.yaml
里的配置拆分出来成为datasource-dev.yaml
、mybatis-plus-dev.yaml
。
datasource-dev.yaml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
# MySQL配置
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.105.198.54:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: xxxx
mybatis-plus-dev.yaml
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
然后在应用程序的bootstrap.yml
里的config
节点下增加配置:
spring:
profiles:
active: ${DEPLOY_ENV}
application:
name: product
cloud:
nacos:
config:
group: ${spring.profiles.active}
file-extension: yaml
server-addr: ${NACOS}
prefix: ${spring.application.name}
namespace: ${nacos.client.namespace}
extension-configs:
- dataId: datasource-${spring.profiles.active}.yaml
group: ${spring.profiles.active}
#是否自动刷新
refresh: true
- dataId: mybatis-plus-${spring.profiles.active}.yaml
group: ${spring.profiles.active}
refresh: true
注意: ${DEPLOY_ENV}
、${NACOS}
这个两个配置是启动配置,分别对应着 加载环境,例如 dev, Nacos 地址,例如 47.105.198.54:8848。
最后
以下是Java面试1—到5年以上开发必问到的面试问点,也都是一线互联网公司Java面试必备技能,下面是参照阿里年薪50W所需具备的技能图,大家可以参考下!
同时针对这12个技能,我在这整理了一份Java架构进阶面试专题PDF文档(含450题解析,包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发,设计模式,MySQL等知识点解析,内容丰富,图文结合!)
这份专题文档是免费分享的,有需要的朋友可以看向下面来获取!!
需要完整版文档的小伙伴,可以一键三连,下方获取免费领取方式!
以上是关于SpringBoot 整合 Nacos的主要内容,如果未能解决你的问题,请参考以下文章