Vous êtes sur la page 1sur 8

12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

HowToDoInJava Python Java Botte de printemps

Tutoriel Spring Accueil / Spring Boot 2 / Annotations de Spring Boot Rechercher des didacticiels
Boot 2
Annotations de démarrage de Tapez et appuyez sur

printemps
Spring Boot -
Introduction
   
Spring Boot - Parent
démarreur Les annotations de démarrage à ressort sont principalement A DV E RT I S E M E N TS

Spring Boot - Modèles placées dans les packages


de démarrage
org.springframework.boot.autoconfigure et
Spring Boot - Projet
org.springframework.boot.autoconfigure.condition .
multi-module
Découvrons quelques annotations de démarrage de
Spring Boot -
Annotations
printemps fréquemment utilisées ainsi que celles qui
Spring Boot - fonctionnent en coulisse.
Configuration
automatique
Botte à ressort - AOP
1. @SpringBootApplication
Spring Boot - Spring boot concerne principalement la configuration
Journalisation
automatique. Cette auto-configuration se fait par balayage des A DV E RT I S E M E N TS
Spring Boot - DevTools
composants, c'est- à- dire en trouvant toutes les classes dans
Botte à ressort -
classspath pour l' @Component annotation. Cela implique
Emballage WAR
également l'analyse des @Configuration annotations et
Spring Boot - API REST
Botte à ressort - CRUD
l'initialisation de certains beans supplémentaires.
Botte de printemps -
@SpringBootApplication l'annotation permet toutes les
OAuth2
choses en une seule étape. Il active les trois fonctionnalités:
Spring Boot - Test
Spring Boot - 1. @EnableAutoConfiguration : activer le mécanisme de
RestTemplate
configuration automatique
Botte de printemps -
Thymeleaf 2. @ComponentScan : activer le scan @Component
A DV E RT I S E M E N TS
Spring Boot -
3. @SpringBootConfiguration : enregistrer des beans
Hibernate
supplémentaires dans le contexte
Spring Boot -
DataSource
Spring Boot - Gestion La classe java annotée avec @SpringBootApplication est
des erreurs
la classe principale d'une application Spring Boot et
Spring Boot - Mise en
l'application démarre à partir d'ici.
cache
Spring Boot -
Réessayer
import org.springframework.boot.SpringApplication;
Botte de printemps -
import org.springframework.boot.autoconfigure.SpringBootAppli
BasicAuth
Spring Boot - Base de @SpringBootApplication
données H2 public class Application {
Botte de printemps -
public static void main(String[] args) {
Ehcache 3.x
SpringApplication.run(Application.class, args);
Botte de printemps - }
Gson
Botte à ressort - RMI }

Spring Boot - Envoyer


un e-mail

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 1/8
12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

Spring Boot -
2. @EnableAutoConfiguration
Questions d'entrevue ASSISTANT MANAGER H/F
Chauvin Arnoux Con
Cette annotation permet la configuration automatique du Antony

Tutoriel Spring contexte d'application Spring, en essayant de deviner et de


Boot configurer les beans dont nous aurons probablement besoin
Gestionnaire ADV H/F
Spring Boot -
en fonction de la présence de classes prédéfinies dans le Page Personnel
A DV E RT I S E M E N TS
Con
Nanterre
CommandLineRunner chemin de classe.
Assistant administratif
Spring Boot -
Par exemple, si nous avons tomcat-embedded.jar sur le chemin ChargéF/H (H/F)
de marketing et Con
Configurer la jetée Groupe
média en Qualitel (H/F)
alternance
de classe, nous voudrons probablement un fichier MEDIAPARIS
INSTITUTE
Con
Spring Boot - Port par
Paris
défaut Tomcat TomcatServletWebServerFactory .
Préparateur de
Spring Boot - Racine Assistante
commandes administrative
CACES 1 H/F
Comme cette annotation est déjà incluse via et commerciale secteur
PLANETT IDF-SOA
Con
de contexte immobilier (H/F) Con
Saint-Ouen-l'Aumône
@SpringBootApplication , l'ajouter à nouveau sur la classe WALTER BOULOGNE
Spring Boot - SSL
Boulogne-Billancourt
[https] principale n'a aucun impact. Il est également conseillé de
Technicien vérificateur
Spring Boot - Récupère n'inclure cette annotation qu'une seule fois via extincteur
Assistant H/F
administratif Con
Page
F/HPersonnel
(H/F)
tous les beans chargés @SpringBootApplication . Toulouse
Groupe Qualitel
Con
Spring Boot - PARIS

PropertyEditor Les classes de configuration automatique sont des beans de Chargé de marketing et
média
Chefen
dealternance
service de(H/F)
Spring Boot - configuration Spring standard. Ils sont localisés à l'aide du MEDIA INSTITUTE
la Con
sécurité civile H/F
@EnableScheduling SpringFactoriesLoader mécanisme (indexé sur cette classe). HaysParis
France
Con
Argenteuil
Botte de printemps - En général, les beans de configuration automatique sont des
Jersey Assistant Commercial /
@Conditional beans (le plus souvent utilisant ADV (h/f)
Con
Spring Boot - Service Orsys
@ConditionalOnClass et La Défense
Web SOAP
@ConditionalOnMissingBean annotations).
Spring Boot - Client Assistante administrative
SOAP et commerciale secteur
immobilier (H/F) Con
Spring Boot - 3. @SpringBootConfiguration WALTER BOULOGNE
Boulogne-Billancourt
JMSTemplate
Spring Boot - API REST Il indique qu'une classe fournit la configuration de l'application
Spring Boot - Vue JSP Spring Boot. Il peut être utilisé comme une alternative à l'
Spring Boot - Points de @Configuration annotation standard de Spring afin que la
terminaison de configuration puisse être trouvée automatiquement.
l'actionneur
Spring Boot - Sécurité L'application ne doit jamais inclure qu'une seule
basée sur les rôles @SpringBootConfiguration et la plupart des applications
Spring Boot - Flux RSS Spring Boot idiomatiques en hériteront
/ ATOM
@SpringBootApplication .
Botte de printemps -
Ehcache 2.x La principale différence réside dans les deux annotations qui
@SpringBootConfiguration permettent de localiser
automatiquement la configuration. Cela peut être
particulièrement utile pour les tests unitaires ou d'intégration.

4. @ImportAutoConfiguration
Il importe et applique uniquement les classes de configuration
automatique spécifiées. La différence entre
@ImportAutoConfiguration et
@EnableAutoConfiguration est que les tentatives ultérieures
de configurer les beans qui se trouvent dans le chemin de
classe pendant l'analyse, alors

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 2/8
12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

@ImportAutoConfiguration que n'exécute que les classes de


configuration que nous fournissons dans l'annotation.

Nous devrions utiliser @ImportAutoConfiguration lorsque


nous ne voulons pas activer la configuration automatique par
défaut.

Exemple de @ImportAutoConfiguration

@ComponentScan("path.to.your.controllers")
@ImportAutoConfiguration({WebMvcAutoConfiguration.class
,DispatcherServletAutoConfiguration.class
,EmbeddedServletContainerAutoConfiguration.class
,ServerPropertiesAutoConfiguration.class
,HttpMessageConvertersAutoConfiguration.class})
public class App
{
public static void main(String[] args)
{
SpringApplication.run(App.class, args);
}
}

5. @AutoConfigureBefore,
@AutoConfigureAfter,
@AutoConfigureOrder
Nous pouvons utiliser les annotations
@AutoConfigureAfter ou @AutoConfigureBefore si notre
configuration doit être appliquée dans un ordre spécifique
(avant ou après).

Si nous voulons commander certaines auto-configurations qui


ne devraient pas avoir de connaissance directe les unes des
autres, nous pouvons également utiliser
@AutoConfigureOrder . Cette annotation a la même
sémantique que l' @Order annotation régulière mais fournit un
ordre dédié pour les classes de configuration automatique.

@AutoConfigureAfter Exemple

@Configuration
@AutoConfigureAfter(CacheAutoConfiguration.class)
@ConditionalOnBean(CacheManager.class)
@ConditionalOnClass(CacheStatisticsProvider.class)
public class RedissonCacheStatisticsAutoConfiguration
{
@Bean
public RedissonCacheStatisticsProvider redissonCacheStati
return new RedissonCacheStatisticsProvider();
}
}

5. Annotations de condition

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 3/8
12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

Toutes les classes de configuration automatique ont


généralement une ou plusieurs @Conditional annotations. Il
permet d'enregistrer un bean uniquement lorsque la condition
est remplie. Voici quelques annotations conditionnelles utiles à
utiliser.

5.1. @ConditionalOnBean et
@ConditionalOnMissingBean

Ces annotations permettent d'inclure un haricot en fonction de


la présence ou de l'absence de haricots spécifiques.

Son value attribut est utilisé pour spécifier les beans par type
ou by name . De plus, l' search attribut nous permet de limiter
la ApplicationContext hiérarchie à prendre en compte lors
de la recherche de beans.

L'utilisation de ces annotations au niveau de la classe empêche


l'enregistrement de la @Configuration classe en tant que
bean si la condition ne correspond pas.

Dans l'exemple ci-dessous, le bean


JpaTransactionManager ne sera chargé que si un bean de
type JpaTransactionManager n'est pas déjà défini dans le
contexte de l'application.

@Bean
@ConditionalOnMissingBean(type = "JpaTransactionManager")
JpaTransactionManager transactionManager(EntityManagerFactory
{
JpaTransactionManager transactionManager = new JpaTransac
transactionManager.setEntityManagerFactory(entityManagerF
return transactionManager;
}

5.2. @ConditionalOnClass et
@ConditionalOnMissingClass

Ces annotations permettent d'inclure des classes de


configuration en fonction de la présence ou de l'absence de
classes spécifiques. Notez que les métadonnées d'annotation
sont analysées à l'aide du module Spring ASM, et même si une
classe peut ne pas être présente à l'exécution, vous pouvez
toujours faire référence à la classe dans l'annotation.

Nous pouvons également utiliser l' value attribut pour faire


référence à la classe réelle ou l' name attribut pour spécifier le
nom de la classe en utilisant une valeur String.

La configuration ci-dessous ne sera créée


EmbeddedAcmeService que si cette classe est disponible au
runtime et qu'aucun autre bean du même nom n'est présent
dans le contexte de l'application.

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 4/8
12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

@Configuration
@ConditionalOnClass(EmbeddedAcmeService.class)
static class EmbeddedConfiguration
{

@Bean
@ConditionalOnMissingBean
public EmbeddedAcmeService embeddedAcmeService() { ... }

5.3. @ConditionalOnNotWebApplication et
@ConditionalOnWebApplication

Ces annotations permettent d'inclure la configuration selon


que l'application est une «application web» ou non. Au
printemps, une application Web répond à au moins l'une des
trois exigences ci-dessous:

1. utilise un ressort WebApplicationContext

2. définit une session portée

3. a un StandardServletEnvironment

5.4. @ConditionalOnProperty

Cette annotation permet d'inclure la configuration en fonction


de la présence et de la valeur d'une propriété Spring
Environment.

Par exemple, si nous avons différentes définitions de sources


de données pour différents environnements, nous pouvons
utiliser cette annotation.

@Bean
@ConditionalOnProperty(name = "env", havingValue = "local")
DataSource dataSource()
{
// ...
}

@Bean
@ConditionalOnProperty(name = "env", havingValue = "prod")
DataSource dataSource()
{
// ...
}

5.5. @ConditionalOnResource

Cette annotation permet d'inclure la configuration uniquement


lorsqu'une ressource spécifique est présente dans le chemin de
classe. Les ressources peuvent être spécifiées en utilisant les
conventions Spring habituelles.

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 5/8
12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

@ConditionalOnResource(resources = "classpath:vendor.properti
Properties additionalProperties()
{
// ...
}

5.6. @ConditionalOnExpression

Cette annotation permet d'inclure la configuration en fonction


du résultat d'une expression SpEL . Utilisez cette annotation
lorsque la condition à évaluer est complexe et doit être évaluée
comme une seule condition.

@Bean
@ConditionalOnExpression("${env} && ${havingValue == 'local'}
DataSource dataSource()
{
// ...
}

5.7. @ConditionalOnCloudPlatform

Cette annotation permet d'inclure la configuration lorsque la


plate-forme cloud spécifiée est active.

@Configuration
@ConditionalOnCloudPlatform(CloudPlatform.CLOUD_FOUNDRY)
public class CloudConfigurationExample
{
@Bean
public MyBean myBean(MyProperties properties)
{
return new MyBean(properties.getParam);
}
}

Envoyez-moi vos questions relatives aux annotations de


printemps dans les commentaires.

Bon apprentissage !!

Réf: Spring Boot Docs

A DV E RT I S E M E N TS

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 6/8
12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

Assistant administratif
F/H (H/F) Consultez
Partagez ceci: ASSISTANT(E)
COMMERCIAL(E) (H/F) Consultez
 Twitter Chargé
Facebook  LinkedIn
de marketing et
 Reddit
média en alternance (H/F) Consultez
Assistante administrative
et commerciale secteur Consultez
A DV E RT I S E M E N TS

i bili (H/F)
Agent administratif (H/F)
Armée de Terre Consultez

A propos de Lokesh Gupta

Un gars de la famille avec une nature aimante. Aime les


ordinateurs, la programmation et la résolution de
problèmes quotidiens. Retrouvez-moi sur Facebook et
Twitter .

Rétroaction, discussion et commentaires

Gani

15 décembre 2019

Salut

Belle explication, nous pouvons facilement comprendre


quel bean quand utiliser

Merci

vishwas tyagi

24 novembre 2019

Pourriez-vous s'il vous plaît expliquer plus en détail la


différence entre @EnableAutoConfiguration et
@SpringBootConfiguration et @SpringBootApplication.
Veuillez également améliorer votre contenu. Votre
écriture est très verbeuse et ambiguë.

Lokesh Gupta

26 novembre 2019

Merci pour les commentaires.

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 7/8
12/04/2021 Annotations de démarrage de printemps - HowToDoInJava

Les commentaires sont désactivés sur cet


article!

Liens méta lecture recommandée

Sur moi 10 leçons de vie


Nous contacter Algorithmes de hachage sécurisé
Politique de confidentialité Comment fonctionnent les serveurs Web?
Afficher Comment Java I / O fonctionne-t-il en interne?
Messages invités et sponsorisés Meilleur moyen d'apprendre Java
Guide des meilleures pratiques Java
Tutoriel sur les microservices
Tutoriel de l'API REST
Comment démarrer un nouveau blog

Copyright © 2020 · HowToDoInjava.com · Tous droits réservés. | Plan du site

Nouvelles fonctionnalités de Java 15 Classes et interfaces scellées EdDSA (Ed25519 / Ed448)

https://howtodoinjava.com/spring-boot2/spring-boot-annotations/ 8/8

Vous aimerez peut-être aussi