L'apprentissage le plus détaillé de springboot à l'échelle du réseau - day01

Directeur d'usine Java 2021-10-14 05:00:21
apprentissage le taill springboot chelle


1、SpringBootIntroduction

Examiner ce qu'estSpring

  • SpringC'est un cadre open source,2003 Un légerJava Cadre de développement,Auteur:Rod Johnson .

  • SpringCréé pour répondre à la complexité du développement d'applications de classe entreprise,Développement simplifié.

Spring Comment simplifier JavaDéveloppé par

Pour réduireJavaComplexité du développement,Spring Les éléments suivants ont été adoptés: 4Stratégies clés:

1、Basé surPOJOProgrammation légère et minimale invasive pour, Tout est bean;

2、AdoptionIOC,Injection dépendante(DI)Et l'interface orientée pour réaliser un couplage lâche;

3、Basé sur la tangente(AOP) Et les Conventions de Programmation déclarative ;

4、 Réduire le Code de style par des coupes et des modèles ,RedisTemplate,xxxTemplate;

Qu'est - ce queSpringBoot

  • J'ai appris.javawebMes camarades de classe savent,Développer unwebApplication, Contact dès le début ServletUnionTomcat, En courant. Hello WolrldProcédure, Est qu'il y a beaucoup d'étapes à franchir ; Le cadre a ensuite été utilisé Struts, Et plus tard, SpringMVC, C'est maintenant. SpringBoot, Il y en aura d'autres dans un an ou deux. web Le cadre apparaît ;Vous avez connu l'évolution du cadre,Et puis toutes les technologies pour développer le projet par vous - même sont en constante évolution、 La transformation? ? Les suggestions peuvent être expérimentées. ;

  • Revenons à nos moutons,Qu'est - ce queSpringBootEt alors?,Juste un.javawebCadre de développement,EtSpringMVCSimilaire,Par rapport aux autresjavawebAvantages du cadre, Officiellement, il s'agit de simplifier le développement. ,Convention supérieure à la configuration, you can “just run”, Peut être développé rapidement webApplication, Quelques lignes de code pour développer un httpInterface.

  • L'évolution de tous les cadres techniques semble suivre un schéma directeur: D'un scénario d'application complexe Dérivé Un cadre normatif ,Les gens n'ont qu'à faire toutes sortes de configurations sans les mettre en œuvre eux - mêmes,C'est là que les puissantes capacités de configuration deviennent un avantage; Dans une certaine mesure, , Selon la production réelle et l'application , Sélectionner les fonctions pratiques et l'essence de conception , Reconstruire des cadres légers ; Ensuite, pour améliorer l'efficacité du développement, , Il est trop difficile d'abandonner les configurations originales , Et a commencé à promouvoir “Convention supérieure à la configuration”,Et il en résulte des solutions à guichet unique.

  • Oui, c'est ça. JavaApplications au niveau de l'entreprise->J2EE->spring->springbootProcessus.

  • Avec Spring Développement continu, De plus en plus de domaines sont concernés ,L'élaboration d'un projet d'intégration doit s'accompagner d'une grande variété de documents, Ça devient moins facile à utiliser. , Contre l'idée originale , Même l'enfer de la configuration .Spring Boot .C'est dans ce contexte que le cadre de développement a été abstrait, Pour faciliter l'utilisation Spring 、Intégration plus facile des différents intergiciels couramment utilisés、Logiciels libres;

  • Spring Boot Basé sur Spring Développement,Spirng Boot Il n'est pas fourni en soi Spring Caractéristiques de base du cadre et fonctions étendues,Juste pour une utilisation rapide、Développer rapidement une nouvelle génération basée sur Spring Application du cadre.C'est - à - dire,Il n'est pas destiné à remplacer Spring Solutions pour,Mais avec Spring Cadres étroitement liés pour le levage Spring Outils pour l'expérience des développeurs.Spring Boot Par L'idée de base selon laquelle la Convention est plus grande que la configuration , Par défaut, il y a beaucoup de réglages pour nous. ,Majorité Spring Boot Les applications ne nécessitent que peu Spring Configuration.Il intègre également un grand nombre de configurations de bibliothèques tierces couramment utilisées(Par exemple Redis、MongoDB、Jpa、RabbitMQ、Quartz Attendez un peu!),Spring Boot Ces bibliothèques tierces dans l'application peuvent être configurées presque zéro hors de la boîte et prêtes à l'emploi.

  • En termes simples,SpringBoot Ce n'est pas un nouveau cadre. ,Il est configuré par défaut pour utiliser de nombreux cadres,C'est comme...maven Tous intégrés jarSac,spring boot Intégration de tous les cadres .

  • Spring Boot Porte de naissance,Depuis le début à un point de départ plus élevé, Après toutes ces années de développement, , L'écologie est assez parfaite ,Spring Boot A été digne d'être Java La technologie la plus populaire dans le domaine .

Spring BootLes principaux avantages de:

  • Pour tousSpring Démarrage plus rapide des développeurs
  • Déballage et prêt à l'emploi,Fournit une variété de configurations par défaut pour simplifier la configuration du projet
  • Simplification des conteneurs intégrés WebProjets
  • Pas de génération de code redondante etXMLExigences de configuration

C'est vraiment cool,Faisons vite l'expérience du développement d'une interface!

2、Le premierSpringBootProcédure

2.1、Travaux préparatoires

Nous apprendrons à créer rapidement unSpring BootApplication, Et mettre en œuvre un HttpTraitement des demandes. Par exemple, Spring Boot Il y a une compréhension préliminaire , Et expérimentez sa simplicité structurelle 、 Développer des fonctionnalités rapides .

Ma préparation environnementale :

  • jdk1.8

  • Maven-3.6.1

  • SpringBoot Dernière édition

  • IDEA

2.2、Créer une description de projet de base

SpringLes responsables fournissent des outils très pratiques pour construire rapidement des applications

Spring Initializr:https://start.spring.io/

**Mode de création du projet I:**Utilisation sur le site officielSpring Initializr De WebPage créer un projet

1、Ouvre. https://start.spring.io/

2、Remplir les informations du projet

3、Cliquez sur”Generate Project“Projet de construction de boutons;Télécharger Cet article

4、Décompresser le paquet,Utilisation concomitanteIDEAParMavenImportation de projets,La prochaine étape est, Jusqu'à ce que le projet soit importé .

5、 Pour la première fois , Ça peut être lent. ,Il y a beaucoup de sacs.、 Il faut attendre que tout soit prêt. .

**Mode de création du projet II:**Utiliser IDEA Créer un projet directement

1、Créer un nouveau projet

2、Sélectionnerspring initalizr , Comme vous pouvez le voir, la valeur par défaut est d'aller à l'outil de construction rapide du site officiel pour implémenter

3、Remplir les informations du projet

4、Sélectionner les composants initialisés( Vérification initiale Web C'est tout.)

5、Remplir le chemin du projet

6、Attendre que le projet soit construit avec succès

Analyse de la structure du projet:

Créer le projet de base en suivant les étapes ci - dessus.Les fichiers suivants sont générés automatiquement.

1、Classe de démarrage principale du programme

2、Un application.properties Profil

3、Un Catégorie d'essai

4、Un pom.xml

2.3、pom.xml Analyse

Ouvre.pom.xml,Regarde ça.Spring BootDépendance du projet:

<!-- Le père dépend -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<!-- webInitiateur de scène -->
<!--webDépendance:tomcat,dispatcherServlet,xml...-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring-boot-starter:Tous lesspringboot Les dépendances commencent par ça. -->
<!-- springbootTests unitaires -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- Supprimer les dépendances -->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Package plug - in -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

Comme indiqué ci - dessus,Il y a quatre parties principales:

  • Métadonnées du projet: Entré lors de la création Project MetadataSection,C'est - à - direMaven Éléments de base du projet ,Y compris::groupId、artifactId、version、name、descriptionAttendez.

  • parent:Successionspring-boot-starter-parentGestion de la dépendance, Contrôle de la version et de l'emballage, etc.

  • dependencies:Dépendance spécifique au projet,Il y aspring-boot-starter-webPour réaliserHTTPInterface( Cette dépendance contient Spring MVC), Le site officiel le décrit comme suit: :UtiliserSpring MVCConstruireWeb(Y compris:RESTful) Entrée dans l'application ,UtiliserTomcatComme conteneur intégré par défaut.spring-boot-starter-testUn paquet de dépendances pour écrire des tests unitaires.L'utilisation d'autres modules fonctionnels sera progressivement étendue ultérieurement.

  • build:Construire la section Configuration.Par défautspring-boot-maven-plugin,Coopérationspring-boot-starter-parentPour queSpring BootApplications emballéesJARPour fonctionner directement.

2.4、Écrivez unhttpInterface

1、Sous les frères et sœurs du programme principal,Créer un nouveaucontrollerSac,Assurez - vous d'être dans le même répertoire,Sinon, il n'est pas reconnu

image-20210918152836679

2、Créer un nouveau paquetHelloControllerCatégorie

package com.sxau.helloworld.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//Montage automatique
@RestController
public class HelloController {

//Interface:http://localhost:8080/hello
@RequestMapping("/hello")
public String hello() {

//Appel d'affaires, Accepter les paramètres frontaux !!!!
return "hello,world!";
}
}

3、Après la rédaction,Démarrer le projet à partir du programme principal,Demande du Navigateur,Voir la page retour;Sortie de la console Tomcat Numéro de port accédé!

image-20210918153011177

Quelques pas simples, C'est fini. web Développement de l'interface ,SpringBootC'est si simple..C'est pourquoi nous l'utilisons souvent pour construire notre projet de microservice!

2.5、Écrivez le projet enjarSac,Cliquez sur mavenDe package

  • Si l'emballage est réussi,Il seratargetGénérer un sous le Répertoire jar Sac

    image-20210918153755969

  • Si vous rencontrez ③Erreur,Vous pouvez configurer pour sauter les projets lors de l'emballage pour exécuter des cas de test

    <!-- Au travail,Dans de nombreux cas, nous emballons des cas où nous ne voulons pas effectuer des tests Peut - être que le test n'est pas terminé. ,Ou les tests peuvent affecter les données de la base de données Sauter l'exécution du cas d'essai -->
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
    <!-- Sauter les cas de test d'exécution du projet -->
    <skipTests>true</skipTests>
    </configuration>
    </plugin>
    
  • C'est devenujarDerrière le sac, Ça pourrait marcher n'importe où. !OK

    image-20210918154501501

    Résultats de l'exécution du Navigateur (Figure ci - dessus②Pas):

    image-20210918153011177

3、Oeufs de couleur

  1. Changer le numéro de port

    # Modifier le numéro de port du projet
    server.port=8081
    
  2. Comment modifier l'orthographe des caractères affichés au démarrage,SpringBootEt alors??C'est - à - dire banner Motif;

    Juste une étape.: Au titre du projet resources Créer un nouveau sous le Répertoirebanner.txt C'est tout..

    image-20210918154726669

    
    // _ooOoo_ //
    // o8888888o //
    // 88" . "88 //
    // (| ^_^ |) //
    // O\ = /O //
    // ____/`---'\____ //
    // .' \\| |// `. //
    // / \\||| : |||// \ //
    // / _||||| -:- |||||- \ //
    // | | \\\ - /// | | //
    // | \_| ''\---/'' | | //
    // \ .-\__ `-` ___/-. / //
    // ___`. .' /--.--\ `. . ___ //
    // ."" '< `.___\_<|>_/___.' >'"". //
    // | | : `- \`.;`\ _ /`;.`/ - ` : | | //
    // \ \ `-. \_ __\ /__ _/ .-` / / //
    // ========`-.____`-.___\_____/___.-`____.-'======== //
    // `=---=' //
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
    // Bouddha bénit Ne jamais arrêter Jamais.BUG //
    

    Le modèle peut être :https://www.bootschool.net/ascii Ce site génère , Puis copiez - le dans le fichier !

image-20210918154640978

SpringBootIl doit y avoir une histoire derrière quelque chose d'aussi simple, On va faire une analyse du code source. !

版权声明
本文为[Directeur d'usine Java]所创,转载请带上原文链接,感谢
https://javamana.com/2021/10/20211013211944113o.html

  1. What are the new features of Java 10?
  2. What are the new features of Java 9?
  3. Is the report too ugly? Try this open source project reportplus!
  4. Spring 2021 report released: who is the real brother?
  5. À bientôt, docker.
  6. Recommend a super easy to use markdown editor
  7. Java 17 new features overview
  8. New developer friendly features after Java 8
  9. Concise and efficient eclipse collections API
  10. Practice of deploying spring boot microservices on kubernetes
  11. Garbage collectors in the new JDK: Shenandoah, ZGC and improved G1
  12. À bientôt, docker.
  13. Oracle exécute le format syntaxique d'une procédure stockée ou d'un lot
  14. [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)
  15. The Linux kernel will be implemented with the latest zstd
  16. JetBrains publishes the raw data of the developer ecosystem survey in 2021
  17. Linux 5.16 will support KVM and disable amd PSF function
  18. Linux 5.16 brings DisplayPort 2.0 initial support for amdgpu driver
  19. Announcement of the election results of the technical advisory committee of the Linux foundation in 2021
  20. Java虚拟机|JVM【适合初学者入门】
  21. Spring Cloud 2021.0.0-M2 发布
  22. [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)
  23. Spring Cloud 2021.0.0-M2 發布
  24. Java虛擬機|JVM【適合初學者入門】
  25. Spring Cloud 2021.0.0-m2 Release
  26. Machine virtuelle Java | JVM [convient aux débutants]
  27. 10412 Xiaopeng cars announced sales results in September
  28. Apprendre le mécanisme des événements Java
  29. Java script RPC (07) - timeout timeout Processing from zero
  30. Introduction à la page Web de rabbitmq (3)
  31. MySQL read - Write Separation Cluster Construction and Integration with mycat
  32. Analyse du principe du conteneur du CIO printanier
  33. Java面向对象基础
  34. Java communique avec les capteurs industriels via socket et DTu, RTU
  35. Xiaopeng automobile delivered 10412 units in September, with a monthly sales volume of more than 10000 for the first time
  36. Java Object Oriented Foundation
  37. Introduction au développement Android PDF, un tour pour vous apprendre à comprendre netty
  38. Hadoop Foundation - 01 - concepts de base
  39. Hadoop Foundation - 02 - Basic Structure
  40. Hadoop Foundation - 03 - hdfs (Hadoop Distributed File System) Basic Concepts
  41. Hadoop Foundation - 04 - hdfs API Programming
  42. Hadoop Foundation - 05 - hdfs Project (word Frequency Statistics)
  43. Hadoop Foundation - 06 - hdfs Data Read and write
  44. 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%
  45. Introduction to making arch linux software package
  46. Hard core observation 407 HTTPS everywhere browser extension is about to retire
  47. How to use busybox on Linux
  48. In 2021, the talent incentive plan of Linux foundation open source software School Park was officially launched
  49. It's not windows or Linux. Shrink is the "God operating system"
  50. Install anydesk on Ubuntu Linux
  51. 2021, can we recommend using Linux to play games?
  52. not exist:org.springframework.kafka.listener.AbstractMessageListenerContaingetContainerProperties()
  53. Are you sure HTTPS is asymmetric encryption for content encryption? See the answers and reasons
  54. MySQL online slow log query
  55. Java JDK server installation
  56. 手把手教你使用Java开发在线生成pdf文档
  57. Questions d'entrevue dans la base de données MySQL (dernière version 2021)
  58. Java零基础小白入门必做题汇总(建议收藏)第一篇
  59. Day15 Java Foundation
  60. Day16 Java Foundation