Spring Boot and how to configure connection details to MongoDB?

后端 未结 6 2043
死守一世寂寞
死守一世寂寞 2020-12-12 18:45

Being new to Spring Boot I am wondering on how I can configure connection details for MongoDB. I have tried the normal examples but none covers the connection details.

6条回答
  •  粉色の甜心
    2020-12-12 19:24

    Here is How you can do in Spring Boot 2.0 by creating custom MongoClient adding Providing more control for Connection ,

    Please follow github Link for Full Source Code

    @Configuration
    @EnableMongoRepositories(basePackages = { "com.frugalis.repository" })
    @ComponentScan(basePackages = { "com.frugalis.*" })
    @PropertySource("classpath:application.properties")
    public class MongoJPAConfig extends AbstractMongoConfiguration {
    
        @Value("${com.frugalis.mongo.database}")
        private String database;
        @Value("${com.frugalis.mongo.server}")
        private String host;
        @Value("${com.frugalis.mongo.port}")
        private String port;
        @Value("${com.frugalis.mongo.username}")
        private String username;
        @Value("${com.frugalis.mongo.password}")
        private String password;
    
    
        @Override
        protected String getDatabaseName() {
            return database;
        }
    
        @Override
        protected String getMappingBasePackage() {
            return "com.frugalis.entity.mongo";
        }
    
        @Bean
        public MongoTemplate mongoTemplate() throws Exception {
            return new MongoTemplate(mongoClient(), getDatabaseName());
        }
    
        @Override
        @Bean
        public MongoClient mongoClient() {
    
            List allCred = new ArrayList();
            System.out.println("???????????????????"+username+" "+database+" "+password+" "+host+" "+port);
            allCred.add(MongoCredential.createCredential(username, database, password.toCharArray()));
            MongoClient client = new MongoClient((new ServerAddress(host, Integer.parseInt(port))), allCred);
            client.setWriteConcern(WriteConcern.ACKNOWLEDGED);
    
            return client;
        }} 
    

提交回复
热议问题