Spring data mongodb 入门

建立一个实体

public class Person {
  @Id
  private String id;
  private String firstname;
  private String lastname;
  private Address address;

  // … getters and setters omitted
}

MongoTemplate(repository的底层)使用的默认序列化机制须要名字id的属性,做为文档的id(_id),如今支持使用的id属性类型是String、ObjectId和BigInteger。spring

建立Repository

public interface PersonRepository extends PagingAndSortingRepository<Person, Long> {

  // additional custom finder methods go here
}

Spring 配置

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: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-1.0.xsd">

  <mongo:mongo id="mongo" />

  <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongo" />
    <constructor-arg value="databaseName" />
  </bean>

  <mongo:repositories base-package="com.acme.*.repositories" />

</beans>

mongo:repositories元素的base-package指定扫描包,Spring在这个包中寻找继承了MongoRepository的接口,并为它们建立实体。默认状况下,mongo:repositories注入名字为mongoTemplate的MongoTemplate实体,若是不使用默认约定能够指定mongo-template-ref属性。mongodb

Java 配置方式

能够使用@EnableMongoRepositories注解,它与xml命名空间元素的属性十分类似。若是没有指定base package属性,它将默认扫描与使用@EnableMongoRepositories注解相同的包。app

@Configuration
@EnableMongoRepositories
class ApplicationConfig extends AbstractMongoConfiguration {

  @Override
  protected String getDatabaseName() {
    return "e-store";
  }

  @Override
  public Mongo mongo() throws Exception {
    return new Mongo();
  }

  @Override
  protected String getMappingBasePackage() {
    return "com.oreilly.springdata.mongodb"
  }
}
相关文章
相关标签/搜索