> Java > java지도 시간 > 본문

SpringBoot가 Nacos를 통합하여 등록 센터 및 구성 센터를 구현하는 방법

PHPz
풀어 주다: 2023-05-12 11:40:22
앞으로
1883명이 탐색했습니다.

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:
이름: NacosDemo
nacos:
config:
server-addr: 127.0.0.1:8848
discovery:
server-addr: 127.0.0.1:8848

Sample code

먼저 프로젝트 시작 클래스에 두 개의 Naco를 추가해야 합니다. ???

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
 **/
@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
 **/
@RestController
@RequestMapping("/test")
public class ConfigController {
    @NacosValue(value = "${productName}",autoRefreshed = true)
    private  String productName;
    @RequestMapping("/productName")
    public String getProductName(){
        return productName;
    }
}
로그인 후 복사

이제 코드가 준비되었습니다. 구성 매개변수를 얻는 컨트롤러인 경우, 얻을 구성 매개변수도 정의해야 합니다. Nacos를 시작하고 백엔드 페이지에 로그인한 후 왼쪽 구성 관리에서 구성 목록을 찾고 구성 목록 아래에 새 구성을 만듭니다.

SpringBoot가 Nacos를 통합하여 등록 센터 및 구성 센터를 구현하는 방법

SpringBoot가 Nacos를 통합하여 등록 센터 및 구성 센터를 구현하는 방법

❗❗❗여기에 주의하세요❗❗❗: Nacos 관리 페이지에서 매개변수를 추가할 때 입력된 데이터 ID 값은 시작 시 @NacosPropertySource 주석의 dataId 값과 일치해야 합니다. class ; 그리고 구성 내용을 정의할 때 구성 이름은 컨트롤러에 정의된 이름과 일치해야 합니다. 두 이름 중 어느 것이 일치하지 않더라도 프로젝트 시작 시 구성을 찾을 수 없다는 오류가 보고됩니다.

이제 코드와 구성이 준비되었습니다. 구체적인 효과를 확인하기 위해 프로젝트를 시작하겠습니다. 프로젝트가 시작되면 Nacos 관리 페이지 왼쪽의 서비스 관리 아래에 서비스 목록이 있습니다. 서비스 목록을 열어 우리 프로젝트가 Nacos에 성공적으로 등록되었는지 확인하세요.

SpringBoot가 Nacos를 통합하여 등록 센터 및 구성 센터를 구현하는 방법

다음으로 브라우저에서 http://localhost/test/productName을 방문하면 새 구성이 성공적으로 제거된 것을 확인할 수 있습니다. 지금 구성을 변경해야 하는 경우 Nacos 백그라운드에서 해당 구성을 수정한 다음 페이지를 새로 고쳐 구성이 동적으로 업데이트되었는지 확인하기만 하면 됩니다

SpringBoot가 Nacos를 통합하여 등록 센터 및 구성 센터를 구현하는 방법

SpringBoot가 Nacos를 통합하여 등록 센터 및 구성 센터를 구현하는 방법

위 내용은 SpringBoot가 Nacos를 통합하여 등록 센터 및 구성 센터를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿