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.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.BeanClassLoaderAware;
|
||||||
import org.springframework.beans.factory.BeanFactory;
|
import org.springframework.beans.factory.BeanFactory;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -79,7 +80,7 @@ import com.mongodb.Mongo;
|
||||||
@ConditionalOnClass({ Mongo.class, MongoTemplate.class })
|
@ConditionalOnClass({ Mongo.class, MongoTemplate.class })
|
||||||
@EnableConfigurationProperties(MongoProperties.class)
|
@EnableConfigurationProperties(MongoProperties.class)
|
||||||
@AutoConfigureAfter(MongoAutoConfiguration.class)
|
@AutoConfigureAfter(MongoAutoConfiguration.class)
|
||||||
public class MongoDataAutoConfiguration {
|
public class MongoDataAutoConfiguration implements BeanClassLoaderAware {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MongoProperties properties;
|
private MongoProperties properties;
|
||||||
|
@ -90,6 +91,13 @@ public class MongoDataAutoConfiguration {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ResourceLoader resourceLoader;
|
private ResourceLoader resourceLoader;
|
||||||
|
|
||||||
|
private ClassLoader classLoader;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBeanClassLoader(ClassLoader classLoader) {
|
||||||
|
this.classLoader = classLoader;
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public MongoDbFactory mongoDbFactory(Mongo mongo) throws Exception {
|
public MongoDbFactory mongoDbFactory(Mongo mongo) throws Exception {
|
||||||
|
@ -151,7 +159,7 @@ public class MongoDataAutoConfiguration {
|
||||||
for (BeanDefinition candidate : scanner
|
for (BeanDefinition candidate : scanner
|
||||||
.findCandidateComponents(basePackage)) {
|
.findCandidateComponents(basePackage)) {
|
||||||
entitySet.add(ClassUtils.forName(candidate.getBeanClassName(),
|
entitySet.add(ClassUtils.forName(candidate.getBeanClassName(),
|
||||||
MongoDataAutoConfiguration.class.getClassLoader()));
|
this.classLoader));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue