`
xmong
  • 浏览: 264188 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring整合mongodb

阅读更多
Spring Mongodb



目录
1 SPRING整合MONGODB 1
1.1 环境准备 1
1.2 包依赖 1
1.3 配置 2
2 案列 5
2.1 SPRING MVC整合MONGODB代码案例 5



1 Spring整合Mongodb
1.1 环境准备
1. mongodb官网 http://www.mongodb.org/,下载mongodb安装包和mongodb的java驱动包。
mongodb安装包(下载地址http://www.mongodb.org/downloads)。Mongodb的安装和使用可见mongodb权威指南。
mongodb驱动包(下载地址https://github.com/mongodb/mongo-java-driver/downloads)
2. Spring下载中心(http://www.springsource.org/download/community)下载spring,spring-data-mongodb,spring-data-commons包。

1.2 包依赖
项目所需依赖包如下:
Mongodb驱动包:
        mongo-2.8.0.jar
spring包:
        aopalliance-1.0.jar
        commons-logging-1.1.jar
        org.springframework.aop-3.1.RELEASE.jar
        org.springframework.asm-3.1.RELEASE.jar
        org.springframework.beans-3.1.RELEASE.jar
        org.springframework.context-3.1.RELEASE.jar
        org.springframework.context.support-3.1.RELEASE.jar
        org.springframework.core-3.1.RELEASE.jar
        org.springframework.expression-3.1.RELEASE.jar
        org.springframework.transaction-3.1.RELEASE.jar
        org.springframework.web-3.1.RELEASE.jar
        org.springframework.web.servlet-3.1.RELEASE.jar
        log4j-1.2.16.jar
        slf4j-log4j12-1.6.4.jar
        slf4j-api-1.6.4.jar
Spring Data Mongodb包:
        spring-data-mongodb-1.1.0.M2.jar
Spring Data Commons包:
        spring-data-commons-core-1.4.0.M1.jar





1.3 配置

(1)配置Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>TestSpringMongodb</display-name>

<!— spring mvc dispatcher servlet -->
   <servlet>
    <servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
	
  <listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
</web-app>


注意:url-pattern的配置为‘/’。

(2)配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
		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">
	
	<!-- Activates various annotations to be detected in bean classes -->
	<context:annotation-config />
	
	<!-- Scans the classpath for annotated components that will be auto-registered as Spring beans.For example @Controller and @Service. Make sure to set the correct base-package-->
	<context:component-scan base-package="bgi.contrl" />
	<context:component-scan base-package="bgi.service" />
	
	<!-- Configures the annotation-driven Spring MVC Controller programming model.Note that, with Spring 3.0, this tag works in Servlet MVC only!  -->
	<mvc:annotation-driven /> 
	
	<!-- Loads MongoDB configuraton -->
	<import resource="mongo-config.xml"/> 
    		
</beans>


(3)配置mongo-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:p="http://www.springframework.org/schema/p" 
    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/data/mongo
    		http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
	
	<!-- Default bean name is 'mongo' -->
	<mongo:mongo host="localhost" port="27017"/>
	
	<!-- Offers convenience methods and automatic mapping between MongoDB JSON documents and your domain classes. -->
  	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
  			<constructor-arg ref="mongo"/>
		    <constructor-arg name="databaseName" value="test"/>
  	</bean>
  	
</beans>


注意:官方文档和案例配置都是旧版本的配置案例,spring-data-mongo从1.0.0.M1到1.0.0.M3的版本叫做Spring Data Document。1.0.0.M4开始更名为Spring Data MongoDB 1.0.0 M4,不过官网并没有特别说明,乍一看有点莫名其妙,尤其是MongoTemplate从org.springframework.data.document.mongod移动到org.springframework.data.mongodb.core,官网的HelloWorldExample却还是用org.springframework.data.document.mongodb做配置案例。多少会导致使用时的误导。

(4)配置spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p" 
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	   		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	
	<!-- Declare a view resolver -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
    		p:prefix="/" p:suffix=".jsp" />

</beans>


注意:spring-servlet.xml的命名是根据web.xml中配置spring DispatcherServlet的名字 (<servlet-name>spring</servlet-name>)加上-servlet命名的。

2 案列
2.1 Spring mvc整合mongodb代码案例

(1),control层

package bgi.contrl;

import java.util.logging.Logger;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import bgi.pojo.User;
import bgi.service.UserService;


@Controller
@RequestMapping("/user")
public class UserCtrl {
	
	
	private static Logger logger = Logger.getLogger(UserCtrl.class.getName());
	
	@Autowired
	UserService userService;
	
	@RequestMapping("/index")
	public ModelAndView index(){
		ModelAndView mav = new ModelAndView("/user/index");
		return mav;
	}
	
	@RequestMapping("/save")
	public ModelAndView saveUser(User user){
		
		ModelAndView mav = new ModelAndView("/user/index");
		
		logger.info("save:"+user);
		
		userService.saveUser(user);
		
		return mav;
	}
	
	@RequestMapping("/find")
	public ModelAndView findUser(User user){
		
		ModelAndView mav = new ModelAndView("/user/index");
		
		user = userService.findUserByName(user.getName());
		
		logger.info("find:"+user);
		
		return mav;
	}
	

}

(2),service层

package bgi.service;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import bgi.pojo.User;


@Service
public class UserService {
	
	private static String USER_COLLECTION = "user";

	@Autowired
	MongoTemplate mongoTemplate;
	
	/**
	 * 
	 * @param user
	 */
	public void saveUser(User user){
		
		mongoTemplate.save(user, USER_COLLECTION);
		
	}
	
	/**
	 * 
	 * @param name
	 * @return
	 */
	public User findUserByName(String name){
		
		return mongoTemplate.findOne(new Query(Criteria.where("name").is(name)), User.class, USER_COLLECTION);
		
	}
	
}



(3),domain层

package bgi.pojo;

import java.io.Serializable;

import org.springframework.data.annotation.Id;


public class User implements Serializable{


	private static final long serialVersionUID = 1L;
	
	@Id
	String uid;
	String name;
	int age;
	
	
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		return "{USER:{uid:"+this.uid+",name:"+this.name+",age:"+this.age+"}}";
	}
	
}



(4)测试
http://localhost:8080/TestSpringMongodb/user/save?name=xiaohong&age=23
save:{USER:{uid:5020bef0fe7d16eb86275c7a,name:xiaohong,age:23}}
http://localhost:8080/TestSpringMongodb/user/find?name=xiaohong
find:{USER:{uid:5020bef0fe7d16eb86275c7a,name:xiaohong,age:23}}



  • 大小: 19.1 KB
分享到:
评论

相关推荐

    spring 整合mongodb

    总结,Spring整合MongoDB提供了强大的数据访问支持,通过简单的接口和注解,可以让开发者专注于业务逻辑,而不是底层数据库操作。在实际开发中,了解并熟练运用这些知识点,能显著提升开发效率和代码质量。

    Spring集成Mongodb配置含jar包

    下面将详细介绍Spring集成MongoDB的相关知识点。 1. **Spring Data MongoDB**: Spring Data项目提供了一套统一的API,使得操作各种持久化存储变得简单。Spring Data MongoDB是该项目的一个模块,它允许开发者通过...

    Spring Data MongoDB中文文档

    - 这些特性极大地丰富了与 MongoDB 交互的方式,使得 **Spring Data MongoDB** 成为了与 MongoDB 集成的理想选择。 总之,**Spring Data MongoDB** 是一个强大的工具,它不仅简化了与 MongoDB 数据库的交互,还提供...

    Spring集成MongoDB官方指定jar包:spring-data-mongodb-1.4.1.RELEASE.jar

    Spring集成MongoDB官方指定jar包:spring-data-mongodb-1.4.1.RELEASE.jar

    Spring整合MongoDB基于Maven

    **Spring整合MongoDB基于Maven** 在现代Java开发中,Spring框架与MongoDB数据库的集成是常见的选择,尤其是在处理非关系型数据时。MongoDB是一个高性能、无模式的文档型数据库,而Spring提供了强大的框架支持,使得...

    springdata mongodb api文档

    同时,Spring Framework提供了对SpringData MongoDB的支持,可以实现依赖注入和与Spring框架的无缝集成。 当需要扩展SpringData的功能时,SpringData MongoDB也提供了一定的扩展机制,例如使用Query DSL扩展进行...

    JAVA操作MongoDB之spring整合

    首先,集成MongoDB到Spring项目中,我们需要在`pom.xml`文件中添加MongoDB和Spring Data MongoDB的相关依赖。这通常包括`mongodb-driver`、`spring-data-mongodb`和`spring-boot-starter-data-mongodb`等。例如: `...

    源码-spring+MongoDB的整合

    当我们需要将Spring与MongoDB整合时,目的是利用Spring的优秀管理和组织能力来操作MongoDB的数据存储。 首先,我们要了解Spring Data MongoDB项目,这是Spring框架对MongoDB支持的一部分。Spring Data MongoDB提供...

    Spring3+Spring-data-mongodb1.5.6示例

    在本示例中,我们将深入探讨如何在Spring 3框架中集成Spring Data MongoDB 1.5.6,以便高效地处理MongoDB数据库。...通过学习这些示例,你可以更好地理解和掌握Spring 3与Spring Data MongoDB 1.5.6的整合技巧。

    spring-data-mongodb-1.8.0.RELEASE(含源码)

    - **Querydsl 支持**:Spring Data MongoDB 集成了 Querydsl,允许开发者使用类型安全的方式来构建复杂的查询。 - **方法命名查询**:通过在 Repository 方法名上遵循一定的命名规则,Spring Data 自动将方法名...

    Spring-Mongodb例子

    Spring MongoDB模块使得在Spring应用中集成MongoDB变得简单。 首先,我们来了解Spring框架的核心概念。Spring是一个依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的...

    spring data mongodb代码参考

    Spring Data MongoDB 是一个用于简化MongoDB数据库操作的框架,它为Spring应用提供了强大的支持,使得开发者可以更加方便地集成和操作非关系型数据库。在这个"spring data mongodb代码参考"中,我们将深入探讨如何...

    Spring-Data-MongoDB3.2

    **Spring Data MongoDB 3.2 整合指南** 在当今的软件开发中,Spring框架以其强大的功能和灵活性深受开发者喜爱,而MongoDB作为一款非关系型数据库,因其高性能、高可扩展性和灵活的数据模型,成为了大数据和实时...

    Spring+MongoDB整合 项目

    【Spring+MongoDB整合项目详解】 在现代软件开发中,Spring框架和MongoDB数据库的结合是常见的技术选型,尤其适用于需要快速开发、高可扩展性的应用。本项目结合了Spring框架的灵活性与MongoDB的非关系型数据处理...

    Spring3.1 MongoDB整合实例(含jar包)已测

    本文将深入探讨如何在Spring 3.1版本中整合MongoDB,以及提供的jar包资源。 首先,Spring 3.1对MongoDB的支持主要体现在Spring Data MongoDB项目中,它提供了一套完整的抽象层,简化了与MongoDB的交互。Spring Data...

    MongoDB整合Spring

    将MongoDB与Spring整合,可以充分利用Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)特性,以及MongoDB的文档型数据存储优势,实现高效、灵活的数据管理。...

Global site tag (gtag.js) - Google Analytics