org.springframework

org.springframework

1. introduction

Spring Framework fournit un modèle de programmation et de configuration clair et expressif pour les applications d'entreprise modernes basées sur Java pouvant être exécutées sur toute plate-forme de déploiement.

Cet article couvre la vue d'ensemble de haut niveau du framework Spring et principalement, le packageorg.springframework qui prend en charge l'injection de dépendances, la gestion des transactions, les applications Web, l'accès aux données, la messagerie, les tests, etc.

2. Caractéristiques

Le framework Spring propose une liste complète de fonctionnalités:

  • Application Web Spring MVC et infrastructure de services Web RESTful

  • Programmation orientée aspect, y compris la gestion déclarative des transactions de Spring

  • Injection de dépendance

  • Inversion de contrôle

et beaucoup plus.

3. Dépendances Maven

Si vous souhaitez ajouter Spring à votre projet Maven, vous pouvez trouver plus d'informations à ce sujethere.

4. Projets de printemps

Le cadre comprend un certain nombre de modules et de projets différents. De la configuration à la sécurité, des applications Web aux mégadonnées, quels que soient les besoins en infrastructure de votre application, un projet Spring est conçu pour vous aider à la créer.

Commencez petit et utilisez ce dont vous avez besoin - Spring est modulaire par conception. Examinons quelques-uns de ces projets ici.

4.1. Spring Web MVC

Le frameworkWeb MVC fournit une architecture Model-View-Controller, conçue autour d'unDispatcherServlet qui gère toutes les requêtes et réponses HTTP et rend l'application faiblement couplée.

La meilleure chose à ce sujet est qu'il vous permet d'utiliser n'importe quel objet en tant qu'objet de commande ou de formulaire. Il n'est pas nécessaire d'implémenter une interface ou une classe de base spécifique au framework. Sa liaison de données est très flexible: par exemple, elle traite les incohérences de types comme des erreurs de validation pouvant être évaluées par l'application, et non comme des erreurs système.

Ici vous pouvez trouver lesguide complets.

4.2. Plateforme Spring IO

IO Platform définit un ensemble de dépendances (les deux dépendances Spring Framework en tant que bibliothèques tierces) qui pourraient être incluses dans un projet Java pour vous permettre de choisir les dépendances nécessaires sans vous soucier de la compatibilité entre leurs versions (car Spring IO le garantit ).

La plate-forme IO est certifiée pour fonctionner avec Java 7 et 8.

Jetez un œil àthe GitHub project.

4.3. Botte de printemps

Spring Boot facilite la création d'applications autonomes basées sur Spring de qualité production que vous pouvez «simplement exécuter». Il est très facile de créer une application utilisant Spring avec un minimum de travail.

Une application créée avec elle peut être en grande partie autoconfigurée avec certaines valeurs par défaut sensibles et peut ensuite être améliorée avec des métriques (combien de demandes, combien de temps les demandes ont-elles pris, etc.).

Il se compose de plusieurs modules (optionnels):

  1. CLI - Une interface de ligne de commande, basée sur Groovy, pour démarrer / arrêter les applications créées par Spring Boot.

  2. Boot Core - La base des autres modules.

  3. Auto-configure - Module pour configurer automatiquement un large éventail de projets Spring. Il détectera la disponibilité de certains frameworks (Spring Batch, Spring Data JPA, Hibernate, JDBC).

  4. Actuator - Ce projet, une fois ajouté, activera certaines fonctionnalités d'entreprise (sécurité, métriques, pages d'erreur par défaut) pour votre application.

  5. Starters - Différents projets de démarrage rapide à inclure en tant que dépendance dans votre fichier de construction Maven ou Gradle. Il aura les dépendances nécessaires pour ce type d'application. Il existe actuellement des projets de démarrage pour un projet Web (basé sur tomcat et jetty), Spring Batch, Spring Data JPA, Spring Integration, Spring Security.

  6. Tools - L'outil de construction Maven et Gradle ainsi que le Spring Boot Loader personnalisé (utilisé dans le fichier exécutable unique jar / war) sont inclus dans ce projet.

Nous pouvons trouver l'artefact Mavenhere et jeter un œil àthe GitHub project.

4.4. Données de printemps

La mission deSpring Data est de fournir un modèle de programmation familier et cohérent, basé sur Spring, pour l’accès aux données, tout en conservant les caractéristiques spéciales du magasin de données sous-jacent.

L'objectif principal de ce projet est de faciliter la création d'applications basées sur Spring qui utilisent les nouvelles technologies d'accès aux données, telles que les bases de données non relationnelles, les infrastructures de réduction de carte et les services de données en nuage, tout en améliorant la prise en charge des technologies de bases de données relationnelles. .

Il s'agit d'un projet parapluie qui contient de nombreux sous-projets spécifiques à une base de données donnée (commeJPA,MongoDB,Redis,Apache Solr,Gemfire, Apache Cassandra). Les projets sont développés en collaboration avec de nombreuses entreprises et développeurs à l'origine de ces technologies passionnantes.

4.5. Sécurité de printemps

Spring Security est un framework qui se concentre sur la fourniture à la fois d'authentification et d'autorisation aux applications Java. Comme tous les projets Spring, la véritable force de Spring Security réside dans la facilité avec laquelle elle peut être étendue pour répondre aux exigences personnalisées. Il est publié sousApache 2.0 license afin que vous puissiez l'utiliser en toute confiance dans vos projets.

Il est également facile à apprendre, à déployer et à gérer. Il possède un espace de noms de sécurité dédié qui fournit des directives pour les opérations les plus courantes, permettant une sécurité complète des applications en seulement quelques lignes XML et protégeant vos applications contre des attaques telles que la fixation de session, le détournement de clic, la falsification de requêtes intersite, etc.

Spring Security est également intégré à de nombreuses autres technologies Spring, notamment Spring Web Flow, Spring Web Services et Pivotal tc Server.

Jetez un œil auxFAQs de la sécurité Spring pour avoir un aperçu plus approfondi et à la page de dépendance deMaven. Jetez également un œil aux didacticiels de sécurité Spring pourAuthentication,Registration etsetup Spring Security avec Maven.

4.6. Spring Social

Spring Social est une extension du framework qui permet aux applications de se connecter avec des fournisseurs de logiciels en tant que service tels que Twitter, Facebook et d'autres API basées sur l'authentificationOAuth. Il fournit un cadre d'authentification OAuth prêt à l'emploi pour les applications Web.

Fonctionnalités:

  • Une infrastructure de fournisseur de services extensible qui simplifie grandement le processus de connexion des comptes d'utilisateurs locaux aux comptes de fournisseurs hébergés.

  • Un contrôleur de connexion qui gère le flux d'autorisation entre votre application Web Java / Spring, un fournisseur de services et vos utilisateurs.

  • Liaisons Java aux API de fournisseur de services populaires telles que Facebook, Twitter, LinkedIn, TripIt et GitHub.

  • Un contrôleur de connexion qui permet aux utilisateurs de s'authentifier avec votre application en se connectant via un fournisseur de services.

Guide de démarrage:

Spring fournit quelques exemples de projetsGitHub pour vous permettre de démarrer rapidement etSpring Social reference est également pratique avec une pagequick start.

4.7. Shell de printemps

Spring Shell est un shell interactif qui peut être facilement étendu avec des commandes en utilisant un modèle de programmation basé sur Spring.

Les utilisateurs du projet shell peuvent facilement créer une application shell complète (ligne de commandeaka) en fonction du jar Spring Shell et en ajoutant leurs propres commandes (qui sont des méthodes sur les beans spring). La création d'une application de ligne de commande peut être utilee.g. pour interagir avec l'API REST de votre projet ou pour travailler avec le contenu d'un fichier local.

The GitHub project peut être trouvé ici.

4.8. Spring Mobile

Spring Mobile est une extension du framework etSpring Web MVC qui vise à simplifier le développement d'applications Web mobiles.

Spring Mobile est une infrastructure qui permet de détecter le type d'appareil effectuant une demande sur votre site Web Spring et de servir d'autres vues basées sur cet appareil. Comme tous les projets Spring, la véritable force de Spring Mobile réside dans sa facilité d'extension. Fonctionnalités:

  • Abstraction du résolveur de périphérique pour la détection côté serveur des appareils mobiles et des tablettes

  • Gestion des préférences de site qui permet à l'utilisateur d'indiquer s'il préfère une expérience «normale», «mobile» ou «tablette».

  • Un commutateur de site capable de commuter l'utilisateur sur le site le plus approprié, mobile, tablette ou normale, en fonction de son appareil et en indiquant éventuellement une préférence de site

  • Gestion des vues prenant en compte les périphériques pour l'organisation et la gestion de différentes vues pour des périphériques spécifiques.

Cesample application vous permettra de démarrer rapidement.

Vous pouvez égalementdetect a device, gérer unwebsite preference ou diffuser du contenu Web mobile avec Spring MVC.

4.9. Lot de printemps

Spring Batch est un cadre léger et complet visant à permettre le développement d'applications par lots vitales pour les opérations quotidiennes des systèmes d'entreprise.

Les applications par lots dans ce contexte font référence à des systèmes automatisés hors ligne destinés au traitement de données en bloc. Spring Batch automatise cette itération de base par lot, offrant la possibilité de traiter des transactions similaires en tant qu'ensemble, généralement dans un environnement hors ligne sans aucune interaction de l'utilisateur.

Spring Batch fonctionne en lisant des données avec une taille de bloc configurable depuis une source de données, en les traitant et en les écrivant finalement dans une ressource.

Les sources de données pour le lecteur peuvent être des fichiers plats (fichier texte, fichier XML, fichier CSV…), une base de données relationnelle (MySQL…), MongoDB. De même, un écrivain peut écrire des données dans des fichiers plats, des bases de données relationnelles, MongoDB, mailer, etc.

Lancez-vous rapidement avecCreating a Batch Service et avec d'autres lots Springresources.

5. Forfaits Core Spring

Jetons un coup d'œil aux packages Spring principaux.

  • org.springframework.cache - Ce package prend en charge les sous-packages et les classes pour la gestion déclarative du cache, la configuration du cache open source dans la bibliothèqueCaffeine, les classes de support pour le cache open sourceEhCache 2.x.

  • org.springframework.context - Ce package s'appuie sur le package beans pour ajouter la prise en charge des sources de messages et du modèle de conception Observer, ainsi que la possibilité pour les objets d'application d'obtenir des ressources à l'aide d'une API cohérente.

  • org.springframework.core - Fournit des classes de base pour la gestion des exceptions et la détection de version et d'autres aides de base qui ne sont spécifiques à aucune partie de l'infrastructure.

  • org.springframework.expression - Ce paquet fournit des abstractions principales derrière lesSpring Expression Language.

  • org.springframework.http - Ce package contient une abstraction de base sur HTTP côté client / serveur.

  • org.springframework.jdbc - Les classes de ce package facilitent l'utilisation de JDBC et réduisent la probabilité d'erreurs courantes.

  • org.springframework.jms - Ce package contient des classes d'intégration pour JMS, permettant un accès JMS de style Spring.

  • org.springframework.jndi - Les classes de ce package facilitent l'utilisation de JNDI, facilitent l'accès à la configuration stockée dans JNDI et fournissent des superclasses utiles pour les classes d'accès JNDI.

  • org.springframework.orm.hibernate5 - Package fournissant l'intégration deHibernate 5.x avec les concepts Spring.

  • org.springframework.test.util - Classes d'utilité générale à utiliser dans les tests unitaires et d'intégration.

Cette liste est limitée et décrit simplement les packages principaux pour la structure Spring. Vous pouvez trouver la liste complètehere.

6. Conclusion

Dans cet article, nous avons examiné divers projets présents dans l'écosystème Spring et constitué une riche collection de dépendances Maven, les projets GitHub et les fonctionnalités complètes offertes par chaque projet pour rendre nos applications Web sécurisées, évolutives et faciles à utiliser. vivre avec.

Nous avons également examiné les packages principaux qui nous permettent de nous concentrer sur un aspect logique de nos applications.