spring boot整合Morphia对MongoDB进行操作

最近有些空闲,在写一点小程序,在编写过程中需要用到MongoDB,最开始是按照别人的做法使用了springboot提供的
一个依赖为:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>然后在应用程序中编写相关程序,为以下:
@Configuration@ConditionalOnClass(Mongo.class)@EnableConfigurationProperties(MongoProperties.class)public class MongoAutoConfiguration {    @Inject    private MongoProperties properties;    private Mongo mongo;    @PreDestroy    public void close() {        if (this.mongo != null) {            this.mongo.close();        }    }    @Bean    @ConditionalOnMissingBean    @Singleton    public Mongo mongo() throws UnknownHostException {        this.mongo = this.properties.createMongoClient(null);        return this.mongo;    }} 另外还需要在application.properties中配置相关mongodb的配置,为以下所示: 
 
#mongodbspring.data.mongodb.host=127.0.0.1spring.data.mongodb.port=27017spring.data.mongodb.database=test如此的编写后,确实是可以使用Springboot提供的MongoTemplate进行相应MongoDB操作,但是问题在于本人并不熟悉这一套API的
用法,有一些查询的操作用着很不顺手,在进过思虑之后,决定还是不再使用spring-data中的mongodb的API操作。
本人一直比较熟悉Morphia里面的一套API,并且Morphia提供的一套API的链式编程相当易用,所以还是决定将Morphia整合进当前的
项目中,首先引入Morphia的依赖,为以下:
<dependency> <groupId>org.mongodb.morphia</groupId> <artifactId>morphia</artifactId> <version>1.1.1</version> </dependency>先前编写的提供Mongo的Bean可以不用动,Morphia提供Datastore的方法中需要一个MongoClient对象,而Mongo是MongoClient父类,
直接强转过来就行了,至于需要相应的数据库名,可以使用已经注入好的MongoProperties中获取,具体源码如下:
@Configuration@ConditionalOnClass(Mongo.class)public class MorphiaFactory {    @Inject    private Mongo mongo;    @Inject    MongoProperties mongoProperties;    @Bean    public Datastore get() {        Morphia morphia = new Morphia();        return morphia.createDatastore((MongoClient) mongo,mongoProperties.getDatabase());    }} 如此,对Morphia的整合就完成了,在程序中就可以用到Datastore,从而对Mongodb中collection数据进行操作。        
            
        
                                
相关内容
  - 如何在安装过程中部署DevExpress控件- 如何在安装过程中部署DevExpress控件,控件,文件,本文目录如何... 
  - 金蝶里面的月末期末调汇|金蝶K3财务软件的结账- 金蝶里面的月末期末调汇|金蝶K3财务软件的结账里面的期末调... 
  - 金蝶期末调汇怎么处理|金蝶K3财务软件的结账里- 金蝶期末调汇怎么处理|金蝶K3财务软件的结账里面的期末调汇... 
  - win7系统电脑要求|win7操作系统配置要求- win7系统电脑要求|win7操作系统配置要求,,1. win7操作系统配置... 
  - 针灸科设置|针灸科常见操作- 针灸科设置|针灸科常见操作,,1. 针灸科常见操作⒈临床实践技能... 
  - 如何解决errtor加载操作系统的引导- 如何解决errtor加载操作系统的引导,,电脑启动后,屏幕上出现了er... 
  - 萤石设置方法|萤石操作手册下载- 萤石设置方法|萤石操作手册下载,,1. 萤石操作手册下载寻找验证... 
  - 金蝶迷你版现金流量表操作教程|KIS迷你版现金流- 金蝶迷你版现金流量表操作教程|KIS迷你版现金流量表的怎样操... 
  - 什么样的过程中powerkey.exe是编辑集合查询- 什么样的过程中powerkey.exe是编辑集合查询,,点评:powerkey.exe... 
  - 计算机在启动过程中死了。- 计算机在启动过程中死了。,,故障现象: 在计算机启动过程中,XP系... 
  - 金蝶旗舰版物料怎样添加|金蝶k3怎么新增物料?具- 金蝶旗舰版物料怎样添加|金蝶k3怎么新增物料?具体操作是什么... 
  - 电脑如何保持速度|如何提高电脑操作速度- 电脑如何保持速度|如何提高电脑操作速度,,如何提高电脑操作速... 
  - 金蝶shr8.2|金蝶财务软件操作实用教程是什么呢?- 金蝶shr8.2|金蝶财务软件操作实用教程是什么呢?,,1.金蝶财务软... 
  - ps文字转曲快捷键|ps中文字转曲怎么操作- ps文字转曲快捷键|ps中文字转曲怎么操作,,1. ps中文字转曲怎么... 
  - 手机截图的快捷键|手机截图的快捷键怎么操作- 手机截图的快捷键|手机截图的快捷键怎么操作,,手机截图的快捷...