mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Defer background pre-init till the environment is prepared
Previously, background pre-init was started in response to the application starting event. This meant that it would be running while the logging turbo filter was in place and was rejecting all logging. As a result, any logging performed during pre-init would be lost. This commit changes background pre-init so that it is now started in response to the application environment prepared event. By this point, the logging turbo filter has been removed as the logging levels have been configured from the environment. Closes gh-21897
This commit is contained in:
parent
b98c3dccfd
commit
16eaae0b2f
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -23,9 +23,9 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import javax.validation.Configuration;
|
||||
import javax.validation.Validation;
|
||||
|
||||
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
|
||||
import org.springframework.boot.context.event.ApplicationFailedEvent;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.boot.context.event.ApplicationStartingEvent;
|
||||
import org.springframework.boot.context.event.SpringApplicationEvent;
|
||||
import org.springframework.boot.context.logging.LoggingApplicationListener;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
@ -66,7 +66,7 @@ public class BackgroundPreinitializer implements ApplicationListener<SpringAppli
|
||||
@Override
|
||||
public void onApplicationEvent(SpringApplicationEvent event) {
|
||||
if (!Boolean.getBoolean(IGNORE_BACKGROUNDPREINITIALIZER_PROPERTY_NAME)
|
||||
&& event instanceof ApplicationStartingEvent && multipleProcessors()
|
||||
&& event instanceof ApplicationEnvironmentPreparedEvent && multipleProcessors()
|
||||
&& preinitializationStarted.compareAndSet(false, true)) {
|
||||
performPreinitialization();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user