spring与mongodb的集成

前言:最近项目中需要用到mongo数据库,被项目老大安排学习mongo。在学习过程中查了很多资料,mongo的资料基本是英文的,对我来说还是一项挑战。鉴于此,将最近的成果记录下来,以供给有需要的朋友取用。 spring是很强大,在此需要感谢spring的研发团队。

废话不多说,mongo的安装与配置会另外开篇。

     spring 与mongo的集成,网上的资料都是很早以前的版本。不适用现在的spring框架。

     首先给出工程的目录结构


再次给出maven需要的依赖包目录:

解释一下各包:mongo-java-driver:是mongo的java驱动包,类似于java的jdbc驱动包;

                           spring-data-mongodb:是spring操作mongo最主要的包,其中提供了MongoTemplate类是以后操作mongo最常用的类,按我的理解,如果能将该类中的所有方法用的熟练,那就掌握了spring操作mongo。

                          spring-data-commons:操作提供了集成需要的配置文件中的一些xsd文件。

                        其他的就不解释,各位自己查资料。

包建好后,写spring的xml文件。内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Bean头部 -->
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mongo="http://www.springframework.org/schema/data/mongo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.0.xsd  
            http://www.springframework.org/schema/data/mongo
            http://www.springframework.org/schema/data/mongo/spring-mongo-1.3.xsd">

<!--配置连接参数 -->

<!--配置需要连接的mongo数据库的ip地址与端口-->
 <mongo:mongo id="mongo" host="${mongo.host}" port="${mongo.port}" />

<!--配置访问的mongo的数据库名与访问的用户名与密码,如果要用权限验证就必须在mongo数据库中设置-->
 <mongo:db-factory id="mongoDbFactory"  dbname="${mongo.dbname}" mongo-ref="mongo" username="${mongo.username}" password="${mongo.password}" />


  <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
  </bean>
    <!-- 启用注解方式配置bean -->
   <context:annotation-config />
   
    <!--实现autowire注入 -->
    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />


    <!-- 设置使用注解的类所在的包路径 -->
    <context:component-scan base-package="com.dc"></context:component-scan>
</beans>

此处全部采用注解方式注入bean,本人认为注解是的bean更方便与使用。同时将连接属性全部放在公用的配置文件中,可以将带有$的替换成自己的就可以使用。

调用的测试方法:

本测试采用注入方式,首先看几个类:

PersonDao的代码:

package com.dc.city;


import javax.annotation.Resource;


import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Repository;


@Repository
public class PersonDao {


    @Resource
    private MongoTemplate mongoTemplate;


    public void createPerson(Person person) {
        mongoTemplate.insert(person);
    }
}

PersonSerive的代码:

package com.dc.city;


import javax.annotation.Resource;


import org.springframework.stereotype.Service;




@Service
public class PersonSerive {


    @Resource
    private PersonDao personDao;


    public void createPerson() {
        Person per = new Person();
        per.setUserName("sffdsafda");
        per.setUserPwd("12121212");
        personDao.createPerson(per);
    }
}

TestMongo的代码:

package com.dc.city;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class TestMongo {
public static void main(String[] args) {
    ApplicationContext ac = new FileSystemXmlApplicationContext("classpath*:spring/*.xml");
    PersonSerive personSerive=(PersonSerive)ac.getBean("personSerive");
    personSerive.createPerson();
    
}
}

插入成功后,在mongo上能查询出刚插入的数据就表示环境搭建成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值