[JAVA] À propos du guide de démarrage officiel de Spring Framework

introduction

J'ai essayé d'apprendre le Spring Framework et jeté un coup d'œil au Guide de démarrage officiel, mais le nombre était foiré. En fait, je pensais vraiment tout faire, mais j'étais frustré, et même la catégorisation semblait à mi-chemin, mais j'ai réussi le premier passage, alors je l'ai résumé pour un service commémoratif. Le contenu date de juin 2018.

Guide de démarrage

À propos des bases de la création de Spring Boot

https://spring.io/guides/gs/spring-boot/ À propos du contenu de base de la création de Spring Boot. Il est traité dans la même ligne que les autres guides de démarrage, mais je pense que vous pouvez le lire en premier.

IDE Spring Tool Suite https://spring.io/guides/gs/sts/ À propos de Spring Tool Suite, un IDE pour Spring Framework.

IntelliJ IDEA https://spring.io/guides/gs/intellij-idea/ Comment utiliser IntelliJ IDEA. Ultimate Edition semble fonctionner avec Spring Framework, mais il est probablement payé.

REST API

Créer

https://spring.io/guides/gs/rest-service/ Comment créer une API qui renvoie JSON dans une requête HTTP GET. Je n'ai pas abordé la création de l'API par requête POST, je dois donc l'étudier séparément.

Courir

https://spring.io/guides/gs/consuming-rest/ Un moyen simple d'exécuter l'API REST avec la classe RestTemplate.

Exécution de tâches régulières

https://spring.io/guides/gs/scheduling-tasks/ Comment mettre en œuvre lorsque vous souhaitez exécuter des tâches à intervalles réguliers. L'exemple utilise «fixedRate» (exécute des tâches à intervalles réguliers, que la tâche en cours soit terminée ou non), mais il est également «fixedDelay» (constante une fois la tâche en cours terminée). Attendez un moment pour exécuter la tâche suivante) et cron.

À propos de la création d'un projet

Gradle https://spring.io/guides/gs/gradle/ Construisez avec Gradle. Maven https://spring.io/guides/gs/maven/ Construit par Maven.

Créer un fichier WAR

https://spring.io/guides/gs/convert-jar-to-war/ À propos de la création d'un fichier WAR.

Multi-projets

https://spring.io/guides/gs/multi-module/ Comment créer plusieurs projets.

DB

Connexion à RDB avec JDBC

https://spring.io/guides/gs/relational-data-access/ Comment se connecter à RDB en utilisant la classe JdbcTemplate.

Gestion des transactions

https://spring.io/guides/gs/managing-transactions/ Comme son nom l'indique, à propos de la gestion des transactions DB.

Téléchargement de fichiers

https://spring.io/guides/gs/uploading-files/ Comment télécharger des fichiers. Il y a des endroits où seule l'interface est affichée à titre d'exemple, donc si vous souhaitez la déplacer pour le moment, il est préférable de se référer à Official GitHub .. J'utilise également la méthode MockMvcRequestBuilders.fileUpload dans mon code de test, mais elle n'est [plus recommandée](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/ Cela ressemble à web / servlet / request / MockMvcRequestBuilders.html # fileUpload-java.net.URI-), donc à la place [MockMvcRequestBuilders.multipart](https://docs.spring.io/spring-framework/docs/current /javadoc-api/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.html#multipart-java.net.URI-) Il semble bon d'utiliser la méthode. Je me demande s'il n'a pas été mis à jour avec Anma-chan ...

Sécurité

Authentification LDAP

https://spring.io/guides/gs/authenticating-ldap/ À propos de l'authentification par LDAP. Il semble que la modification de ʻapplication.propertiessoit omise, donc [Official GitHub](https://github.com/spring-guides/gs-authenticating-ldap) peut être utilisé comme référence. Les informations utilisateur sont gérées dans un fichier pour les tests etLdapShaPasswordEncoder` (classe déjà obsolète pour le codage des mots de passe. docs / current / api / org / springframework / security / crypto / password / LdapShaPasswordEncoder.html)) est utilisé, il semble donc que des recherches supplémentaires soient nécessaires lors de son utilisation en production.

Authentification de la page

https://spring.io/guides/gs/securing-web/ Je crée une page qui ne peut être consultée que par les utilisateurs qui ont été authentifiés à l'aide de Spring Security.

Facebook ** * Ajouté 2018/08 ** Le lien ci-dessous était là, mais il a été supprimé de la liste officielle du guide de démarrage. L'exemple de programme GitHub a également un nom de projet «obsolète», je pense donc que les projets liés à Facebook ne pourront plus être utilisés à l'avenir.

Connectez-vous à l'application

~~https://spring.io/guides/gs/register-facebook-app/ Connexion à une application Facebook en utilisant la classe FacebookTemplate. Il existe un exemple dans Official GitHub. ~~

Accès aux données

~~https://spring.io/guides/gs/accessing-facebook/ À propos de l'accès aux données Facebook. Dans l'exemple, les informations sur le flux sont obtenues, mais [dans la mesure où le document est consulté](https://docs.spring.io/spring-social-facebook/docs/current/apidocs/org/springframework/social/facebook/api/ Facebook.html) Aimez, récupérez des informations sur vos amis et ainsi de suite. ~~

Pub/Sub Redis https://spring.io/guides/gs/messaging-redis/ Redis est connu comme une base de données NoSQL, mais il semble qu'il puisse également envoyer et recevoir des messages. L'exemple résume l'envoi et la réception du message.

RabbitMQ https://spring.io/guides/gs/messaging-rabbitmq/ À propos de l'envoi et de la réception de messages à l'aide de RabbitMQ.

JMS https://spring.io/guides/gs/messaging-jms/ À propos de l'envoi et de la réception de messages par JMS.

Google Cloud Pub/Sub https://spring.io/guides/gs/messaging-gcp-pubsub/ À propos de l'utilisation de Google Cloud Pub / Sub. L'exemple utilise également Spring Integration.

Twitter ** * Ajouté 2018/08 ** Le lien ci-dessous était là, mais il a été supprimé de la liste officielle du guide de démarrage. L'exemple de programme GitHub a également un nom de projet «obsolète», je pense donc que les projets liés à Twitter ne pourront plus être utilisés à l'avenir.

Connectez-vous à l'application

~~https://spring.io/guides/gs/register-twitter-app/ Comment se connecter à l'application Twitter ... Mais j'ai l'impression que la page est boguée. Le lien vers GitHub ne fonctionne pas non plus correctement. Le GitHub officiel est ici. ~~

Accès aux données

~~https://spring.io/guides/gs/accessing-twitter/ À propos de l'accès aux données Twitter. Pour autant que le document soit consulté Manipulation de la chronologie et de la liste d'utilisateurs Je pense que je peux faire quelque chose. ~~

Neo4j

Accès aux données

https://spring.io/guides/gs/accessing-data-neo4j/ À propos de l'accès aux données à Neo4j, qui est une base de données de graphiques.

REST https://spring.io/guides/gs/accessing-neo4j-data-rest/ À propos de l'accès à Neo4j par REST.

Spring Boot Actuator https://spring.io/guides/gs/actuator-service/ Spring Boot a un sous-projet appelé Spring Boot Actuator, et en l'incorporant, un contrôle de santé Il semble que divers points de terminaison tels que les points de terminaison seront ajoutés.

Le traitement par lots

https://spring.io/guides/gs/batch-processing/ À propos du traitement par lots au printemps. Une série de processus sont exécutés: acquisition de données à partir de CSV → conversion de valeur en majuscules → sauvegarde de valeur dans DB.

HATEOAS https://spring.io/guides/gs/rest-hateoas/ L'idée de HATEOAS? À propos de la création d'une API Restful qui intègre.

Pivotal GemFire

Accès aux données

https://spring.io/guides/gs/accessing-data-gemfire/ À propos de l'utilisation de Pivotal GemFire, qui est une grille de données en mémoire.

Cache de données

https://spring.io/guides/gs/caching-gemfire/ À propos de la mise en cache des données Pivotal GemFire.

REST https://spring.io/guides/gs/accessing-gemfire-data-rest/ À propos de l'accès à Pivotal GemFire par REST.

EIP https://spring.io/guides/gs/integration/ Le titre du guide de démarrage est "Intégration des données". L'un des projets de Spring est Spring Integration, qui semble être un cadre qui suit le concept d'EIP (Enterprise Integration Patterns) pour autant que je puisse voir. Il est utilisé pour échanger des données sous forme de messages et les intégrer à d'autres applications.

JPA

Accès aux données

https://spring.io/guides/gs/accessing-data-jpa/ À propos de l'accès aux données à DB par JPA.

REST https://spring.io/guides/gs/accessing-data-rest/ À propos de l'accès à la base de données par REST + JPA. Il semble que cela fonctionne sans créer de contrôleur simplement en ajoutant une annotation dédiée.

MySQL https://spring.io/guides/gs/accessing-data-mysql/ À propos de l'accès aux données à MySQL à l'aide de JPA.

MongoDB

Comment utiliser

https://spring.io/guides/gs/accessing-data-mongodb/ À propos de l'utilisation de MongoDB qui est NoSQL.

REST https://spring.io/guides/gs/accessing-mongodb-data-rest/ À propos de l'accès à MongoDB par REST.

page Web

Créer

https://spring.io/guides/gs/serving-web-content/ À propos de la création de pages Web avec le framework Spring.

Validation d'entrée de formulaire

https://spring.io/guides/gs/validating-form-input/ Comme le titre l'indique, sur la validation de la saisie du formulaire.

Soumission de formulaire

https://spring.io/guides/gs/handling-form-submission/ À propos de la soumission du formulaire.

Exécution du traitement asynchrone

https://spring.io/guides/gs/async-method/ A propos de l'exécution du traitement par multi-thread.

WebSocket https://spring.io/guides/gs/messaging-stomp-websocket/ À propos de l'utilisation de WebSocket.

AngularJS https://spring.io/guides/gs/consuming-rest-angularjs/ Lors de l'utilisation d'AngularJS.

rest.js https://spring.io/guides/gs/consuming-rest-restjs/ À propos de l'utilisation de rest.js. Ou plutôt, je ne pouvais pas comprendre ce qu'était rest.js quand je l'ai cherché, mais je me demande si c'est un problème majeur.

jQuery https://spring.io/guides/gs/consuming-rest-jquery/ À propos de l'utilisation de jQuery.

CORS https://spring.io/guides/gs/rest-service-cors/ À propos de la correspondance avec CORS.

YARN

Construire avec Gradle

https://spring.io/guides/gs/gradle-yarn/ À propos de la construction à l'aide de YARN (Gradle).

Construit par Maven

https://spring.io/guides/gs/maven-yarn/ À propos de la construction à l'aide de YARN (Maven).

Créer une application

https://spring.io/guides/gs/yarn-basic-single/ À propos de la création d'une application simple à l'aide de YARN.

Créer une application (multi-projets)

https://spring.io/guides/gs/yarn-basic/ À propos de la création d'une application simple à l'aide de YARN. Environ 3 JAR sont créés en établissant des liens avec Hadoop tout en disant que c'est simple.

tester

https://spring.io/guides/gs/yarn-testing/ À propos des tests d'applications utilisant YARN.

Le traitement par lots

https://spring.io/guides/gs/yarn-batch-processing/ À propos du traitement par lots dans les applications utilisant YARN.

Réexécuter le traitement par lots

https://spring.io/guides/gs/yarn-batch-restart/ Comment redémarrer le traitement par lots à partir de l'endroit où l'application utilisant YARN a échoué.

SOAP

Utilisation des services Web

https://spring.io/guides/gs/consuming-web-service/ Comment utiliser les services Web basés sur SOAP.

Créer un service Web

https://spring.io/guides/gs/producing-web-service/ Voici comment créer un service Web basé sur SOAP.

cache

https://spring.io/guides/gs/caching/ À propos de la mise en cache des données. Il semble que vous puissiez obtenir le résultat de l'exécution de la méthode, etc. à partir du cache.

Cloud Foundry https://spring.io/guides/gs/sts-cloud-foundry-deployment/ Comment déployer une application sur Cloud Foundry, qui est l'un des PaaS, à l'aide de STS.

HashiCorp Vault

Méthode de réglage

https://spring.io/guides/gs/vault-config/ Il semble y avoir un coffre-fort Hashi Corp en tant qu'application de gestion des informations confidentielles, et la méthode de configuration pour l'utiliser à partir de Spring est décrite.

Accès aux données

https://spring.io/guides/gs/accessing-vault/ À propos de l'accès aux données dans Hashi Corp Vault ci-dessus.

WebFlux https://spring.io/guides/gs/reactive-rest-service/ Avec les nouvelles fonctionnalités de la version 5, il semble que la programmation réactive puisse créer des applications non bloquantes contrairement au passé. Si vous ne connaissez pas la signification du mot, vous ne saurez pas ce que c'est, mais le fait est que vous pouvez exécuter un traitement efficace avec moins de threads. Jusqu'à présent, il y avait RestTemplate dans l'exécution de l'API REST, mais une classe appelée WebClient a été ajoutée à partir de la version 5 pour la communication avec des applications non bloquantes, et comment l'utiliser est également décrite.

Azure https://spring.io/guides/gs/spring-boot-for-azure/ Comment déployer des applications Spring sur Microsoft Azure.

Équilibreur de charge

https://spring.io/guides/gs/client-side-load-balancing/ À propos d'un exemple d'utilisation d'un équilibreur de charge côté client appelé Netflix Ribbon. [Voir ci-dessous](/ nulltemp / items / 22655c8dde1fe23c1297 # Service Discovery) semble être utilisé en conjonction avec Netflix Eureka.

routage

Zuul https://spring.io/guides/gs/routing-and-filtering/ À propos du routage et du filtrage des demandes à l'aide d'une bibliothèque appelée Netflix Zuul.

Spring Cloud Gateway https://spring.io/guides/gs/gateway/ Demandez le routage à l'aide de Spring Cloud Gateway. L'exemple montre un exemple d'utilisation d'une bibliothèque appelée Hystrix développée par Netflix (il semble qu'elle résoudra une panne du service connecté). Pour être honnête, je ne comprends pas vraiment le but de la bibliothèque, mais il semble qu'elle soit souvent comparée à Zuul, donc c'est probablement dans la même catégorie. À l'époque de Zuul 1, l'API de blocage ne prend pas en charge WebSocket etc., mais comme Spring Cloud Gateway est une API non bloquante, elle prend également en charge WebSocket ... Il semble que c'était une force / 47092048 / how-spring-cloud-gateway-is-different-from-zuul), mais Zuul 2 semble être une API non bloquante, donc je me demande si elle se différencie par d'autres moyens.

Découverte de service

https://spring.io/guides/gs/service-registration-and-discovery/ À propos de l'utilisation de Netflix Eureka, qui est la découverte de services (il semble que ce soit un middleware qui enregistre le service créé et le recherche si nécessaire).

Documentation API

https://spring.io/guides/gs/testing-restdocs/ À propos de la création de documentation API à l'aide de Spring REST Docs.

tester

Consumer Driven Contract https://spring.io/guides/gs/contract-rest/ Contrat axé sur le consommateur? sur. Cela semble être l'idée de tester dans des microservices. Il existe un sous-projet appelé Spring Cloud Contract, qui en est un exemple.

Test de la couche Web

https://spring.io/guides/gs/testing-web/ À propos des bases du test de Spring Framework. À partir d'un simple test pour voir si le serveur peut être démarré, nous testons le fonctionnement de l'API sans démarrer le serveur.

Circuit Breaker https://spring.io/guides/gs/circuit-breaker/ À propos de Netflix Hystrix apparu dans [exemple Spring Cloud Gateway](/ nulltemp / items / 22655c8dde1fe23c1297 # spring-cloud-gateway). Un mécanisme pour arrêter l'impact sur d'autres services associés lorsque les services associés sont arrêtés.

Vaadin https://spring.io/guides/gs/crud-with-vaadin/ À propos de Vaadin, un framework d'interface utilisateur utilisant Java. Dans l'exemple, JPA est également utilisé pour créer une interface utilisateur qui autorise les opérations DB.

Redis https://spring.io/guides/gs/spring-data-reactive-redis/ Il y avait aussi [Exemple lors de l'utilisation de Redis](/ nulltemp / items / 22655c8dde1fe23c1297 # redis) dans Pub / Sub, mais voici un exemple lorsque vous insérez normalement la valeur et l'obtenez.

Gérer les paramètres

https://spring.io/guides/gs/centralized-configuration/ En lançant Config Server et en le référençant à partir du serveur client, les mêmes paramètres peuvent être appliqués dynamiquement à plusieurs serveurs clients ... Je pense.

Docker https://spring.io/guides/gs/spring-boot-docker/ À propos de la coopération avec Docker que tout le monde aime.

en conclusion

Recommended Posts

À propos du guide de démarrage officiel de Spring Framework
À propos de l'affichage initial de Spring Framework
1. Démarrez Spring Framework à partir de 1
À propos de DI of Spring ①
À propos de DI of Spring ②
Le nom officiel de Spring MVC est Spring Web MVC
Une note de révision de l'interface Spring Framework Resource
Un record d'étude du Spring Framework à partir de zéro
À propos de la gestion de Null
[Notes personnelles] À propos du framework Spring
À propos de l'erreur de contexte Spring Framework
À propos de la description de Docker-compose.yml
À propos de la fonction de Spring Boot en raison de différentes versions
À propos du comportement de ruby Hash # ==
Spring Framework 5.0 Résumé des principaux changements
À propos des bases du développement Android
A propos de la liaison de l'annotation Spring AOP
À propos du rôle de la méthode initialize
Pensez aux 7 règles d'Optionnel
Filtrer le résultat de BindingResult [Spring]
À propos du niveau de journalisation de java.util.logging.Logger
Devinez le cadre de persistance Java 2017 (3) Reladomo
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
Comprendre l'échantillon officiel Coffee of Dagger2
À propos du printemps ③
À propos du fonctionnement de next () et nextLine ()
Fonctionnalités du framework Spring pour les développeurs Java
À propos du traitement de BigDecimal (avec réflexion)
À propos du nombre de threads de Completable Future
[Java] [Spring] Tester le comportement de l'enregistreur
Pensez à la combinaison de Servlet et Ajax
Officiel de Zeller (demandant le jour)
Résumé de ce que j'ai appris sur Spring Boot
A propos de l'ordre de description des propriétés système Java
À propos de l'idée des classes anonymes en Java
[Laravel] Mémorandum de commande jusqu'au démarrage du projet
L'histoire de la montée de la série Spring Boot 1.5 à la série 2.1
Vérifions la sensation de Spring Boot + Swagger 2.0
Divers tableau de correspondance de Spring Framework et Spring Boot
Gestion des transactions du framework intégré "Apache Camel"
À propos de next () et nextLine () de la classe Scanner
À propos de Spring AOP
À propos de la méthode
À propos de Spring AOP
À propos du paquet
Spécifiez le codage des ressources statiques dans Spring Boot
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
[Grails] À propos de la zone de paramétrage et des éléments de paramétrage de application.yml
À propos de l'utilité des monades dans une perspective orientée objet
Parler des mérites des variables de liaison de base de données ((1) Introduction)
Accédez au h2db intégré de Spring Boot avec jdbcTemplate
05. J'ai essayé de supprimer la source de Spring Boot
À propos du problème de blocage dans le traitement parallèle dans la version 4.0 de gem'sprockets
J'ai essayé de réduire la capacité de Spring Boot
Jusqu'à l'utilisation de Spring Data et JPA Part 2
Relisez le guide des rails (vue d'ensemble du contrôleur d'action)