まず第一に、まだ 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 を起動し、そのバックエンド ページにログインし、左側の構成管理で構成リストを見つけ、その構成リストの下に新しい構成を作成します。
❗❗❗ここで必ず注意してください❗❗❗: Nacos 管理ページでパラメーターを追加するときに入力されるデータ ID の値です。スタートアップ クラスの @NacosPropertySource アノテーションの dataId 値と一致している必要があり、設定内容を定義する場合、設定名はコントローラーで定義されている名前と一致している必要があります。 2 つの名前のどちらが一致しなくても、プロジェクトの開始時に構成が見つからないというエラーが報告されます。 この時点で、コードと構成は準備できました。具体的な効果を確認するためにプロジェクトを開始しましょう... プロジェクトを開始すると、プロジェクトの左側にあるサービス管理の下にサービス リストが表示されます。 Nacos管理ページからサービスを開くと、プロジェクトがNacosに登録されたことがリストで確認できます。 次に、ブラウザで http://localhost/test/productName にアクセスすると、新しい構成が正常に取り出されていることがわかります。現時点で構成を変更する必要がある場合は、Nacos のバックグラウンドで対応する構成を変更し、ページを更新して構成が動的に更新されたことを確認するだけです
#
以上がSpringBoot が Nacos を統合して登録センターと構成センターを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。