ホームページ  >  記事  >  Java  >  SpringBoot が Nacos を統合して登録センターと構成センターを実装する方法

SpringBoot が Nacos を統合して登録センターと構成センターを実装する方法

PHPz
PHPz転載
2023-05-12 11:40:221883ブラウズ

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>

ここで注意すべき点が 1 つあります: 登録センターです。 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
サーブレット:
コンテキストパス: /
spring:
アプリケーション:
名前: NacosDemo
nacos:
config:
サーバーアドレス: 127.0.0.1:8848
Discovery:
server-addr: 127.0.0.1:8848

サンプル コード

まず、プロジェクトのスタートアップ クラスに 2 つの 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
 **/
@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);
    }
}

最後に、構成パラメーターの取得をシミュレートするコントローラー クラスを作成します??????

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;
    }
}

これでコードの準備が整いました。設定パラメータを取得するControllerがあるので、取得する設定パラメータを定義する必要があります。 Nacos を起動し、そのバックエンド ページにログインし、左側の構成管理で構成リストを見つけ、その構成リストの下に新しい構成を作成します。

SpringBoot が Nacos を統合して登録センターと構成センターを実装する方法

SpringBoot が Nacos を統合して登録センターと構成センターを実装する方法

❗❗❗ここで必ず注意してください❗❗❗: Nacos 管理ページでパラメーターを追加するときに入力されるデータ ID の値です。スタートアップ クラスの @NacosPropertySource アノテーションの dataId 値と一致している必要があり、設定内容を定義する場合、設定名はコントローラーで定義されている名前と一致している必要があります。 2 つの名前のどちらが一致しなくても、プロジェクトの開始時に構成が見つからないというエラーが報告されます。

この時点で、コードと構成は準備できました。具体的な効果を確認するためにプロジェクトを開始しましょう... プロジェクトを開始すると、プロジェクトの左側にあるサービス管理の下にサービス リストが表示されます。 Nacos管理ページからサービスを開くと、プロジェクトがNacosに登録されたことがリストで確認できます。

SpringBoot が Nacos を統合して登録センターと構成センターを実装する方法

次に、ブラウザで http://localhost/test/productName にアクセスすると、新しい構成が正常に取り出されていることがわかります。現時点で構成を変更する必要がある場合は、Nacos のバックグラウンドで対応する構成を変更し、ページを更新して構成が動的に更新されたことを確認するだけです

SpringBoot が Nacos を統合して登録センターと構成センターを実装する方法

#

以上がSpringBoot が Nacos を統合して登録センターと構成センターを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。