Spring boot Flashcards

(115 cards)

1
Q

Qu’est-ce que Spring Boot ?

A

Framework Java pour créer des applications Spring rapidement - configuration automatique et opinionated

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Différence entre Spring et Spring Boot

A

Spring : framework complet
Spring Boot : simplifie configuration et déploiement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qu’est-ce que l’auto-configuration Spring Boot ?

A

Spring Boot configure automatiquement beans et dépendances selon dépendances présentes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qu’est-ce que le starter POM ?

A

Dépendances prêtes à l’emploi pour démarrer projet Spring Boot rapidement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Exemple de starter POM

A

spring-boot-starter-web
spring-boot-starter-data-jpa
spring-boot-starter-security

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qu’est-ce que Spring Boot CLI ?

A

Outil en ligne de commande pour créer et exécuter rapidement applications Spring Boot

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce que l’annotation @SpringBootApplication ?

A

Annotation principale combinant @Configuration, @EnableAutoConfiguration, @ComponentScan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Différence entre @Controller et @RestController

A

@Controller : retourne vues
@RestController : retourne données JSON/XML directement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qu’est-ce que @RequestMapping ?

A

Annotation pour mapper URL à méthodes du controller

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Différence entre @GetMapping - @PostMapping

A

@GetMapping : requêtes HTTP GET
@PostMapping : requêtes HTTP POST

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce que le concept de Bean dans Spring ?

A

Objet géré par le conteneur Spring, instance créée et injectée automatiquement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Différence entre @Component - @Service - @Repository

A

@Component : bean générique
@Service : service métier
@Repository : accès données

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce que l’injection de dépendances ?

A

Mécanisme où Spring fournit automatiquement les dépendances à un bean

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Différence entre injection par constructeur et par setter

A

Constructeur : injection obligatoire
Setter : injection facultative

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qu’est-ce que Spring Data JPA ?

A

Framework pour simplifier accès aux bases de données relationnelles avec JPA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Différence entre CrudRepository et JpaRepository

A

CrudRepository : opérations CRUD basiques
JpaRepository : CRUD + pagination + tri

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Qu’est-ce que @Entity ?

A

Annotation pour marquer une classe comme entité persistante JPA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Qu’est-ce que @Id ?

A

Annotation pour définir clé primaire d’une entité

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Qu’est-ce que @GeneratedValue ?

A

Annotation pour génération automatique de valeur de clé primaire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qu’est-ce que le fichier application.properties/application.yml ?

A

Fichier configuration central pour propriétés Spring Boot

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Différence entre application.properties et application.yml

A

Properties = format clé=valeur,
YML = format hiérarchique, lisible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Qu’est-ce que Spring Boot Actuator ?

A

Module pour exposer métriques, health, info et endpoints de monitoring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Exemple d’endpoint Actuator

A

/actuator/health
/actuator/metrics
/actuator/env

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Qu’est-ce que Spring Boot DevTools ?

A

Outil pour redémarrage automatique et live reload en développement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Différence entre @Configuration et @Bean
@Configuration : classe de configuration @Bean : méthode qui crée un bean
26
Qu’est-ce que le concept de Profiles Spring ?
Permet définir des configurations différentes selon l'environnement (dev - test - prod)
27
Comment activer un profile
application.properties spring.profiles.active=dev
28
Qu’est-ce que Spring Boot Security ?
Module pour sécuriser applications web, authentification et autorisation
29
Différence entre authentication et authorization
Authentication = vérifier identité Authorization = vérifier droits d’accès
30
Qu’est-ce que @SpringBootTest ?
Annotation pour tests intégration Spring Boot, charge contexte complet
31
Différence entre test unitaire et test d’intégration
Unitaire : teste méthode isolée Intégration : teste interaction beans ou services
32
Qu’est-ce que Spring Boot Embedded Server ?
Serveur web intégré (Tomcat, Jetty) inclus dans l’application
33
Différence entre server.embeddedTomcat.port et server.port
server.port = configure port serveur embeddedTomcat = option spécifique Tomcat
34
Qu’est-ce que @EnableAutoConfiguration ?
Active configuration automatique des beans selon dépendances présentes
35
Qu’est-ce que le concept de Starter ?
Bibliothèque qui regroupe dépendances et configurations pour un usage particulier
36
Exemple de starter web
spring-boot-starter-web
37
Exemple de starter base de données
spring-boot-starter-data-jpa
38
Qu’est-ce que Spring Boot DevTools Live Reload ?
Redémarrage automatique des applications et rechargement des pages navigateur
39
Qu’est-ce que le concept de Properties Binding ?
Mapper configuration du fichier application.properties à des classes Java avec @ConfigurationProperties
40
Différence entre @Value et @ConfigurationProperties
@Value : injecte propriété unique @ConfigurationProperties = injecte groupe de propriétés
41
Qu’est-ce que Spring Boot Logging ?
Configuration de journalisation avec Logback par défaut
42
Comment changer niveau logging
logging.level.root=INFO, DEBUG, ERROR
43
Qu’est-ce que Spring Boot Starter Test ?
Dépendances pour tests unitaires et intégration avec JUnit, Mockito, Spring Test
44
Qu’est-ce que @DataJpaTest ?
Annotation pour tests repository, configure contexte minimal JPA
45
Qu’est-ce que Spring Boot Profiles ?
Permet configurer différents comportements selon environnement
46
Différence entre dev - test - prod profiles
Dev : log verbose et BDD H2 Test : BDD en mémoire pour tests Prod : BDD réelle et sécurité
47
Qu’est-ce que @ConditionalOnProperty ?
Charge un bean seulement si propriété spécifique est présente ou a une valeur donnée
48
Différence entre @ConditionalOnMissingBean - @ConditionalOnBean
@ConditionalOnMissingBean : créer bean si aucun existant @ConditionalOnBean : créer bean si autre bean présent
49
Qu’est-ce que Spring Boot Starter Security ?
Dépendances pour sécuriser application, configuration par défaut basic auth
50
Qu’est-ce que @PreAuthorize ?
Annotation pour sécuriser méthodes avec expressions SpEL
51
Différence entre basic auth et JWT
Basic auth : username/password à chaque requête JWT : token signé pour authentification stateless
52
Qu’est-ce que Spring Boot CORS ?
Configuration Cross-Origin Resource Sharing pour autoriser requêtes externes
53
Différence entre @CrossOrigin et configuration globale
La configuration globale via WebMvcConfigurer s'applique à toutes les routes @CrossOrigin permet une configuration fine au niveau de la méthode ou du controller.
54
Qu’est-ce que Spring Boot Error Handling ?
Gestion centralisée erreurs avec @ControllerAdvice et ResponseEntityExceptionHandler
55
Exemple d’annotation @ControllerAdvice
@ControllerAdvice : classe gérant exceptions globalement
56
Qu’est-ce que Spring Boot Validation ?
Validation automatique des données avec annotations javax.validation et @Valid
57
Exemple de validation
@NotNull @Size(min=2) @Email
58
Différence entre @Valid et @Validated
@Valid : validation standard JSR-303 @Validated : validation avec groupes
59
Qu’est-ce que Spring Boot Profiles Programmatique ?
Activer profile en code via environment.setActiveProfiles
60
Qu’est-ce que Spring Boot Auto-configuration Exclusion ?
Exclure certaines auto-configurations avec @SpringBootApplication(exclude=...)
61
Différence entre embedded database et external database
Embedded : H2/HSQLDB inclus pour tests/dev External : MySQL, Postgres, Oracle
62
Qu’est-ce que Spring Boot Flyway ?
Migration versionnée de base de données
63
Différence entre Flyway et Liquibase
Flyway : scripts SQL versionnés Liquibase : XML/YAML/SQL pour migration DB
64
Qu’est-ce que Spring Boot DevTools Remote Debug ?
Debug application Spring Boot distante avec redémarrage automatique
65
Qu’est-ce que Spring Boot Starter Actuator ?
Exposition endpoints pour monitoring, métriques, santé
66
Différence entre /actuator/health et /actuator/metrics
Health : état application Metrics : statistiques performance
67
Qu’est-ce que Spring Boot Starter WebFlux ?
Framework réactif non bloquant pour applications web
68
Différence entre WebFlux et Spring MVC
WebFlux : réactif et non bloquant MVC : bloquant et synchrone
69
Qu’est-ce que Spring Boot Starter Cache ?
Module pour activer mise en cache facilement
70
Exemple d’implémentation cache
@EnableCaching @Cacheable @CacheEvict
71
Qu’est-ce que Spring Boot Starter Mail ?
Module pour envoyer emails facilement
72
Exemple configuration mail
spring.mail.host spring.mail.port spring.mail.username spring.mail.password
73
Qu’est-ce que Spring Boot Profiles Property Override ?
Surcharge de propriétés par profile via application-dev.properties
74
Différence entre @EventListener et ApplicationListener
@EventListener : annotation simple sur méthode ApplicationListener : implémentation interface listener
75
Qu’est-ce que Spring Boot Custom Starter ?
Créer dépendances réutilisables avec auto-configuration pour plusieurs projets
76
Qu’est-ce que Spring Boot Health Check Custom ?
Créer endpoint personnalisé pour vérifier état service
77
Qu’est-ce que Spring Boot TestRestTemplate ?
Classe pour tests d’API REST intégration facile
78
Différence entre MockMvc et TestRestTemplate
MockMvc : test controller isolé TestRestTemplate : test application complète avec HTTP
79
Qu’est-ce que Spring Boot Embedded Database ?
Base de données embarquée (H2) pour développement et test
80
Différence entre H2, HSQLDB et Derby
H2 : rapide et mémoire HSQLDB : simple Derby : Java pure, intégré
81
Qu’est-ce que Spring Boot Starter Thymeleaf ?
Dépendances pour créer applications web avec templates Thymeleaf
82
Exemple utilisation template
: syntaxe Thymeleaf
83
Qu’est-ce que Spring Boot Reactive Programming ?
Support réactif avec Flux, Mono pour traitement non bloquant
84
Différence entre Flux et Mono
Flux : plusieurs valeurs Mono : une seule valeur
85
Qu’est-ce que Spring Boot Integration Testing ?
Tester application complète avec contexte Spring chargé
86
Différence entre @SpringBootTest et @WebMvcTest
@SpringBootTest : charge contexte complet @WebMvcTest : teste uniquement controllers
87
Qu’est-ce que Spring Boot Starter Validation ?
Starter pour validation bean et annotations JSR-303
88
Différence entre starter et dependency
Starter : regroupement dépendances pour fonctionnalité Dependency : seule librairie
89
Qu’est-ce que Spring Boot Starter Logging ?
Starter pour configurer Logback, SLF4J, journaux par défaut
90
Qu’est-ce que Spring Boot Custom Error Page ?
Créer page erreur personnalisée avec @ControllerAdvice ou ErrorController
91
Qu’est-ce que Spring Boot ConfigurationProperties ?
Mapper configuration externe vers classe Java avec @ConfigurationProperties
92
Différence entre @ConfigurationProperties et @Value
@ConfigurationProperties : groupe de propriétés @Value : propriété unique
93
Qu’est-ce que Spring Boot DevTools Restart
Redémarrage automatique de l’application lors modification code source
94
Qu’est-ce que Spring Boot Starter AOP
Module pour programmer aspects avec Spring AOP
95
Différence entre AOP et programmation classique
AOP : séparation cross-cutting concerns classique : code intégré
96
Qu’est-ce que Spring Boot Starter Web
Module pour créer API REST avec Spring MVC
97
Différence entre REST Controller et MVC Controller
REST : retourne JSON/XML MVC : retourne vues
98
Qu’est-ce que Spring Boot Starter Data
Module pour gérer accès aux données avec Spring Data
99
Différence entre JDBC et JPA
JDBC : requêtes SQL directes JPA : ORM pour mapper objets Java
100
Qu’est-ce que Spring Boot Actuator Metrics
Collecte statistiques sur performances application
101
Qu’est-ce que Spring Boot Actuator Health
Vérification état général application
102
Différence entre Micrometer et Actuator
Micrometer : métriques multi-backend Actuator : endpoints santé et info
103
Qu’est-ce que Spring Boot Starter Security OAuth2
Module pour sécuriser application via OAuth2
104
Qu’est-ce que Spring Boot Starter TestMockito
Module pour tests unitaires avec Mockito
105
Différence entre @Mock et @Spy
@Mock : objet simulé @Spy : wrapper autour objet réel
106
Qu’est-ce que Spring Boot @Profile
Annotation pour définir beans selon environnement
107
Différence entre @Primary et @Qualifier
@Primary : bean préféré @Qualifier : choisir bean spécifique
108
Qu’est-ce que Spring Boot Starter Thymeleaf Extras
Modules pour extensions Thymeleaf (Spring Security)
109
Différence entre embedded Tomcat et Jetty
Tomcat : par défaut Jetty : alternatif léger et rapide
110
Qu’est-ce que Spring Boot Logging Pattern
Configuration format log via pattern
111
Différence entre logback et log4j
Logback : intégré Spring Boot Log4j : externe, configuration spécifique
112
Qu’est-ce que Spring Boot Starter Mail
Module pour envoi emails SMTP
113
Différence entre MailSender et JavaMailSender
MailSender : interface basique JavaMailSender : interface avancée Spring Boot
114
Qu’est-ce que Spring Boot ErrorAttributes
Objet exposé dans Actuator pour erreurs
115
Différence entre ResponseEntity et ModelAndView
ResponseEntity : API REST ModelAndView : rendu vues MVC