X-Git-Url: https://juplo.de/gitweb/?p=demos%2Fmultiple-beans;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fmultiplebeans%2FMultipleBeansEnvironmentPostProcessor.java;fp=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemos%2Fmultiplebeans%2FMultipleBeansEnvironmentPostProcessor.java;h=0e31555c39755c823be8d7a54b0b0d6a1576260e;hp=0000000000000000000000000000000000000000;hb=508a04086767d06b2e6eb32424114c4510569b1f;hpb=5b79c911d30b8b369f8bf01955b5fcb25de11307 diff --git a/src/main/java/de/juplo/demos/multiplebeans/MultipleBeansEnvironmentPostProcessor.java b/src/main/java/de/juplo/demos/multiplebeans/MultipleBeansEnvironmentPostProcessor.java new file mode 100644 index 0000000..0e31555 --- /dev/null +++ b/src/main/java/de/juplo/demos/multiplebeans/MultipleBeansEnvironmentPostProcessor.java @@ -0,0 +1,29 @@ +package de.juplo.demos.multiplebeans; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.env.EnvironmentPostProcessor; +import org.springframework.core.env.ConfigurableEnvironment; +import org.springframework.core.env.PropertySource; + +import java.util.Arrays; + +public class MultipleBeansEnvironmentPostProcessor implements EnvironmentPostProcessor { + + @Override + public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { + String sites = null; + for (PropertySource source : environment.getPropertySources()) { + Object found = source.getProperty("juplo.sites"); + if (found != null) + sites = found.toString(); + } + + if (sites == null) + throw new IllegalArgumentException("Parameter juplo.sites is not set!"); + + application.addInitializers(new MultipleBeansApplicationContextInitializer( + Arrays.stream(sites.split(",")) + .map(site -> site.trim()) + .toArray(size -> new String[size]))); + } +} \ No newline at end of file