`` @ 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();