[JAVA] Effectuer manuellement un traitement équivalent à @ConfigurationProperties

`` @ ConfigurationProperties '' de Spring Boot est un mécanisme qui lit automatiquement la valeur de paramètre du fichier de propriétés, mais je souhaite décrire manuellement un processus similaire.

Par exemple, supposons que vous ayez maintenant le `` kafka.properties``` suivant et que vous vouliez le charger dans `ʻorg.springframework.boot.autoconfigure.kafka.KafkaProperties```.

kafka.properties


spring.kafka.bootstrap-servers=localhost:32770
spring.kafka.consumer.group-id=java-consumer-group

KafkaProperties


@ConfigurationProperties(prefix = "spring.kafka")
public class KafkaProperties {
  ...

Pour ce faire, utilisez MapConfigurationPropertySource '' avec Map comme source des paramètres (`` Propriétés hérite de` `` Hashtable```. Il y a).

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Properties;

import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.boot.context.properties.source.ConfigurationPropertySource;
import org.springframework.boot.context.properties.source.MapConfigurationPropertySource;

public class HogeMain {
	public static void main(String[] args) throws IOException {
		Properties properties = new Properties();
		properties.load(Files.newInputStream(Paths.get("kafka.properties")));

		ConfigurationPropertySource source= new MapConfigurationPropertySource(properties);
		Binder binder = new Binder(source);

		KafkaProperties kafkaProperties = binder.bind("spring.kafka", KafkaProperties.class).get();
	}
}

Dans le cas de yaml, Propriétés '' peut être obtenu à partir de YamlPropertiesFactoryBean '', alors laissez-le passer.

YamlPropertiesFactoryBean y = new YamlPropertiesFactoryBean();
y.setResources(new ClassPathResource("hoge.yml"));
Properties object = y.getObject();

référence

Recommended Posts

Effectuer manuellement un traitement équivalent à @ConfigurationProperties
Je souhaite effectuer un traitement d'agrégation avec spring-batch
Bibliothèque de traitement facile à créer
Je souhaite effectuer un traitement asynchrone et une exécution périodique avec Rail !!!