J'ai besoin d'un objet de plate-forme dans mon Quand j'ai essayé de l'utiliser im obtenir le ci-dessous erreur
Field Resttemplate dans com.Example.demo.api.personController nécessitait un haricot de type Pour surmonter l'erreur, je déclare un J'utilise un @rescontroller code> classe "personController" alors je l'ai dit comme ci-dessous. org.springframework.web.client.Resttemplate code> qui n'a pas pu être trouvé.
Envisagez de définir un haricot de type org.springframework.web.client.Resttemplate code> dans votre configuration. P> @bean code> Pour le restemplal comme ci-dessous dans un fichier CONFIG.JAVA et sa fonctionnement bien et ne jetez aucune erreur. p> com.fasterxml.jackson.databind. ObjectMapper code> objet dans @service code> Classe "Perservice" et je l'ai modifiée comme ci-dessous. P> @Autowired
private ObjectMapper objectMapper;
5 Réponses :
Vous ne pouvez pas supposer que rien n'est un haricot à moins que vous sachiez. La documentation est donc votre première place à regarder. P> ObjectMapper CODE> fonctionne car il y a un autre code 3ème parti (I.e. Jackson) qui utilise ce haricot (et il est configuré par eux). Vous en profitez simplement en la modifiant à vos propres haricots. P>
Resttemplate code> ne sont pas fournis comme un haricot par une tierce partie dans
Merci. J'ai trouvé "org.springframework.boot.autoconfigure.jackson.jacksonautoc erguration.conditi oneonClass = com.fast erxml.jackson.databi nd.Ockjackson.databi nd.Objectmapper" au printemps-autoconfigure-metadata.properties Fichier dans Spring-Boot-AutoConfigure -2.1.8.jar. Est-ce que c'est quoi faire l'autoconfigure? Où puis-je voir la liste de toutes les classes configurées automatiquement par Springboot?
ObjectMapper CODE> Bean est créé par le démarrage à ressort car vous avez ObjectMapper CODE> CLASSE PRÉSENT DANS VOTRE CLASSPATH ET CODE JACKSONAUTOCONFIGURATION CODE>. C'est pourquoi vous pouvez passer à ce haricot sans créer explicitement. P>
Resttemplate code> D'autre part est un haricot que vous devez créer par vous-même - le ressort ne le fera pas pour vous car il n'y a pas de classe de configuration automatique qui pourrait déclencher la création de celle-ci. P >
Merci. J'ai trouvé "org.springframework.boot.autoconfigure.jackson.jacksonautoc erguration.conditi oneonClass = com.fast erxml.jackson.databi nd.Ockjackson.databi nd.Objectmapper" au printemps-autoconfigure-metadata.properties Fichier dans Spring-Boot-AutoConfigure -2.1.8.jar. Est-ce que c'est quoi faire l'autoconfigure? Où puis-je voir la liste de toutes les classes configurées automatiquement par Springboot?
Oui, tous les haricots définis dans cette classe sont en cours de création par le ressort lorsque vous avez ObjectMapper Code> dans votre catégorie de classe. Vous pouvez trouver toutes les classes de configuration automatique ici: github.com/spring-projects/spring-boot/tree/master/... . Vous pouvez exclure toute classe de configuration automatique à l'aide de @enableAutoconfiguration (exclude = {[classes à exclure]} code> Annotation.
Très probablement Le ObjectMapper CODE> se contente d'une partie des dépendances transversales ou transitives de votre projet, mais le Resttemplate code> n'est pas. Donc, l'instance du ObjectMapper code> crée implicitement, tandis que le Resttemplate code> ne crée pas du tout. C'est donc une raison pour laquelle vous devez créer un haricot du Resttemplate code> explicitement. P>
Comme il est mentionné dans les documents de printemps. https: //docs.spring. IO / Spring-Boot / Docs / Current / Référence / HTML / Boot-Features-Resttemplate.html P>
Si vous devez appeler des services de repos à distance à partir de votre application, vous pouvez utiliser la classe RestTemplate de Spring Framework's Framework. Étant donné que les instances de repose-repose doivent souvent être personnalisées avant d'être utilisées, la chaussure à ressort ne fournit aucun haricot de reston-fixé auto-configuré. Il est toutefois de configurer automatiquement un bloc Resttemplate, qui peut être utilisé pour créer des instances de repose-mémoire en cas de besoin. Le plafond Resttemplate de configuration automatique garantit que les protocoles httpmessagecverters sensibles sont appliqués aux instances de repose-plaques. P> blockQuote>
Comme indiqué par d'autres utilisateurs, il est correct, il n'y a pas de haricot par défaut défini au ressort pour la plaque de repos. La méthode préférée est d'utiliser org.springframework.boot.web.client.restemplatebuilder pour la construction du modèle de repos.
un exemple donné ci-dessous. P>
@Service
public class RestServiceCaller {
private RestTemplate restTemplate;
@Autowired
RestServiceCaller(RestTemplateBuilder builder) {
restTemplate = builder.build();
}
........
.....//here you will have other methods which make use of this restTemplate
}