update - Spring Boot y cómo configurar los detalles de conexión a MongoDB?
spring boot spring data mongodb example (4)
En un proyecto maven crea un archivo src/main/resources/application.yml
con el siguiente contenido:
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 usará automáticamente este archivo para configurar su aplicación. Luego puede iniciar su aplicación de inicio de primavera con el perfil de integración (y use su MongoDB local)
java -jar -Dspring.profiles.active=integration your-app.jar
o con el perfil de producción (y usa tu producción MongoDB)
java -jar -Dspring.profiles.active=production your-app.jar
Como soy nuevo en Spring Boot, me pregunto cómo puedo configurar los detalles de conexión para MongoDB. He intentado con los ejemplos normales pero ninguno cubre los detalles de la conexión.
Quiero especificar la base de datos que se utilizará y la url / puerto del host que ejecuta MongoDB.
¿Algún consejo o sugerencia?
Puede definir más detalles extendiendo 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;
}
}
Solo para citar Boot Docs :
Puede establecer la propiedad
spring.data.mongodb.uri
para cambiar la url o, alternativamente, especificar unhost/port
. Por ejemplo, puede declarar lo siguiente en suapplication.properties
:
spring.data.mongodb.host=mongoserver
spring.data.mongodb.port=27017
Todas las opciones disponibles para el prefijo spring.data.mongodb
son campos de 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;
spring.data.mongodb.host
y spring.data.mongodb.port
no son compatibles si está utilizando el controlador de Mongo 3.0 Java . En tales casos, spring.data.mongodb.uri
debe usar para proporcionar toda la configuración, como esta:
spring.data.mongodb.uri=mongodb://user:[email protected]:12345