Être nouveau sur Spring Boot Je me demande comment je peux configurer les détails de connexion pour MongoDB. J’ai essayé les exemples normaux mais aucun ne couvre les détails de connexion.
Je veux spécifier la firebase database qui va être utilisée et l’URL / port de l’hôte qui exécute MongoDB.
Des astuces ou des conseils?
Juste pour citer les documents de démarrage :
Vous pouvez définir la propriété
spring.data.mongodb.uri
pour modifier l’url ou spécifier unhost/port
. Par exemple, vous pouvez déclarer ce qui suit dans votreapplication.properties
:
spring.data.mongodb.host=mongoserver spring.data.mongodb.port=27017
Toutes les options disponibles pour le préfixe spring.data.mongodb
sont des champs de MongoProperties
:
private Ssortingng host; private int port = DBPort.PORT; private Ssortingng uri = "mongodb://localhost/test"; private Ssortingng database; private Ssortingng gridFsDatabase; private Ssortingng username; private char[] password;
Dans un projet Maven, créez un fichier src/main/resources/application.yml
avec le contenu suivant:
spring.profiles: integration # use local or embedded mongodb at localhost:27017 --- spring.profiles: production spring.data.mongodb.uri: mongodb://:@:/
Spring Boot utilisera automatiquement ce fichier pour configurer votre application. Ensuite, vous pouvez démarrer votre application Spring Boot avec le profil d’intégration (et utiliser votre MongoDB locale)
java -jar -Dspring.profiles.active=integration your-app.jar
ou avec le profil de production (et utilisez votre production MongoDB)
java -jar -Dspring.profiles.active=production your-app.jar
Vous pouvez définir plus de détails en étendant AbstractMongoConfiguration.
@Configuration @EnableMongoRepositories("demo.mongo.model") public class SpringMongoConfig extends AbstractMongoConfiguration { @Value("${spring.profiles.active}") private Ssortingng profileActive; @Value("${spring.application.name}") private Ssortingng proAppName; @Value("${spring.data.mongodb.host}") private Ssortingng mongoHost; @Value("${spring.data.mongodb.port}") private Ssortingng mongoPort; @Value("${spring.data.mongodb.database}") private Ssortingng 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 Ssortingng getDatabaseName() { // TODO Auto-generated method stub return mongoDB; } }
spring.data.mongodb.host
et spring.data.mongodb.port
ne sont pas pris en charge si vous utilisez le pilote Java Mongo 3.0 . Dans de tels cas, spring.data.mongodb.uri
doit être utilisé pour fournir toute la configuration, comme ceci:
spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345