1: Lorsque plusieurs clients sont utilisés, l'interface FEIGN est extraite dans le pot public. À l'heure actuelle, la classe de démarrage du client doit scanner le package où se trouve le feign dans le pot. Il doit être enregistré au printemps et feindre en même temps. Sinon, il sera signalé au démarrage: "Envisagez de définir un bean de type '****** feign' dans votre configuration."
@ SpringbootApplication @ InteableTransActionManagement @ ENableDiscoveryClient @ ComponentsCan (BasEpackages = {"com.lcamtech.aidis.feign", "com.lcamtech.aids.dts"}) @ enablefeignClients (basepackages = {"com.lcamtech.aidis.feign"}) @ pertecaching @ mapperscan (basepackages = "com.lcamtech.aids.dts.mapper") Application de classe publique étend SpringbootServitializer {public static void main (string [] args) {printempsApplication.run (application.class, args); }}Points clés:
@ComponentScan (basepackages = {"com.lcamtech.aidis.feign", "com.lcamtech.aids.dts"}) @ activerfeignClients (basepackages = {"com.lcamtech.aidis.feign"})Le package AIDIS est un pot contenant Feign. À l'heure actuelle, @ComponentsCan doit également scanner le package de ce projet en même temps.
2: Lorsque vous utilisez Fegin pour passer la valeur, Get devient post
@FeIgnClient (value = "service-name") interface publique UserAccountFeign {@RequestMapping (value = "/ ac / existe", méthode = requestMethod.get) public baseResult isExist (@RequestParam ("mobile") String mobile);}Lorsque Feign est passé, il mettra les données dans le Fandingbody par défaut, donc cela entraînera la demande de post par défaut (il est inutile d'écrire Get In Time. Pour le moment, @RequestParam doit être déclaré dans la liste des paramètres pour faire des demandes de réalisation normales.
3: Lorsque la demande de feign renvoie un objet complexe
comme:
Résultat de classe publique {code de chaîne privé; Message de chaîne privé; données d'objets privés; // Get / Set}Description du problème: Lorsque la demande renvoie un objet de résultat, la valeur de données à l'intérieur de l'objet deviendra un liendhashmap et ne sera pas convertie en l'objet de classe correspondant. Si le transfert est directement forcé, l'erreur de type sera signalée.
Solution 1: Conversion simple
/ ** * @Description: convertir les données en conteneur correspondant * @param bean * @param cllazz * @return * @throws * @author sunf * @date 2018/6/20 10:28 * / public static <t> t convertValue (Object Bean, class <t> Clazz) {try {objectMapper maaker = new objectMapper (); Retour Mapper.ConvertValue (Bean, Clazz); } catch (exception e) {log.error ("Conversion d'erreur: beanutil.convertValue () --->" + e.getMessage ()); retourner null; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.