Pourquoi avons-nous besoin de SpringBoot?

Auteur | A Wen, rédacteur en chef | Guo Rui

图 | Téléchargement CSDN depuis Oriental IC

Vente | CSDN (ID: CSDNnews)

La génération de toute technologie de pointe n'est pas un jeu d'enfant, et SpringBoot ne fait pas exception. SpringBoot est basé sur Spring. Comme nous le savons tous, Spring est un conteneur léger qui est largement utilisé dans les projets Java EE, mais la configuration de configuration XML compliquée, encombrante et gonflée rend les développeurs très pénibles dans le processus d'utilisation réelle, en particulier avec Lorsque d'autres outils tiers sont intégrés, tels que Mybatis, cela rendra le fichier de configuration très compliqué et répété.

Par exemple, regardons une section de la configuration de Spring:

L'image ci-dessus est une section de la base de données de configuration et de la gestion des transactions et de la configuration Mybatis. Nous avons constaté qu'il n'y a que beaucoup de fichiers de configuration. Bien sûr, ce n'est pas le plus compliqué. Sur cette base, SpringBoot est né.

L'émergence de SpringBoot a apporté de nouvelles solutions de configuration d'automatisation aux développeurs, permettant aux développeurs de créer rapidement des applications de production indépendantes basées sur Spring basées sur SpringBoot. SpringBoot fournit des solutions de configuration automatique par défaut pour certaines bibliothèques tierces couramment utilisées. Cela permet aux développeurs d'exécuter des applications JavaEE complètes avec très peu de configuration Spring. En raison de ses fonctionnalités prêtes à l'emploi et de ses solutions de surveillance des services, il est également livré avec un serveur Web et s'intègre aux autres cadres de gouvernance des services traditionnels de Spring tels que Spring Cloud et kubernetes et d'autres technologies, permettant aux développeurs de mettre en œuvre rapidement des microservices et des services. La chose la plus importante est que vous n'avez pas du tout besoin de configurer XML, ce qui est vraiment cool.

Alors, comment démarrer avec Spring Boot? Cet article vous guidera.

Petit test

Tout d'abord, nous créons un projet SpringBoot. Il existe plusieurs façons de créer SpringBoot. Ici, en prenant IDEA Enterprise Edition comme exemple, nous choisissons Spring initalizr, puis créons un projet.

Après avoir créé le projet, nous ouvrons pom.xml et nous pouvons voir cette configuration:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

spring-boot-starter-parent est un démarreur spécial, qui fournit une configuration par défaut de maven, et fournit également la gestion des dépendances, afin que les développeurs n'aient pas à entrer le numéro de version lors de l'introduction d'autres dépendances, ce qui est pratique pour la gestion des dépendances.

SpringBoot propose de nombreux démarreurs. Ces démarreurs doivent fournir une configuration automatique pour les bibliothèques tierces. Si nous voulons configurer un projet Web, nous pouvons les ajouter dans maven:

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

À l'entrée du projet, nous pouvons voir une DemoApplication, qui est l'entrée de l'ensemble Spring Boot:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class);


    }

}

L'annotation @SpringBootApplication est égale à l'annotation suivante, ce qui signifie activer la configuration automatique et l'analyse automatique des packages:

@EnableAutoConfiguration
@ComponentScan

ComponentScan analysera @Service, @Repository, @Component, @Controller, @RestController et les classes annotées avec @Configuration, mais pour plus de commodité, nous ajoutons généralement @SpringBootApplication directement à l'entrée.

Dans l'EDI, nous pouvons exécuter SpringBoot en exécutant la classe DemoApplication. À ce stade, le message suivant apparaîtra dans le terminal. Nous pouvons voir le numéro de version (v2.2.6.RELEASE) et le port de Tomcat:

Mais à ce moment, nous allons visiter 127.0.0.1:8080, il y aura un rappel 404:


Nous pouvons créer un nouveau HelloController dans le cadre du projet:

@RestController
public class HelloController {
    @GetMapping("/hello")

    public String hello(){
        return "Hello World!";
    }
}

À ce stade, lorsque nous visitons, nous pouvons voir ce qui suit:

Bien sûr, plus souvent, nous finissons d'écrire une application qui doit être placée sur le serveur pour être exécutée. À ce stade, nous devons empaqueter l'application. Pour empaqueter l'application, nous devons la configurer dans pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Bien sûr, le SpringBoot créé à l'aide d'idée est correctement organisé pour nous. Il suffit d'entrer la commande suivante dans le terminal pour emballer l'ensemble du projet:

mvn package

Ensuite, nous exécutons dans le terminal:

java -jar target/demo-0.0.1-SNAPSHOT.jar

Vous pouvez exécuter le projet packagé comme suit:

Bannière personnalisée

Lorsque le programme Spring Boot démarre, nous verrons le logo Spring Boot:

Mais généralement, les entreprises le remplaceront par leur propre logo d'entreprise, alors comment personnaliser leur propre logo d'entreprise?

Tout d'abord, nous devons convertir le fichier en une police au format texte TXT, comme le paramètre sur http://www.network-science.de/ascii/, par exemple, nous définissons une police SpringDemo:

Créez ensuite un nouveau fichier banner.txt dans le répertoire des ressources du projet, copiez et collez le texte généré dedans:

Ensuite, lorsque nous réexécuterons le programme, nous constaterons que le logo par défaut a été remplacé:

Si vous voulez fermer c'est aussi très simple, il suffit de régler dans la fonction principale:

SpringApplicationBuilder builder = new SpringApplicationBuilder(DemoApplication.class);
builder.bannerMode(Banner.Mode.OFF).run(args);

Configuration du conteneur Web

Dans SpringBoot, nous pouvons configurer le conteneur Web dans application.properties comme suit:

server.address=127.0.0.1 # 配置地址
server.port=8888 # 配置端口
server.tomcat.basedir=/opt/tmp # 配置目录
server.tomcat.uri-encoding=utf-8 #配置编码
server.tomcat.max-threads=300 #配置最大线程数

En principe, les éléments de configuration sont invités intelligemment, ce qui est très pratique:

Nous pouvons également configurer le certificat dans ce fichier:

server.ssl.key-store= #配置秘钥文件名称
server.ssl.key-alias= #配置秘钥别名
server.ssl.key-password= # 配置证书密码

Ordre de chargement du fichier Application.properties

Le fichier de configuration application.properties dans SpringBoot peut apparaître aux 4 emplacements suivants:

  • Dans le dossier config sous le répertoire racine du projet

  • Sous le répertoire racine du projet

  • sous le dossier config sous classpath

  • sous classpath

Les développeurs peuvent également personnaliser le nom de ce fichier, ajoutez simplement spring.config.name = xxx lors de l'exécution:

jar -jar xxx.jar --spring.config.name=xxx

Vous pouvez également connaître le chemin d'accès au fichier de configuration:

jar -jar xxx.jar --spring.config.location=classpath:/

Les fichiers de configuration de SpringBoot seront éventuellement chargés dans l'environnement. Nous pouvons utiliser l'annotation @Value et l'interface EnvironmentAware pour parler de l'injection de données dans les propriétés. Par exemple, le contenu de application.properties est le suivant:

book.name=西游记
book.author=六承恩
book.price=66
book.type="古典文学","四大名著"

Le contenu de la classe Livre est le suivant:

@Component
@ConfigurationProperties(prefix = "book")
public class Book {
    private String name;
    private String author;
    private Float price;
    private List<String> type;

    //getter 省略
    //seteer 省略
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type=" + type +
                '}';
    }
}

La propriété prefix dans l'annotation ConfigurationProperties décrit la classe de contrôleur correspondant au préfixe du fichier de configuration à charger comme suit:

@RestController
public class BookController {
    @Autowired
    Book book;
    @GetMapping("/book")
    public String book(){
        return book.toString();
    }
}

Après notre visite, nous pouvons voir ce qui suit:

En outre, la configuration YAML est également prise en charge. Nous supprimons ou commentons le contenu dans application.properties, puis créons un nouveau fichier application.yml dans la ressource. Le contenu est le suivant. Le résultat de la réexécution du programme est le même que ci-dessus.

book:
  name: 西游记
  author: 六承恩
  price: 66
  type:
    -  古典文学
    - 四大名著

Bien que le fichier au format YAML soit pratique, il ne peut pas être chargé à l'aide de l'annotation @PropertySource.

Profil

Dans le processus de développement réel, les développeurs doivent basculer fréquemment entre les environnements de production et de test, et une partie de la configuration doit être modifiée, comme la configuration de la base de données. À cet égard, SpringBoot fournit une annotation @Profile, nous pouvons configurer deux fichiers de configuration pour représenter l'environnement de production et de test, et créer de nouveaux application-dev.properties et application-prod.properties dans la ressource.

Configurez ensuite dans la fonction principale:

SpringApplicationBuilder builder = new SpringApplicationBuilder(DemoApplication.class);
    builder.application().setAdditionalProfiles("prod");
    builder.run(args);

Ou ajoutez-le au démarrage du projet--spring.profiles.active=prod .

【FIN】

Des recommandations plus excitantes

☞La plateforme résiste à 700 millions de visites quotidiennes, et le processus de contrôle qualité R & D est entièrement divulgué

☞Séchez les produits secs! Comment améliorer plusieurs fois les performances de la formation Deep Learning?

☞ "Déchirez le problème LeetCode à la main et prenez un pantalon avec différentes routines d'algorithmes"

☞L'idée de transport intelligent causée par les embouteillages du quatrième périphérique de Pékin

de Ngin à Pandownload, programmeurs comment éviter la prison pour la programmation?

☞De Web1.0 à Web3.0: analyse détaillée du développement et de l'orientation future d'Internet au cours de ces années

Chaque "regarder" que vous commandez, je le prends au sérieux

Publié 1975 articles originaux · 40 000 likes + · 18,32 millions de vues

Je suppose que tu aimes

Origine blog.csdn.net/csdnnews/article/details/105631432
conseillé
Classement