Spring Core Flashcards
Decrire Spring Core en quelques mots
C’est un conteneur qui gère des composants au sein d’un contexte applicatif.
Ces composants (ou beans) sont associés en utilisant l’injection de dépendances dans le contexte d’application de Spring pour construire une application complète.
Quels services sont fournis par Spring au delà de Core ?
- Un framework Web
- Différents moyens de gérer la persistence des données
- Un framework de sécurité
- L’intégration avec d’autres systèmes
- La supervision en temps réel
- Le support des micro-services
- Un modèle de programmation réactive
- …
Expliquer l’injection de dépendances
Lorsqu’un composant a besoin d’autres composants, il y a deux approches:
- Une application classique laisse ce composant créer et gérer le cycle de vie de ses dépendances.
- Une application Spring introduit un conteneur qui va
- gérer le cycle de vie des composants
- injecter les dépendances déclarées par chaque composant.
Quels sont les 3 moyens d’injecter des dépendances avec Spring ?
- Par constructeur
- Par setter
- Par propriété
Quel type d’injection de dépendances est préférable et pourquoi ?
Par constructeur pour les dépendances obligatoires (et par setter pour d’éventuelles dépendances optionnelles)
- Conception: Ce type d’injection aide à prendre conscience qu’un problème existe quand un bean a trop de dépendances et qu’il se transforme en God-class. Le principe SRP est violé.
- Les dépendances devraient être immuables
- Seul ce type d’injection assure que
- les dépendances obligatoires sont bien présentes.
- Les dépendances sont immuables
Quels sont les différents moyens de configurer Spring ?
- Configuration XML
- Configuration Java au moyen de @Configuration et de @Bean
- Configuration automatique
A quoi servent @Configuration et @Bean ?
@Configuration annote une classe qui va enrichir le contexte applicatif avec un certain nombre de composants.
Ses méthodes sont annotées avec @Bean. Chaque méthode crée un composant dont l’id sera par défaut le nom que la méthode qui a servi à le créer.
Comment fonctionne la configuration automatique ?
- Spring scanne le classpath pour trouver les classes annotées de manière appropriée et enrichit le contexte applicatif
- Il est également capable d’injecter automatiquement les dépendances dans les composants.
Quelle annotation est utilisée pour indiquer qu’on souhaite injecter une dépendance ?
@Autowired
Comment créer un repository avec Spring Core ?
- Créer une interface pour le repository
- Implémenter cette interface en injectant JdbcTemplate
- Utiliser JdbcTemplate / SimpleJdbcInsert
- Annoter l’implémentation avec @Repository
Quel est l’élément central d’un repository JDBC ?
JdbcTemplate contient les méthodes nécessaires pour requêter (query, queryForObject) et mettre à jour (update) la base.
Comment Spring JDBC fait-il le lien entre une ligne d’une table et un objet Java ?
Au moyen d’une implémentation de
RowMapper.mapRow(ResultSet rs, int rowNum)
Quelle est la philosophie de Spring concernant les exceptions de persistence ?
- Isoler l’application d’une solution de persistence particulière en définissant son propre ensemble d’exceptions. Quand le gestionnaire de persistence rencontre une exception, elle est traduite en une expression Spring.
- La mère de toutes ces exceptions est l’exception non-vérifiée DataAccessException, car Spring considère que la plupart du temps on ne saurait pas quoi faire dans un catch.
- Spring fournit une liste très longue d’exceptions qui indiquent très précisément l’origine de l’erreur rencontrée (au contraire de JDBC)
Qu’est-ce-que l’annotation @Repository a de particulier ?
Spring va détecter les exceptions de persistence spécifiques à la plateforme et les transformer en exceptions Spring.
Quelles sont les différentes sources pour les propriétés du contexte Spring ?