Use bean classloader for Mongo entity scanning
Fixes gh-3162
This commit is contained in:
parent
da5ed8f545
commit
cc8120f9eb
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue