如何在一个Spring Boot应用程序中使用多个mongodb数据库并在单个yml文件中进行配置

时间:2019-05-06 09:08:59

标签: java mongodb spring-boot database-connection

在我的Spring Boot应用程序中,我需要包括两个mongo数据库,并将每个数据库用于不同的MongoRepository。 目前,我已经在yml文件中配置了mongodb配置。我需要将其他数据库配置添加到同一yml文件,并在每个存储库中指定使用数据库。

yml文件:

spring:
  data:
mongodb:
  host: 127.0.0.1
  port: 27017
  database: db_admin_crm
  rest:
  base-path: /crm

存储库:

 @RepositoryRestResource(collectionResourceRel = "webinarSignups",path = "webinarSignups")
 public interface WebinarSignupsRepository extends MongoRepository<WebinarSignUp,String> {

}

想法将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用类似于以下内容的自定义配置:

df.sort_values(['Group', 'Number'], inplace=True)

并在自定义配置文件中使用此属性

first:
  host: 127.0.0.1
  port: 27017
  database: first

second:
  host: 127.0.0.1
  port: 27018
  database: second

并按以下方式使用它:

@Configuration 
public class MongoConfiguration {

    @Value("${first.host}")
    private String firstHost;

    ...

    @Bean(name = "firstMongoTemplate")
    public MongoTemplate firstMongoTemplate() throws Exception {
       // Return a MongoTemplate created using the first properties

       ...
    }

}

请注意,此方法可用于需要多个相同类型对象的任何配置,例如多个@Repository public class FirstMongoRepository { @Autowired @Qualifier("firstMongoTemplate") private MongoTemplate mongoTemplate; ... } (如果您有多个数据库),多个DataSource(如果您需要不同的种类)序列化)...