[JAVA] Comment se lier avec un fichier de propriétés dans Spring Boot

Dans Spring Boot, nous avons résumé la méthode de liaison avec le fichier de propriétés.

Bruant unique

Liez les propriétés suivantes aux champs Java.

application.properties


foo.intervel=1000
bar.intervel=500

Tout d'abord, créez une classe de contexte en spécifiant le playfix avec @ ConfigurationProperties pour chaque playfix (foo, bar).

@ConfigurationProperties(prefix="foo")
public class FooContext {
	
	private int intervel;
	
	public int getIntervel() {
		return intervel;
	}

	public void setIntervel(int intervel) {
		this.intervel = intervel;
	}
}
@ConfigurationProperties(prefix="bar")
public class BarContext {
	
	private int intervel = 10; //Vous pouvez spécifier la valeur par défaut ici
	
	public int getIntervel() {
		return intervel;
	}

	public void setIntervel(int intervel) {
		this.intervel = intervel;
	}
}

Après cela, vous pouvez enregistrer la classe de contexte dans DI.

@Configuration
public class PropertiesConfiguration {
	
	@Bean
	public FooContext fooConfig() {
		return new FooContext();
	}

	@Bean
	public BarContext barConfig() {
		return new BarContext();
	}
}

Obtenez la valeur de la propriété avec le sentiment suivant.

	@Autowired
	private FooContext fooContext;

	@Autowired
	private BarContext barContext;
	
	public void test {
		int fooIntervel = fooContext.getIntervel();
		int barIntervel = barContext.getIntervel();
	}

Dans le cas d'un cas de chameau, vous pouvez relier les mots avec des tirets ou laisser le chameau tel quel.

@ConfigurationProperties(prefix="foo")
public class FooContext {
	
	private int itemName;
	
	// getter & setter
}

application.properties


foo.item-name=apple

application.properties


foo.itemName=apple

Reliure avec le type Collection

Pour les listes et les tableaux, liez-vous aux propriétés avec la sensation suivante:

@ConfigurationProperties(prefix="foo")
public class FooContext {
	
	private List<String> items;    //or private String[] items;

	// getter & setter
}

application.properties


foo.items[0]=apple
foo.items[1]=banana

Vous pouvez également l'écrire séparé par des virgules.

application.properties


foo.items=apple,banana,...

Liaison avec le type de carte

Dans le cas du type Map, liez à la propriété avec le sentiment suivant.

@ConfigurationProperties(prefix="foo")
public class FooContext {
	
	private Map<String, String> itemMap;
	
	// getter & setter
}

application.properties


foo.item-map.key1=apple
foo.item-map.key2=banana

Liaison d'objets imbriqués

Dans le cas d'un objet imbriqué, liez-le à la propriété avec le sentiment suivant.

@ConfigurationProperties(prefix="foo")
public class FooContext {
	
	private Product product;	
	
	// getter & setter
}
public class Product {
	
	private String productId;
	private String productName;
	
	// getter & setter

application.properties


foo.product.product-id=001
foo.product.product-name=apple

Il en va de même pour la liste + l'imbrication.

@ConfigurationProperties(prefix="foo")
public class FooContext {
	
	private List<Product> products;	
	
	// getter & setter
}

application.properties


foo.products[0].product-id=001
foo.products[0].product-name=apple
foo.products[1].product-id=002
foo.products[1].product-name=banana

Liaison à plusieurs fichiers de propriétés dans classpath

Utilisez @ PropertySources pour spécifier plusieurs fichiers de propriétés dans le chemin de classe.

@SpringBootApplication
@PropertySources({
    @PropertySource("classpath:application.properties"),
    @PropertySource("classpath:another.properties")
})
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

Liaison de propriété externe

Lorsque vous utilisez un fichier de propriétés externe, spécifiez le chemin du fichier sur la ligne de commande de démarrage.

java -jar demo.jar --spring.config.location="file:/tmp/properties/application.properties"

Recommended Posts

Comment se lier avec un fichier de propriétés dans Spring Boot
[Spring Boot] Comment se référer au fichier de propriétés
Comment diviser un fichier de message Spring Boot
Comment ajouter un chemin de classe dans Spring Boot
Étapes pour rendre Spring Boot capable de faire référence à la valeur dans le fichier de propriétés
Comment les propriétés de bean lient les paramètres de requête de style liste dans Spring
Comment créer un projet Spring Boot dans IntelliJ
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Comment tester l'écran de téléchargement de fichiers avec Spring + Selenium
Comment utiliser Lombok au printemps
Comment configurer Spring Boot + PostgreSQL
Comment utiliser ModelMapper (Spring boot)
Comment définir des variables d'environnement dans le fichier de propriétés de l'application Spring Boot
Comment modifier la valeur de paramètre de application.properties au moment du démarrage dans Spring Boot
Découpez SQL en fichier de propriété avec jdbcTemplate of spring boot
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment contrôler les transactions dans Spring Boot sans utiliser @Transactional
Mémorandum de téléchargement de fichier local avec Spring Boot
Comment ajouter un fichier jar dans ScalaIDE
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment utiliser h2db intégré avec Spring Boot
Comment réduire l'image de Spring Boot Docker
Comment utiliser les attributs de session Spring Boot (@SessionAttributes)
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
Comment définir plusieurs orm.xml dans Spring4, JPA2.1
Spring Boot - Comment définir le délai d'expiration de la session
[Spring Boot] Comment obtenir des propriétés dynamiquement à partir d'une chaîne contenue dans une URL
Comment définir l'injection de dépendance Spring Boot (DI)
Comment écrire un test unitaire pour Spring Boot 2
[Spring Boot] Comment créer un projet (pour les débutants)
Comment convertir un fichier en tableau d'octets en Java
Comment déboguer le fichier jar généré avec Eclipse
Comment démarrer par environnement avec Spring Boot de Maven
Comment utiliser le référentiel de jobs en mémoire avec Spring Batch
Essayez Spring Boot de 0 à 100.
Multi-projets Spring Boot 2 avec Gradle
Introduction à Spring Boot ① ~ DI ~
Téléchargement de fichiers avec Spring Boot
Introduction à Spring Boot ② ~ AOP ~
Changements majeurs dans Spring Boot 1.5
NoHttpResponseException dans Spring Boot + WireMock
Introduction à Spring Boot, partie 1
Comment implémenter le processus d'authentification en spécifiant le nom d'utilisateur et le mot de passe dans Spring Boot
Comment lire votre propre fichier YAML (*****. Yml) en Java
[Rails 5] lien japanMap Comment écrire des paramètres dans le fichier js.erb
Configurer le résolveur en plusieurs parties pour permettre à Spring de télécharger des fichiers
Utilisez @ControllerAdvice, @ExceptionHandler, HandlerExceptionResolver dans Spring Boot pour intercepter les exceptions
Je souhaite contrôler la taille de fichier maximale pour le téléchargement de fichiers pour chaque URL dans Spring Boot
Découvrons comment recevoir avec Request Body avec l'API REST de Spring Boot
Spring Boot Hello World dans Eclipse
Développement d'applications Spring Boot dans Eclipse
Comment faire un test unitaire de Spring AOP
Comment exécuter JUnit dans Eclipse
Comment itérer indéfiniment en Ruby
Remarques sur l'utilisation de Spring Data JDBC
Comment exécuter Ant dans Gradle
Écrire du code de test avec Spring Boot
Comment maîtriser la programmation en 3 mois