Propriétés d’application et profils
Externalisez la configuration avec application.properties/yml, définissez des profils et injectez des valeurs avec @Value et @ConfigurationProperties.
Propriétés d’application et profils est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.
application.properties ou application.yml
Spring Boot lit la configuration depuis src/main/resources/application.properties ou application.yml. YAML prend en charge une configuration hiérarchique sans répétition des clés ; les deux formats offrent les mêmes fonctionnalités.
# application.properties:
server.port=8080
spring.datasource.url=jdbc:postgresql://localhost/mydb
spring.jpa.hibernate.ddl-auto=validate
# Equivalent application.yml:
server:
port: 8080
spring:
datasource:
url: jdbc:postgresql://localhost/mydb
jpa:
hibernate:
ddl-auto: validateInjecter des valeurs avec @Value
Utilisez @Value("${property.key}") pour injecter une propriété unique. Ajoutez une valeur par défaut avec ${key:default}. Les expressions SpEL sont prises en charge.
@Service
public class PricingService {
@Value("${pricing.vat-rate:0.20}")
private double vatRate;
@Value("${app.name}")
private String appName;
}@ConfigurationProperties pour une liaison fortement typée
Liez un groupe de propriétés associées à un enregistrement Java ou à une classe annoté avec @ConfigurationProperties. Les annotations de validation sont prises en charge.
@ConfigurationProperties(prefix = "app.mail")
public record MailProperties(
@NotBlank String host,
@Min(1) @Max(65535) int port,
boolean ssl
) {}
// Bind in Spring Boot 3: @EnableConfigurationProperties(MailProperties.class)Profils : définir les environnements
Les profils vous permettent de disposer de configurations propres à chaque environnement. Définissez des composants ou des propriétés actifs uniquement lorsqu’un profil donné est actif.
# application-dev.properties (active when profile=dev):
spring.datasource.url=jdbc:h2:mem:testdb
logging.level.com.example=DEBUG
# application-prod.properties (active when profile=prod):
spring.datasource.url=jdbc:postgresql://prod-db/app
logging.level.com.example=WARNActiver les profils
Activez un profil via application.properties, une variable d’environnement, une propriété système ou SPRING_PROFILES_ACTIVE de Spring Boot.
# application.properties:
spring.profiles.active=dev
# Or environment variable:
export SPRING_PROFILES_ACTIVE=prod
# Or JVM argument:
java -Dspring.profiles.active=prod -jar app.jar@Profile sur les composants
Annotez un @Bean ou un @Component avec @Profile("prod") pour l’enregistrer uniquement lorsque le profil correspondant est actif.
@Configuration
public class DataSourceConfig {
@Bean @Profile("dev")
public DataSource h2DataSource() { return new EmbeddedDatabaseBuilder().build(); }
@Bean @Profile("prod")
public DataSource postgresDataSource() { return DataSourceBuilder.create().url(prodUrl).build(); }
}Groupes de profils (Spring Boot 2.4+)
Regroupez plusieurs profils sous un même nom. L’activation du groupe active simultanément tous les profils répertoriés.
# application.properties:
spring.profiles.group.production=prod,metrics,cloudConfiguration externalisée avec des variables d’environnement
Spring Boot associe automatiquement les variables d’environnement aux propriétés. DB_HOST est associé à db.host (liaison souple). C’est idéal pour les déploiements Docker et Kubernetes.
# application.properties:
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASS}Priorité de remplacement des propriétés
Les propriétés sont appliquées par ordre de priorité : arguments de la ligne de commande > variables d’environnement > fichiers propres aux profils > application.properties > valeurs par défaut. Les sources prioritaires remplacent les sources moins prioritaires.
Chiffrement des propriétés sensibles avec Jasypt
Les valeurs sensibles, comme les mots de passe, peuvent être chiffrées avec Jasypt pour Spring Boot. Stockez la valeur chiffrée dans les propriétés ; Jasypt la déchiffre au démarrage à l’aide d’une clé principale transmise comme argument de JVM.
# application.properties:
spring.datasource.password=ENC(k9r/2dfhXPQz+2jR8yzUYw==)
# JVM arg:
java -Djasypt.encryptor.password=masterSecret -jar app.jarFichiers YAML à plusieurs documents
Les fichiers YAML prennent en charge plusieurs documents séparés par ---. Utilisez spring.config.activate.on-profile dans chaque document pour définir une configuration propre au profil.
server:
port: 8080
---
spring:
config:
activate:
on-profile: prod
server:
port: 443Vérification rapide
Quelle annotation associe un groupe de propriétés liées à une classe Java avec une vérification des types ?
Récapitulatif
Utilisez application.properties / application.yml pour la configuration. @Value pour les valeurs uniques ; @ConfigurationProperties pour les groupes. Les profils séparent les environnements. Les variables d’environnement remplacent les propriétés — ce qui est essentiel pour les conteneurs.
Questions Fréquemment Posées
La leçon « Propriétés d’application et profils » est-elle gratuite ?
Oui — le texte complet de « Propriétés d’application et profils » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Propriétés d’application et profils » ?
Externalisez la configuration avec application.properties/yml, définissez des profils et injectez des valeurs avec @Value et @ConfigurationProperties. Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Java Academy ?
Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Propriétés d’application et profils » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?
Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Auto-configuration et starters Spring Boot
- Propriétés d’application et profils
- Câblage des beans : @Component, @Service, @Repository
- Injection par constructeur et dépendances circulaires