diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java index f87954d8ef..51abb0c7c5 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java @@ -463,7 +463,7 @@ public class SpringApplication { } private List getSpringFactoriesInstances(Class type, ArgumentResolver argumentResolver) { - return SpringFactoriesLoader.forDefaultResourceLocation(getClassLoader()).load(type, argumentResolver); + return SpringFactoriesLoader.forDefaultResourceLocation(getClassLoader(null)).load(type, argumentResolver); } private ConfigurableEnvironment getOrCreateEnvironment() { @@ -713,10 +713,11 @@ public class SpringApplication { * @return a ClassLoader (never null) */ public ClassLoader getClassLoader() { - if (this.resourceLoader != null) { - return this.resourceLoader.getClassLoader(); - } - return ClassUtils.getDefaultClassLoader(); + return getClassLoader(ClassUtils.getDefaultClassLoader()); + } + + private ClassLoader getClassLoader(ClassLoader fallback) { + return (this.resourceLoader != null) ? this.resourceLoader.getClassLoader() : fallback; } /**