Quelques minutes vous prendront pour comprendre rapidement les connaissances théoriques du framework SpringBoot !

1. Qu'est-ce que Spring Boot ?

SpringBoot est en fait un sous-projet de Spring. Il simplifie la difficulté de développement de Spring, supprime tous les fichiers de configuration xml qui peuvent être supprimés et fournit divers démarreurs, permettant aux programmeurs de démarrer plus rapidement et de gagner du temps de développement.

2. Avantages de Spring Boot

SpringBoot améliore et optimise en fait les défauts de Spring. Partant de l'idée que la convention vaut mieux que la configuration, les développeurs n'ont pas à basculer entre les fichiers de configuration et la logique métier, et tout le monde peut se consacrer au code métier logique. l'écriture, ce qui peut grandement améliorer l'efficacité du développement, mais aussi raccourcir le cycle du projet dans une certaine mesure.

(1) Verrouillage des versions

Il résout le problème selon lequel Maven dépend de versions sujettes aux conflits et collecte de nombreuses versions couramment utilisées et testées.

(2) Démarrer la dépendance

Il résout le problème de l'intégration de plusieurs packages jar lors du développement d'une fonction et collecte les packages jar couramment utilisés.

(3) Paramétrage automatique

Il résout le problème du trop grand nombre de frameworks intégrés ou de fichiers de configuration technique et rassemble toutes les configurations par défaut convenues.

(4) tomcat intégré

Grâce au tomcat intégré, le projet javaee peut être exécuté directement sans introduire de tomcat externe.

Résumé : Tout le monde appellera SpringBoot l'échafaudage pour les projets de construction. La chose la plus importante est de nous aider à construire rapidement un énorme projet Spring et à réduire autant que possible tous les fichiers de configuration xml, afin que nous puissions l'utiliser immédiatement et démarrer rapidement, afin que nous puissions nous soucier davantage des affaires que fichiers de configuration.

3. La façon d'exécuter le projet SpringBoot

(1) Utilisez le plugin maven pour commencer

(2) Faites-en un paquet de pots et commencez à courir

(3) Exécutez directement la méthode principale pour commencer à courir

4. Le démarreur de SpringBoot

4.1 Qu'est-ce qu'un démarreur

Le démarreur peut intégrer d'autres technologies via le démarreur pour fournir un environnement de développement et d'exploitation correspondant.

Par exemple : spring-boot-starter-web peut être utilisé pour le développement web dans le fichier pom. De plus, il existe redis, mybatis, etc.

4.2 Le principe d'exécution du démarreur

(1) Le projet SpringBoot analysera le fichier Spring.factories dans le package jar au démarrage.

(2) Chargez la classe de configuration automatique en fonction de la configuration dans le fichier. Le format de fichier est sous la forme clé=valeur, et plusieurs classes qui doivent être chargées par Spring sont définies dans la valeur.

(3) Spring chargera ces classes de configuration automatiques. Une fois que Spring les aura lues, il créera des objets de ces classes, puis les placera tous dans le conteneur IOC. Lorsque cela sera nécessaire ultérieurement, il pourra être obtenu directement à partir du conteneur Spring.

4.3 Démarreurs couramment utilisés dans SpringBoot

(1)spring-boot-starter-web

(2)spring-boot-starter-jdbc

(3)spring-boot-starter-jpa

(4)spring-boot-starter-redis

(5)spring-boot-starter-test

...

5. Principe de fonctionnement de Spring Boot

5.1 Le rôle de la classe SpringApplication et le rôle de la méthode run()

(1) SpringApplication intègre les classes de démarrage de tous les autres frameworks et n'a besoin que d'exécuter cette classe, et toute l'intégration peut être terminée.

(2) Appelez la fonction run, transmettez le bytecode de la classe actuelle et transmettez le paramètre args de la méthode principale. Le bytecode qui y est mentionné est en fait transmis pour passer dans l'annotation @SpringBootApplication.

(3) Obtenez les informations de base de la classe de démarrage actuelle et créez un conteneur IOC.

5.2 Analyse détaillée de la classe de démarrage actuelle @SpringBootApplication

Le bytecode de classe de démarrage actuel transmis par la fonction d'exécution est en fait @SpringBootApplication. Cliquez sur le code source de cette annotation, et vous pouvez voir qu'il contient quatre types d'annotations :

(1) annotation native jdk

 @Target : Déclarer le domaine d'utilisation de l'annotation actuelle

 @Rerention : cycle de vie des déclarations

@Documented : lorsque la déclaration est intégrée dans un fichier doc, elle doit être annotée

@Inherited : Déclare si la sous-classe affichera les annotations de la classe parent

(2)@SpringBootConfiguration

 Cliquez sur le code source de l'annotation, et vous constaterez que l'essence est @Configuration, qui définit que cette classe est la même classe de configuration que le fichier de configuration xml.

Lorsque vous mentionnez @Configuration, vous devez mentionner son partenaire @bean. Ces deux annotations peuvent être utilisées ensemble pour créer une classe de configuration Spring simple, qui peut être utilisée pour remplacer le fichier de configuration xml correspondant. Cela peut être compris comme la création d'un conteneur IOC.

(3)@ComponentScan

Cette annotation correspond à @ComponentScan dans le fichier de configuration Spring, en fait, il analyse et charge automatiquement les composants ou les définitions de bean qui répondent aux exigences. Enfin, ces définitions de bean sont chargées dans le conteneur IOC.

Si nécessaire, vous pouvez personnaliser finement la portée de l'analyse automatique @ComponentScan via basePackages. S'ils ne sont pas spécifiés, le package et le sous-package sous la classe où se trouve @ComponentScan seront analysés par défaut. Il convient de noter que le démarrage de SpringBoot est mieux placé sous le package racine, car basePackages n'est pas spécifié par défaut, de sorte que tous les packages sous le package racine peuvent être analysés.

(4)@Activer la configuration automatique

(1) L'essence de @EnableAutoConfiguration est @Import, qui utilise l'annotation @Import pour charger toutes les définitions de bean qui répondent aux conditions de configuration automatique dans le conteneur IOC. @EnableAutoConfiguration configurera automatiquement le projet en fonction des dépendances jar dans le classpath.

(2) Comment SpringBoot effectue-t-il la configuration automatique ?

Annotations pour la configuration automatique de SpringBoot, @EnableAutoConfiguration

Lorsque vous l'utilisez, ajoutez @SpringBootConfiguration à la classe de démarrage. Cette annotation est une annotation composite, qui contient @EnableAutoConfiguration

Il y a une annotation @Import dans @EnableAutoConfiguration, qui est en fait la clé pour terminer la configuration automatique

· @Import importe une classe AutoConfigurationImportSelector, qui fournit une méthode selectImports, qui analyse les fichiers spring.factories sous tous les pots importés. Configurez automatiquement la classe key=value dans le fichier d'analyse, créez toutes les classes de la liste et placez-les dans le conteneur Spring correspondant.

6. Déploiement à chaud de SpringBoot

Il vous suffit d'introduire le démarreur spring-boot-starter-devtools pour terminer le déploiement à chaud.

7. Fichiers de configuration dans SpringBoot

7.1 Deux catégories

application.yml ou application.properties

bootstrap.yml ou bootstrap.properties

7.2 Différences

(1) bootstrap est chargé par la classe ApplicationContext, qui est chargée en premier que le fichier de configuration de l'application

(2) Les propriétés du fichier bootstrap ne peuvent pas être modifiées

(3) application : configuration automatique du projet Springboot

(4) bootstrap : lorsque vous utilisez le centre de configuration cloud config, si vous devez charger les propriétés de configuration du centre de configuration de connexion, vous pouvez utiliser bootstrap pour le compléter.

Chargez des données qui ne peuvent pas être écrasées, chargez des données cryptées ou décryptées.

7.3 Façons de lire les fichiers de configuration

(1) Lire le fichier de configuration par défaut

Besoin d'injecter la classe Environment, utilisez environment.getProperty (clé dans les propriétés), afin que vous puissiez obtenir la valeur correspondant à la clé

@Value(${key.value}) lire directement

(2) Lire le fichier de configuration personnalisé

Le suffixe du fichier de configuration personnalisé doit être .properties

        Écrivez la classe java correspondant au fichier de configuration personnalisé et mettez des annotations sur la classe

        @ConfigurationProperties("préfixe")

        @PropertySource("fichier de configuration spécifié")

        Analyse du package @Component

La méthode de lecture est la même que celle de la lecture du fichier de configuration par défaut

8. Fichiers journaux pris en charge par SpringBoot

(1)log4j

(2) retour de session

(3)Java Utils journalisation

9. Annotations couramment utilisées de SpringBoot

@SpringBootApplication : Il encapsule les trois classes principales de @SpringBootApplicationConfiguration, @EnableAutoConfiguration et @ComponentScan, ce qui permet aux programmeurs de gagner considérablement du temps de configuration, ce qui est également l'idée centrale de SpringBoot.

@MapperScan : il s'agit d'une annotation indiquant que spring-boot prend en charge les composants mybatis. Grâce à cette annotation, spécifiez le chemin de la classe d'interface mybatis pour terminer l'analyse de l'interface mybaits.

@RestController : il s'agit d'une combinaison de @Controller et @ResponseBody. Si l'annotation est ajoutée à la classe, il n'est pas nécessaire d'ajouter @ResponseBody.

@RequestMapping : Définissez le chemin de la requête dans la méthode.

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping : il est utilisé conjointement avec le RequestMapping ci-dessus, unifié dans un style Rest, et un chemin plus clair peut être spécifié.

@PathVaribale : annotation de la variable de chemin, utilisez {} pour définir le nom de la variable du chemin.

@Service : utilisé pour marquer les annotations de la couche de gestion.

@Component : Identique à la fonction d'annotation de Spring, injectée dans le conteneur IOC.

@EnableScheduling : chargez les définitions de bean pertinentes du framework de planification Spring dans le conteneur IOC via @Import.

おすすめ

転載: blog.csdn.net/lf21qp/article/details/131375082