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

PHPz
リリース: 2023-05-12 11:40:22
転載
1754 人が閲覧しました

SpringBoot は Nacos を統合します

Maven 依存関係の紹介

まず第一に、まだ Maven 依存関係を導入する必要があります



    com.alibaba.boot
    nacos-discovery-spring-boot-starter
    0.2.3



    com.alibaba.boot
    nacos-config-spring-boot-starter
    0.2.3
ログイン後にコピー

ここで注意すべき点が 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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!