Spring Boot и как настроить детали подключения к MongoDB?
будучи новичком в Spring Boot мне интересно, как я могу настроить детали подключения для MongoDB.
Я пробовал обычные примеры, но ни один не охватывает детали подключения.
Я хочу указать базу данных, которая будет использоваться и url/порт хоста, который запускает MongoDB.
любые подсказки или советы?
4 ответов:
просто цитата Boot Docs:
вы можете установить
spring.data.mongodb.uriсвойство, чтобы изменить url, или альтернативно указатьhost/port. Например, вы можете объявить следующее в своемapplication.properties:spring.data.mongodb.host=mongoserver spring.data.mongodb.port=27017все доступные опции для
spring.data.mongodbпрефикс поляMongoProperties:private String host; private int port = DBPort.PORT; private String uri = "mongodb://localhost/test"; private String database; private String gridFsDatabase; private String username; private char[] password;
в проекте maven создайте файл
src/main/resources/application.ymlследующего содержания:spring.profiles: integration # use local or embedded mongodb at localhost:27017 --- spring.profiles: production spring.data.mongodb.uri: mongodb://<user>:<passwd>@<url>:<port>/<dbname>Spring Boot автоматически использует этот файл для настройки вашего приложения. Затем вы можете запустить приложение spring boot либо с профилем интеграции (и использовать локальный MongoDB)
java -jar -Dspring.profiles.active=integration your-app.jarили с производственным профилем (и используйте свой производственный MongoDB)
java -jar -Dspring.profiles.active=production your-app.jar
вы можете определить более подробную информацию, расширив AbstractMongoConfiguration.
@Configuration @EnableMongoRepositories("demo.mongo.model") public class SpringMongoConfig extends AbstractMongoConfiguration { @Value("${spring.profiles.active}") private String profileActive; @Value("${spring.application.name}") private String proAppName; @Value("${spring.data.mongodb.host}") private String mongoHost; @Value("${spring.data.mongodb.port}") private String mongoPort; @Value("${spring.data.mongodb.database}") private String mongoDB; @Override public MongoMappingContext mongoMappingContext() throws ClassNotFoundException { // TODO Auto-generated method stub return super.mongoMappingContext(); } @Override @Bean public Mongo mongo() throws Exception { return new MongoClient(mongoHost + ":" + mongoPort); } @Override protected String getDatabaseName() { // TODO Auto-generated method stub return mongoDB; } }
spring.data.mongodb.hostиspring.data.mongodb.portне поддерживаются, если вы используете драйвер Java Mongo 3.0. В таких случаяхspring.data.mongodb.uriдолжен использоваться для обеспечения всей конфигурации, например:spring.data.mongodb.uri=mongodb://user:[email protected]:12345
Comments