La position actuelle:Accueil du site>Feignclient utilise un tutoriel détaillé (illustration)
Feignclient utilise un tutoriel détaillé (illustration)
2022-07-23 14:51:57【Gérard pick - Shea】
@FeignClientUtilisez l'illustration détaillée du tutoriel
Action
@FeignClientUtilisé pour créer une déclaration estAPIInterface,L'interface estRESTfulStyle.FeignConçu pour être branché,Peut être injecté dans d'autres composants etFeignÀ utiliser ensemble.Le plus typique est siRibbonDisponible,FeignEtRibbonCombinaison de l'équilibrage de la charge.
@FeignClientPropriétés communes des étiquettes
- Capture d'écran du code source

name(EtvalueMême chose.):DésignationFeignClientNom de,Si le projet utiliseRibbon,nameLa propriété sera utilisée comme microservice(Le nom d'un centre)Nom de,Pour la découverte de services(L'illustration est la suivante:)- url: urlGénéralement utilisé pour la mise en service,Peut être spécifié [email protected]'adresse de l'appel(L'illustration est la suivante:)
- decode404()C'est - à - dire:404C'est décodé,Ou lancer une exception.
- configuration()PréciserFeignClientClasse de configuration pour,La classe de configuration par défaut estFeignClientsConfigurationCatégorie,Par défaut,Cette classe injecte par défautDecoder、EncoderEtConstantAttendez la configurationbean.
- fallback()Classe de traitement pour la configuration des fusibles.


- FeignClientClasse de configuration pour(configuration())
public class FeignUserSupportConfig
{
@Bean
@Primary
@Scope("prototype")
public Encoder multipartFormEncoder() {
return new SpringFormEncoder(new SpringEncoder(new ObjectFactory<HttpMessageConverters>() {
@Override
public HttpMessageConverters getObject() throws BeansException
{
return new HttpMessageConverters(new RestTemplate().getMessageConverters());
}
}));
}
@Bean
public feign.Logger.Level multipartLoggerLevel() {
return feign.Logger.Level.FULL;
}
}
Utiliser le processus
- 1. Augmentation de la classe de démarrage
@EnableFeignClients
- 2.Définir l'interface
package com.xxx.xxx.client;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
@Component
/** * value = "user" Moyenne user Pour Appelez user ServicesId * spring.application.name=user */
@FeignClient(value = "user", configuration = UserSupportConfig.class)
public interface TestClientService {
/** * @param id * @return /user/selectById Pour userController Dans /user/selectById Adresse de la méthode */
@RequestMapping(value = "/user/selectById", method = RequestMethod.GET, produces = {
MediaType.APPLICATION_JSON_UTF8_VALUE}, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
/** * userId Pour les paramètres Il faut é[email protected] Sinon, une erreur est signalée. */
Map upload(@RequestParam("userId") Integer id);
}
- 3. Définir la classe de fusible ,Rappel en cas d'erreur:
import java.util.List;
import org.springframework.stereotype.Component;
@Component
public class Hysitx implements TestClientService {
@Override
public List<String> test(String[] names) {
System.out.println("L'appel d'interface a échoué");
return null;
}
}
- 4.Appelez
Et de baseserviceAppel cohérent
1.Introduction en premier @Autowired
2. Appelé directement dans la méthode
L'explication populaire peut le considérer comme unspring Bean Peut être considéré comme unService
Voilà[email protected] AjouterHeaderInformation
@FeignClient(name="custorm",fallback=Hysitx.class)
public interface IRemoteCallService {
@RequestMapping(value="/user/selectById",method = RequestMethod.POST,
headers = {
"Content-Type=application/json;charset=UTF-8"})
Map test(@RequestParam("userId") int id);
}
2. Ajouter avant les paramètres de la méthode @RequestHeaderNotes:
@FeignClient(name="custorm",fallback=Hysitx.class)
public interface IRemoteCallService {
@RequestMapping(value="/user/selectById",method = RequestMethod.POST,
headers = {
"Content-Type=application/json;charset=UTF-8"})
List<String> test(@RequestParam("userId")@RequestHeader("Authorization") int id);
}
@FeignClient(name="custorm",fallback=Hysitx.class)
public interface IRemoteCallService {
@RequestMapping(value="/user/selectById",method = RequestMethod.POST)
@Headers({
"Content-Type: application/json;charset=UTF-8"})
List<String> test(@RequestParam("userId") int id);
}
Mentions de copyright
Auteur de cet article [Gérard pick - Shea],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/204/202207230928588926.html
Recommandé par sidebar
- 【 Azure Event center】 Azure Event hub New Function attempt - GEO Disaster Recovery
- Quels sont les facteurs qui influent sur la prestation continue?
- 【 Tutoriel de démarrage rapide 7】 utilisation et introduction de l'ordinateur hôte de la station au sol de l'UAV en formation de coquille folle · Open Source
- Détails de la configuration redis
- Docker installe MySQL, redis
- Le circuit de limitation d'amplitude et le circuit de serrage utilisent la conductivité unidirectionnelle de la diode
- [carte des connaissances] cql et py2neo notes d'apprentissage
- C apprentissage des langues
- Application combinée de la ligne de transfert de colonne et de l'ensemble de données dans le scénario d'affaires
- Configuration SSL MySQL 5.6 / 5.7
Devinez que vous aimez
[apprentissage profond] fonction de perte (erreur absolue moyenne, erreur carrée moyenne, perte de lissage, entropie croisée, entropie croisée pondérée, perte de dé, focalloss)
Optimisation de précision * stratégie d'optimisation 1: Réseau + optimiseur Sam
Détails du Protocole Axi
JS - - date Object & Ternary expression
Leetcode - 494. Objectifs et
L'interface utilisateur 3D ou le modèle dans l'unit é fait toujours face à la caméra et tourne avec l'angle de vue de la caméra 丨 l'angle de vue suit 丨 l'angle de vue fixe
Discussion préliminaire sur JVM
Déploiement de l'environnement appium pour les tests mobiles [à poursuivre]
À propos du montage de fond, de la gestion des processus
Lire la lecture efficace - l'auto - investissement le plus rentable
Recommandé au hasard
- Transplantation de systèmes embarqués
- Saisissez une chaîne de caractères à partir du clavier et affichez différents caractères et le nombre d'occurrences de chaque caractère. (la sortie n'est pas séquentielle) résoudre le problème en utilisant la méthode commune de la classe de chaîne
- 2019 Bar _ Aaai ICCN
- Conditions affectant la vitesse de requête de l'interface
- Stack et file d'attente de l'adaptateur STL
- Analyse de la stratégie de lecture et d'écriture du cache
- Classes et objets (1)
- Expérience II Yuv
- Comment synchroniser
- [arxiv2022] grouptransnet: Group transformer Network for RGB - D Salient Object Detection
- Avantages de la salle des machines bgp
- La fosse Piétinée par l'homme vous dit d'éviter les 10 erreurs courantes dans les tests automatisés
- Déterminer s'il s'agit d'un type vide
- Langue C - quelques exercices classiques de langue C
- Openvino Datawhale
- Question 300 Leçon 6 type quadratique
- Analyse du code source et de la conception de redis - - 7. Liste rapide
- Concepts et différences de bits, bits, octets et mots
- Déploiement du projet (version abrégée)
- JDBC Learning and simple Encapsulation
- [Python flask note 5] Blueprint simple à utiliser
- Composants web - cycle de vie des éléments personnalisés
- Entrepôt de données 4.0 Notes - acquisition de données commerciales
- Entrepôt de données 4.0 Notes - acquisition de données sur le comportement de l'utilisateur II
- Affichage itératif des fichiers.h5, opérations de données h5py
- Résumé des connaissances mathématiques communes
- Comment se développe le serveur GPU refroidi à l'eau dans le Centre de données dans le cadre de l'informatique est - Ouest?
- Connaissance du matériel 1 - schéma et type d'interface (basé sur le tutoriel vidéo complet de l'exploitation du matériel de baiman)
- Examen des principes fondamentaux de la structure en acier
- Unity3d: ugui source, Rebuild Optimization
- Solution rapide: xshell ne peut pas glisser dans un dossier ou un paquet
- Rhcsa - - parcourir le contenu du fichier, couper, uniq, trier, utiliser les commandes.tr
- Intégrité du signal (si) intégrité de l'alimentation électrique (PI) notes d'apprentissage (32) Réseau de distribution d'énergie (4)
- Quelle est la raison pour laquelle la plate - forme easygbs ne peut pas lire l'enregistrement vidéo et a un phénomène de streaming répété rtmp?
- Notes du jour 7
- 【 Visual Dispatching Software】 Shanghai Dow Ning apporte netronic download, Trial, tutoriel pour l'Organisation SMB
- 2. Les règles quantitatives
- Événements courants de la souris et du clavier
- C #: in, out, ref Keywords
- Connaissance détaillée du GRE, du mgre; Connaissance de la configuration de base de l'OSPF