org.springframework.boot.SpringApplication#getInitializers ( )源码实例Demo

下面列出了org.springframework.boot.SpringApplication#getInitializers ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

private void addAncestorInitializer(SpringApplication application,
		ConfigurableApplicationContext context) {
	boolean installed = false;
	for (ApplicationContextInitializer<?> initializer : application
			.getInitializers()) {
		if (initializer instanceof AncestorInitializer) {
			installed = true;
			// New parent
			((AncestorInitializer) initializer).setParent(context);
		}
	}
	if (!installed) {
		application.addInitializers(new AncestorInitializer(context));
	}

}
 
@SuppressWarnings("unchecked")
private void addBootstrapDecryptInitializer(SpringApplication application) {
	DelegatingEnvironmentDecryptApplicationInitializer decrypter = null;
	Set<ApplicationContextInitializer<?>> initializers = new LinkedHashSet<>();
	for (ApplicationContextInitializer<?> ini : application.getInitializers()) {
		if (ini instanceof EnvironmentDecryptApplicationInitializer) {
			@SuppressWarnings("rawtypes")
			ApplicationContextInitializer del = ini;
			decrypter = new DelegatingEnvironmentDecryptApplicationInitializer(del);
			initializers.add(ini);
			initializers.add(decrypter);
		}
		else if (ini instanceof DelegatingEnvironmentDecryptApplicationInitializer) {
			// do nothing
		}
		else {
			initializers.add(ini);
		}
	}
	ArrayList<ApplicationContextInitializer<?>> target = new ArrayList<ApplicationContextInitializer<?>>(
			initializers);
	application.setInitializers(target);
}
 
@SuppressWarnings("unchecked")
private void apply(ConfigurableApplicationContext context,
		SpringApplication application, ConfigurableEnvironment environment) {
	if (application.getAllSources().contains(BootstrapMarkerConfiguration.class)) {
		return;
	}
	application.addPrimarySources(Arrays.asList(BootstrapMarkerConfiguration.class));
	@SuppressWarnings("rawtypes")
	Set target = new LinkedHashSet<>(application.getInitializers());
	target.addAll(
			getOrderedBeansOfType(context, ApplicationContextInitializer.class));
	application.setInitializers(target);
	addBootstrapDecryptInitializer(application);
}