Spring MongoDB配置学习(转)

Spring-data-mongo是Spring的一个子项目,下载地址:http://www.springsource.org/spring-data/mongodb,这里用的是spring-data-mongo-1.1.0.M1.zip

Spring-mongo有两种方式进行配置(参考:http://www.cnblogs.com/chenying99/archive/2012/06/01/2529419.html)

第一种:Spring 3中的注解

配置类要继承AbstractMongoConfiguration类,重写(Override)mongo()和mongoTemplate()方法
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.document.mongodb.MongoTemplate;
import org.springframework.data.document.mongodb.config.AbstractMongoConfiguration;
import com.mongodb.Mongo;
/**
* Spring MongoDB configuration file
*/
@Configuration
public class SpringMongoConfig extends AbstractMongoConfiguration {
    @Override
    public @Bean Mongo mongo() throws Exception {
        return new Mongo("localhost");
    }
    @Override
    public @Bean MongoTemplate mongoTemplate() throws Exception {
        return new MongoTemplate(mongo(),"mydbname","myCollection");
    }
}
调用Spring Mongo配置,只需要在需要使用的类中调用AnnotationConfigApplicationContext,传入刚才配置好的SpringMongoConfig类即可。
ApplicationContext ac = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations mo = (MongoOperations)ac.getBean("mongoTemplate");
至此便可对MongoDB进行操作了

第二种:传统的XML配置



    
    
    
        
        
        
    
    
    

注意这里引用相关的命名空间xmlns:mongo="http://www.springframework.org/schema/data/mongo"
,并且在名为mongoTemplate中注入相关的数据库地址,数据库名即可,使用方法如下:
ApplicationContext ctx = new GenericXmlApplicationContext("mongo-config.xml");

示例:

import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.data.document.mongodb.MongoOperations;
import org.springframework.data.document.mongodb.query.Criteria;
import org.springframework.data.document.mongodb.query.Query;
import org.springframework.data.document.mongodb.query.Update;
import com.mkyong.config.SpringMongoConfig;
import com.mkyong.user.User;
public class App
{
public static void main( String[] args )
{
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");
User user = new User("1001", "yong", "mook kim", 30);
//保存
mongoOperation.save("userprofile",user);
//查找
User savedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("savedUser : " + savedUser);
//更新
mongoOperation.updateFirst("userprofile",
new Query(Criteria.where("firstname").is("yong")), 
Update.update("lastname", "new lastname"));
User updatedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("updatedUser : " + updatedUser);
//删除
mongoOperation.remove("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
//显示当前列表
List listUser = 
mongoOperation.getCollection("userprofile", User.class);
System.out.println("Number of user = " + listUser.size());
}
}


参考:http://www.cnblogs.com/-clq/archive/2012/03/02/2376720.html

http://code.google.com/p/mongodb-monjadb-cn/downloads/list















你可能感兴趣的:(java,spring)