diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.java index 1bfa7127efc..13ebb3d4d69 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; +import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.annotation.Autowired; @@ -79,7 +80,7 @@ import com.mongodb.Mongo; @ConditionalOnClass({ Mongo.class, MongoTemplate.class }) @EnableConfigurationProperties(MongoProperties.class) @AutoConfigureAfter(MongoAutoConfiguration.class) -public class MongoDataAutoConfiguration { +public class MongoDataAutoConfiguration implements BeanClassLoaderAware { @Autowired private MongoProperties properties; @@ -90,6 +91,13 @@ public class MongoDataAutoConfiguration { @Autowired private ResourceLoader resourceLoader; + private ClassLoader classLoader; + + @Override + public void setBeanClassLoader(ClassLoader classLoader) { + this.classLoader = classLoader; + } + @Bean @ConditionalOnMissingBean public MongoDbFactory mongoDbFactory(Mongo mongo) throws Exception { @@ -151,7 +159,7 @@ public class MongoDataAutoConfiguration { for (BeanDefinition candidate : scanner .findCandidateComponents(basePackage)) { entitySet.add(ClassUtils.forName(candidate.getBeanClassName(), - MongoDataAutoConfiguration.class.getClassLoader())); + this.classLoader)); } } }