Springboot - MVC Automatic configuration Principle

LongDi - IDEA 2021-10-14 05:07:39
springboot mvc automatic configuration principle


Table des matières

Description du document officiel:

ExtensionSpringMVC

Implémenter un analyseur de vue dans le conteneur

Convertisseur et formateur

 ModifierSpringBootConfiguration par défaut pour

Prise en charge complèteSpringMVC


Spring Boot Pour Spring MVC Configuration automatique fournie, Pour la plupart des applications .

Description du document officiel:

Configuration automatique à Spring Les fonctions suivantes ont été ajoutées au - dessus des valeurs par défaut pour :

Analyse de la description officielle :

If you want to keep Spring Boot MVC features and you want to add
additionalMVC configuration (interceptors, formatters, view controllers,
and other features), you can add your own
@Configuration class of type WebMvcConfigurer but without @EnableWebMvc.

ExtensionSpringMVC

Parce queWebMvcConfigurerC'est une interface.

 Créer unMyMvcConfigImplémenter cette interface

L'analyseur de vue que nous avons appris précédemment est configuré manuellement

ViewResolver  Classe qui implémente l'interface View Parser, Comme si c'était un analyseur de vue

RechercheContentNegotiatingViewResolver,Trouvez ce qui suit:resolveViewName! Trouver le Code de résolution de vue correspondant

 De getCandidateViewsJe l'ai vu prendre tous les Analyseurs de vue, Effectuer une boucle de traversée

 Conclusions:ContentNegotiatingViewResolver Cet analyseur de vue est utilisé pour combiner tous les Analyseurs de vue

  Vous pouvez voir qu'il va chercher l'analyseur de vue dans le conteneur , Nous pouvons également implémenter un analyseur de vue dans un conteneur !

Implémenter un analyseur de vue dans le conteneur

1、 Nous allons écrire un analyseur de vue dans le programme principal ;

 2、 Comment voir si notre propre analyseur de vue fonctionne ?

Nous donnons DispatcherServlet Dans doDispatchMéthodes Ajouter un point d'arrêt pour le débogage , Parce que toutes les demandes vont dans cette méthode !

 3、 Nous avons lancé notre projet , Ensuite, visitez n'importe quelle page ,RegardeDebugInformation,Trouverthis

 4、 Trouver l'analyseur de vue , Nous voyons ce que nous avons défini ici ;

 Alors dis, Si nous voulons utiliser diy Quelque chose sur mesure , Il suffit d'ajouter ce composant au conteneur ,SpringBootIl va nous aider à automatiser l'assemblage!

Convertisseur et formateur

Trouver le convertisseur de format :

On peut voir

Si vous avez configuré votre propre format ,S'inscrire àBeanEntrée en vigueur, Nous pouvons configurer les règles de formatage des dates dans le profil : On peut le voir dans notre PropertiesDans le document, Nous pouvons le configurer automatiquement !

 

 

 ModifierSpringBootConfiguration par défaut pour

Conclusions:Nous allons étendreSpringMVC, C'est officiellement recommandé , Assuré SpringBoot Laissez toutes les configurations automatiques , Peut également utiliser notre configuration étendue !

Analyser les principes :

1、WebMvcAutoConfiguration - Oui. SpringMVCClasse de configuration automatique pour,Il y a une classe dedans.WebMvcAutoConfigurationAdapter

2、Il y a une annotation sur cette classe,Importer lors d'autres configurations automatiques:@Import(EnableWebMvcConfiguration.class)

3、On entre.EnableWebMvcConfigurationRegarde ça.,Il hérite d'un parent:DelegatingWebMvcConfiguration

Il y a un tel code dans cette classe mère:

 4、Nous pouvons trouver dans cette classe unviewControllerComme référence,Il a trouvé qu'il appelait un


protected void addViewControllers(ViewControllerRegistry registry) {
this.configurers.addViewControllers(registry);
}

5、Allons voir.


public void addViewControllers(ViewControllerRegistry registry) {
Iterator var2 = this.delegates.iterator();
while(var2.hasNext()) {
// Va toutWebMvcConfigurerConfiguration connexe à appeler ensemble!Y compris nos propres configurations etSpringConfiguré pour nous
WebMvcConfigurer delegate = (WebMvcConfigurer)var2.next();
delegate.addViewControllers(registry);
}
}

Conclusions:Tous lesWebMvcConfigurationEt ils seront tous affectés,Plus que ça.SpringClasse de configuration propre,Notre propre classe de configuration sera bien sûr appelée

Prise en charge complèteSpringMVC

Prise en charge complète:SpringBootC'est exact.SpringMVCLa configuration automatique de,Tout est configuré par nous - mêmes.!

Il suffit d'ajouter un@EnableWebMvc.

Nous développons , L'utilisation de buses complètes n'est pas recommandée SpringMVC

1、 Vous voyez ici qu'il importe une classe ,Continue à regarder.

 

 2、Il hérite d'un parent WebMvcConfigurationSupport

 3、Regardez en arrièreWebmvcClasse de configuration automatique

Résumé:@EnableWebMvcOui.WebMvcConfigurationSupport Importation de composants ;

Et importé WebMvcConfigurationSupportC'est juste...SpringMVCFonctions de base!

版权声明
本文为[LongDi - IDEA]所创,转载请带上原文链接,感谢
https://javamana.com/2021/10/20211013211842763j.html

  1. Java虚拟机|JVM【适合初学者入门】
  2. [Azure Cloud Service] Azure Cloud Service ajoute des champs personnalisés pour le rôle Web (hôte IIS) (ajoute le champ user agent dans l'en - tête de demande http au Journal de sortie IIS)
  3. Spring Cloud 2021.0.0-M2 發布
  4. Java虛擬機|JVM【適合初學者入門】
  5. Spring Cloud 2021.0.0-m2 Release
  6. Machine virtuelle Java | JVM [convient aux débutants]
  7. 10412 Xiaopeng cars announced sales results in September
  8. Apprendre le mécanisme des événements Java
  9. Java script RPC (07) - timeout timeout Processing from zero
  10. Introduction à la page Web de rabbitmq (3)
  11. MySQL read - Write Separation Cluster Construction and Integration with mycat
  12. Analyse du principe du conteneur du CIO printanier
  13. Java面向对象基础
  14. Java communique avec les capteurs industriels via socket et DTu, RTU
  15. Xiaopeng automobile delivered 10412 units in September, with a monthly sales volume of more than 10000 for the first time
  16. Java Object Oriented Foundation
  17. Introduction au développement Android PDF, un tour pour vous apprendre à comprendre netty
  18. Hadoop Foundation - 01 - concepts de base
  19. Hadoop Foundation - 02 - Basic Structure
  20. Hadoop Foundation - 03 - hdfs (Hadoop Distributed File System) Basic Concepts
  21. Hadoop Foundation - 04 - hdfs API Programming
  22. Hadoop Foundation - 05 - hdfs Project (word Frequency Statistics)
  23. Hadoop Foundation - 06 - hdfs Data Read and write
  24. The "monthly test" report card of the new car built under the lack of core: Xiaopeng and Weilai took the lead in "breaking 10000", and the ideal plummeted by 25%
  25. Introduction to making arch linux software package
  26. Hard core observation 407 HTTPS everywhere browser extension is about to retire
  27. How to use busybox on Linux
  28. In 2021, the talent incentive plan of Linux foundation open source software School Park was officially launched
  29. It's not windows or Linux. Shrink is the "God operating system"
  30. Install anydesk on Ubuntu Linux
  31. 2021, can we recommend using Linux to play games?
  32. not exist:org.springframework.kafka.listener.AbstractMessageListenerContaingetContainerProperties()
  33. Are you sure HTTPS is asymmetric encryption for content encryption? See the answers and reasons
  34. MySQL online slow log query
  35. Java JDK server installation
  36. 手把手教你使用Java开发在线生成pdf文档
  37. Questions d'entrevue dans la base de données MySQL (dernière version 2021)
  38. Java零基础小白入门必做题汇总(建议收藏)第一篇
  39. Day15 Java Foundation
  40. Day16 Java Foundation
  41. Day17 Java Foundation
  42. Day18 Java Foundation
  43. Linux installe JDK 1.8 et configure les variables d'environnement
  44. Tutoriel d'utilisation Maven super détaillé
  45. Spring boot reads project parameter configuration
  46. Docker installing rocketmq
  47. Java Zero Basic small white Beginner must make a summary of issues (recommended Collection) Chapitre 1
  48. Manuel pour vous apprendre à utiliser le développement Java pour générer des documents PDF en ligne
  49. 40 + comment les femmes s'habillent - elles pour montrer leur jeunesse?Un manteau et une jupe vous donnent un look haut de gamme tout au long de l'automne et de l'hiver
  50. Tutoriel d'installation Ubuntu 16.04 / Hadoop 3.1.3Configuration autonome / pseudo - distribuée
  51. L'apprentissage le plus détaillé de springboot à l'échelle du réseau - day01
  52. L'apprentissage le plus détaillé de springboot sur le Web - day02
  53. L'apprentissage le plus détaillé de springboot sur le Web - day03
  54. L'apprentissage le plus détaillé de springboot sur le Web - day04
  55. Tutoriel d'utilisation Maven super détaillé
  56. L'apprentissage le plus détaillé de springboot sur le Web - day05
  57. L'apprentissage le plus détaillé de springboot sur le Web - day06
  58. L'apprentissage le plus détaillé de springboot sur le Web - day07
  59. Introduction to JavaScript - write a photo album for your girlfriend
  60. [Hadoop 3. X] HDFS storage type and storage strategy (V) overview