Spring Data:没有XML的MongoDB的Java配置

时间:2014-05-07 20:15:22

标签: java spring mongodb spring-data spring-data-mongodb

我尝试了Spring Guide Accessing Data with MongoDB。我无法弄清楚的是如何配置我的代码不使用默认服务器地址而不使用默认数据库。我已经看到很多方法可以使用XML,但我正在努力保持完全没有XML的配置。

有没有人有一个没有XML设置服务器和数据库的例子,可以很容易地集成到他们在Spring Guide中显示的样本中?

注意:我确实找到了如何设置集合(搜索短语“我的文档将保存到哪个集合中”on this page

谢谢!

P.S。与JPA春季指南相同的故事 - 如何配置数据库属性 - 但这是另一篇文章:)

1 个答案:

答案 0 :(得分:34)

基本配置会是这样的:

@Configuration
@EnableMongoRepositories
public class MongoConfiguration extends AbstractMongoConfiguration {

    @Override
    protected String getDatabaseName() {
        return "dataBaseName";
    }

    @Override
    public Mongo mongo() throws Exception {
        return new MongoClient("127.0.0.1", 27017);
    }

    @Override
    protected String getMappingBasePackage() {
        return "foo.bar.domain";
    }
}

文件示例:

@Document
public class Person {

    @Id
    private String id;

    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

存储库示例:

@Repository
public class PersonRepository {

    @Autowired
    MongoTemplate mongoTemplate;

    public long countAllPersons() {
        return mongoTemplate.count(null, Person.class);
    }
}