类似Spring Boot的方法是创建一个具有所需属性的AutoConfiguration,它创建一个Datastore实例作为bean.
在Reference Guide中,您将找到如何设置属性并连接到MongoDB.
Morphia的AutoConfiguration可能如下所示:
@Configuration
public class MorphiaAutoConfiguration {
@Autowired
private MongoClient mongoClient; // created from MongoAutoConfiguration
@Bean
public Datastore datastore() {
Morphia morphia = new Morphia();
// map entities,there is maybe a better way to find and map all entities
ClassPathScanningCandidateComponentProvider entityScanner = new ClassPathScanningCandidateComponentProvider(true);
entityScanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
for (BeanDefinition candidate : scanner.findCandidateComponents("your.basepackage")) { // from properties?
morphia.map(Class.forName(candidate.getBeanClassName()));
}
return morphia.createDatastore(mongoClient,"dataStoreInstanceId"); // "dataStoreInstanceId" may come from properties?
}
}
然后,您可以通常的方式在其他Spring bean中自动装配数据存储区:
@Autowired
private Datastore datastore;
如果某些点不正确或不清楚,请查看Spring Boot中现有的* AutoConfiguration类.