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