SpringFactoriesEnvironmentPostProcessorsFactory Class — spring-boot Architecture
Architecture documentation for the SpringFactoriesEnvironmentPostProcessorsFactory class in SpringFactoriesEnvironmentPostProcessorsFactory.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot/src/main/java/org/springframework/boot/support/SpringFactoriesEnvironmentPostProcessorsFactory.java lines 39–85
class SpringFactoriesEnvironmentPostProcessorsFactory implements EnvironmentPostProcessorsFactory {
private final SpringFactoriesLoader loader;
SpringFactoriesEnvironmentPostProcessorsFactory(SpringFactoriesLoader loader) {
this.loader = loader;
}
@Override
public List<EnvironmentPostProcessor> getEnvironmentPostProcessors(DeferredLogFactory logFactory,
ConfigurableBootstrapContext bootstrapContext) {
ArgumentResolver argumentResolver = ArgumentResolver.of(DeferredLogFactory.class, logFactory);
argumentResolver = argumentResolver.and(ConfigurableBootstrapContext.class, bootstrapContext);
argumentResolver = argumentResolver.and(BootstrapContext.class, bootstrapContext);
argumentResolver = argumentResolver.and(BootstrapRegistry.class, bootstrapContext);
List<Object> postProcessors = new ArrayList<>();
postProcessors.addAll(this.loader.load(EnvironmentPostProcessor.class, argumentResolver));
postProcessors.addAll(loadDeprecatedPostProcessors(argumentResolver));
AnnotationAwareOrderComparator.sort(postProcessors);
return postProcessors.stream().map(Adapter::apply).collect(Collectors.toCollection(ArrayList::new));
}
@SuppressWarnings("removal")
private List<org.springframework.boot.env.EnvironmentPostProcessor> loadDeprecatedPostProcessors(
ArgumentResolver argumentResolver) {
return this.loader.load(org.springframework.boot.env.EnvironmentPostProcessor.class, argumentResolver);
}
@SuppressWarnings("removal")
record Adapter(
org.springframework.boot.env.EnvironmentPostProcessor postProcessor) implements EnvironmentPostProcessor {
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
this.postProcessor.postProcessEnvironment(environment, application);
}
static EnvironmentPostProcessor apply(Object source) {
if (source instanceof EnvironmentPostProcessor environmentPostProcessor) {
return environmentPostProcessor;
}
return new Adapter((org.springframework.boot.env.EnvironmentPostProcessor) source);
}
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free