Spring Данные: Конфигурация Java для MongoDB без XML

Я попробовал Spring Руководство по доступу к данным с помощью MongoDB. Я не могу понять, как настроить мой код, чтобы не использовать адрес сервера по умолчанию, а не использовать базу данных по умолчанию. Я видел много способов сделать это с помощью XML, но я стараюсь оставаться с полностью без XML-конфигурациями.

Есть ли у кого-нибудь пример, который устанавливает сервер и базу данных без XML и может быть легко интегрирован в образец, который они показывают в руководстве Spring?

Примечание. Я нашел, как установить коллекцию (поиск фразы "Какая коллекция будет храниться в моих документах" на на этой странице.

Спасибо!

p.s. тот же рассказ с Spring Guide for JPA - как вы настраиваете свойства db - но это еще одно сообщение:)

Ответ 1

Это было бы примерно так для базовой конфигурации:

@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);
    }
}