Не удается установить хост MongoDB в MongoRepository

#spring #spring-data

#spring #spring-данные

Вопрос:

У меня следующая структура пользователя:

 @Document
public class User {
    @Id
    private String _id;
    private String role;
    private String username;
}
  

И интерфейс репозитория mongo:

 public interface UserRepository extends MongoRepository<User, String>{
}
  

Я поместил следующую конфигурацию в XML-файл:

 <mongo:mongo host="www.example.com" port="12345"/>

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

Теперь я пытаюсь сохранить пользователя:

 @Autowired
private UserRepository userRepository;

public void foo() {
    User newUser = new User();
    newUser.setUsername("Humberd");
    newUser.setRole("USER");
    userRepository.insert(newUser);
}
  

Несмотря на установку хоста как «www.example.com « spring все еще подключается к моему локальному хостингу:

 org.mongodb.driver.connection            : Opened connection [connectionId{localValue:2, serverValue:42}] to localhost:27017
  

Что я делаю не так? Как установить для хоста пользовательский?

Комментарии:

1. вы нашли какое-либо решение для этого. Я столкнулся с аналогичной проблемой.

Ответ №1:

Вот что я, наконец, сделал:

 @Configuration
@EnableMongoRepositories(basePackages = {"com.tryton.repositories"})
public class MongoConfig extends AbstractMongoConfiguration {

    private String host = "myhost";
    private int port = 12345;
    private String databaseName = "fooDB";

    @Override
    protected String getDatabaseName() {
        return databaseName;
    }

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

}