前言
“我正在参加「启航计划」”
作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“鄙陋”方法解决繁琐问题,让杂乱的问题变得通俗易懂。
支撑作者: 点赞、关注、留言~
前面咱们讲了如安在 Windows 环境下装置布置 Nacos,相信各位小伙伴都现已搭建好了自己的 Nacos。接下来,咱们就一起来看看如安在 SpringBoot 项目中整合 Nacos 完成注册中心和装备中心。
温馨提示:还没有装置 Nacos 的小伙伴可移步至大聪明教你学Java | Windows 环境下装置布置 Nacos
SpringBoot 整合 Nacos
引进 Maven 依靠
首要,咱们还是要引进 Maven 依靠
<!--注册中心的依靠-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>0.2.3</version>
</dependency>
<!-- 装备中心的依靠 -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.3</version>
</dependency>
⭕这儿有一点是需求注意的:注册中心和装备中心的依靠版别要根据 SpringBoot 版原本挑选。版别 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版别,版别 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版别。 在这儿我使用的 SpringBoot 版别是 2.2.4.RELEASE ,所以挑选了 0.2.3 版别的注册中心和装备中心。
添加装备
接下来就是在 application.yml 中添加相关的装备
server:
port: 80
servlet:
context-path: /
spring:
application:
name: NacosDemo
nacos:
config:
server-addr: 127.0.0.1:8848
discovery:
server-addr: 127.0.0.1:8848
示例代码
首要咱们需求在项目发动类上添加两个 Nacos 的注解
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import com.alibaba.nacos.spring.context.annotation.discovery.EnableNacosDiscovery;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableNacosDiscovery //注册中心注解 使用nacos
@NacosPropertySource(dataId = "product_config",autoRefreshed = true) //装备中心注解:autoRefreshed 代表自动改写注解
public class NacosdemoApplication {
public static void main(String[] args) {
SpringApplication.run(NacosdemoApplication.class, args);
}
}
接下来咱们需求再添加一个 Nacos 的装备文件
import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
/**
* @program: NacosDemo
* @description: NacosConfig
* @author: 庄霸.liziye
* @create: 2022-04-29 16:39
**/
@Configuration
public class NacosConfig {
@Value("${server.port}")
private int serverPort;
@Value("${spring.application.name}")
private String applicationName;
@NacosInjected
private NamingService namingService;
@PostConstruct
public void registerInstance() throws NacosException {
namingService.registerInstance(applicationName, "127.0.0.1", serverPort);
}
}
最终咱们写一个模仿获取装备参数的 Controller 类
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* ConfigController 装备控制器
* @description: ConfigController
* @author: 庄霸.liziye
* @create: 2022-04-29 15:29
**/
@RestController
@RequestMapping("/test")
public class ConfigController {
@NacosValue(value = "${productName}",autoRefreshed = true)
private String productName;
@RequestMapping("/productName")
public String getProductName(){
return productName;
}
}
到这儿代码现已预备结束了,既然咱们有一个获取装备参数的 Controller,那么咱们必定也少不了要定义一个待获取的装备参数。咱们发动 Nacos ,登录它的后台页面,在左边的装备办理中找到装备列表,在装备列表下创建一个新的装备。
❗❗❗这儿一定要注意❗❗❗:在 Nacos 办理页面新增参数时,所填写的 Data ID 值有必要要和发动类上 @NacosPropertySource 注解中的 dataId 值是一致的;并且在定义装备内容的时分,装备的姓名有必要要和 Controller 中定义的姓名保持一致。二者中无论哪一个姓名不匹配,在发动项目时都会报找不到装备的过错。
到这儿,代码和装备都现已预备结束了,咱们发动一下项目看看具体效果… 项目发动后,咱们在 Nacos 办理页面左边找到服务办理下的服务列表,翻开服务列表就可以看到咱们的项目成功的注册进了 Nacos。
接下来,咱们在浏览器访问 http://localhost/test/productName,可以看到咱们新增的装备被成功的取了出来。假如此时装备需求改变,咱们只需求在 Nacos 的后台修正对应的装备,然后改写一下页面就可以看到装备现已动态更新了
到这儿 SpringBoot 整合 Nacos 完成注册中心和装备中心就悉数完成了,是不是比 Eureka+Config 的方式方便了许多 (●’◡’●) ~
小结
自己经验有限,有些当地可能讲的没有特别到位,假如您在阅读的时分想到了什么问题,欢迎在评论区留言,咱们后续再一一讨论
期望各位小伙伴动动自己心爱的小手,来一波点赞+关注 (✿◡‿◡) 让更多小伙伴看到这篇文章~ 蟹蟹呦(●’◡’●)
假如文章中有过错,欢迎我们留言指正;若您有更好、更独到的理解,欢迎您在留言区留下您的宝贵主意。
爱你所爱 行你所行 听从你心 无问东西