Я пытался изменить свойство WriteResultChecking mongoTemplate во время работы над загрузочным приложением Spring (2.0.5).Я нашел путь через расширение AbstractMongoConfiguration, как показано ниже.
Я получил ту же работу, однако я нашел этот подход немного рискованным.Говоря об этом, потому что этот подход заставил меня написать реализацию для
public MongoClient mongoClient() {
return new MongoClient(host, port);
}
. Теперь MongoClient является центральным классом для поддержки соединений с MongoDB, и если я вынужден написать реализацию для того же самого, то я могу пропуститьОптимизация, которую делает Spring Framework.
Может кто-нибудь предложить какой-нибудь другой оптимальный способ переопределения некоторых свойств / поведения без необходимости слишком много возиться?
@Configuration
public class MyMongoConfigs extends AbstractMongoConfiguration {
@Value("${spring.data.mongodb.database}")
private String databaseName;
@Value("${spring.data.mongodb.host}")
private String host;
@Value("${spring.data.mongodb.port}")
private int port;
@Override
public MongoClient mongoClient() {
return new MongoClient(host, port);
}
@Override
protected String getDatabaseName() {
return databaseName;
}
@Bean
public MongoTemplate mongoTemplate() throws Exception {
MongoTemplate myTemp = new MongoTemplate(mongoDbFactory(), mappingMongoConverter());
**myTemp.setWriteResultChecking(WriteResultChecking.EXCEPTION);**
return myTemp;
}