Maison  >  Article  >  Java  >  Comment SpringBoot intègre Nacos pour implémenter le centre d'enregistrement et le centre de configuration

Comment SpringBoot intègre Nacos pour implémenter le centre d'enregistrement et le centre de configuration

PHPz
PHPzavant
2023-05-12 11:40:221876parcourir

SpringBoot intègre Nacos

Présentation des dépendances Maven

Tout d'abord, nous devons encore introduire les dépendances 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>

Il y a une chose à noter ici : les versions de dépendances du centre d'enregistrement et du centre de configuration doivent être sélectionnées en fonction du SpringBoot version. La version 0.2.x.RELEASE correspond à la version Spring Boot 2.x et la version 0.1.x.RELEASE correspond à la version Spring Boot 1.x. La version SpringBoot que j'utilise ici est la 2.2.4.RELEASE, j'ai donc choisi la version 0.2.3 du centre d'enregistrement et du centre de configuration.

Ajouter une configuration

L'étape suivante consiste à ajouter la configuration pertinente dans application.yml ????

server:
port: 80
servlet:
context-path: /
spring:
application:
name: NacosDemo
nacos:
config:
adresse-serveur: 127.0.0.1:8848
découverte:
adresse-serveur: 127.0.0.1:8848

Exemple de code

Nous devons d'abord ajouter deux Nacos à la classe de démarrage du projet Annotation ????

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

Ensuite, nous devons ajouter un autre fichier de configuration 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);
    }
}

Enfin, nous écrivons une classe Controller qui simule l'obtention des paramètres de configuration ????

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

Le code est maintenant prêt Eh bien, puisque nous avoir un contrôleur qui obtient des paramètres de configuration, nous devons également définir un paramètre de configuration à obtenir. Nous démarrons Nacos, nous connectons à sa page backend, trouvons la liste de configuration dans la gestion des configurations à gauche et créons une nouvelle configuration sous la liste de configuration.

Comment SpringBoot intègre Nacos pour implémenter le centre denregistrement et le centre de configuration

Comment SpringBoot intègre Nacos pour implémenter le centre denregistrement et le centre de configuration

❗❗❗Assurez-vous de noter ici❗❗❗ : Lors de l'ajout de paramètres sur la page de gestion Nacos, la valeur Data ID renseignée doit être cohérente avec la valeur dataId dans l'annotation @NacosPropertySource au démarrage class ; Et lors de la définition du contenu de la configuration, le nom de la configuration doit être cohérent avec le nom défini dans le contrôleur. Peu importe lequel des deux noms ne correspond pas, une erreur indiquant que la configuration est introuvable sera signalée au démarrage du projet.

À ce stade, le code et la configuration ont été préparés. Commençons le projet pour voir les effets spécifiques... Une fois le projet démarré, nous trouvons la liste des services sous gestion des services sur le côté gauche de la page de gestion de Nacos. Ouvrez la liste des services pour voir Notre projet a été enregistré avec succès dans Nacos.

Comment SpringBoot intègre Nacos pour implémenter le centre denregistrement et le centre de configuration

Ensuite, nous visitons http://localhost/test/productName dans le navigateur, et nous pouvons voir que notre nouvelle configuration a été supprimée avec succès. Si la configuration doit être modifiée à ce moment-là, il suffit de modifier la configuration correspondante en arrière-plan de Nacos, puis de rafraîchir la page pour voir que la configuration a été mise à jour dynamiquement

Comment SpringBoot intègre Nacos pour implémenter le centre denregistrement et le centre de configuration

Comment SpringBoot intègre Nacos pour implémenter le centre denregistrement et le centre de configuration

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer