Хотя ответ Mkyong все еще работает, я хотел бы добавить свою версию решения, так как несколько битов устарели и могут быть на грани очистки.
Например: MappingMongoConverter(mongoDbFactory(), new MongoMappingContext())
не рекомендуется в пользу new MappingMongoConverter(dbRefResolver, new MongoMappingContext());
и SimpleMongoDbFactory(new Mongo(), "databasename");
в пользу new SimpleMongoDbFactory(new MongoClient(), database);
.
Итак, мой окончательный рабочий ответ без предупреждений об устаревании:
@Configuration
public class SpringMongoConfig {
@Value("${spring.data.mongodb.database}")
private String database;
@Autowired
private MongoDbFactory mongoDbFactory;
public @Bean MongoDbFactory mongoDBFactory() throws Exception {
return new SimpleMongoDbFactory(new MongoClient(), database);
}
public @Bean MongoTemplate mongoTemplate() throws Exception {
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
// Remove _class
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext());
converter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(mongoDBFactory(), converter);
}
}
Надеюсь, это поможет людям, которые хотели бы иметь чистый класс без предупреждений об устаревании.