作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Spring Boot Multiple Datasource
(9 个回答)
3年前关闭。
在我的应用程序中,我需要使用两个 MongoDB 数据库。我不知道如何在spring应用程序的application.properties文件中添加2个MongoDB数据库。
这是我的项目的 application.properties 文件,
spring.data.mongodb.database=DB1
spring.data.mongodb.authentication-database=DB1
spring.data.mongodb.host=dev-ng-mongo1.domain.com
spring.data.mongodb.password=9876512
spring.data.mongodb.port=27017
spring.data.mongodb.username=pavan
最佳答案
请按照以下步骤设置多个 mongodb 数据源。
######Primary Mongo DB########################
spring.data.mongodb.host=localhost
spring.data.mongodb.database=primary
spring.data.mongodb.port=27017
spring.data.mongodb.password=*******
spring.data.mongodb.username=*******
###########Secondary MongoDB#####################
mongodb.host=localhost
mongodb.port=27017
mongodb.database=secondary
mongodb.username=******
mongodb.password=******
@Configuration
public class MultipleMongoConfig {
@Primary
@Bean(name = "primary")
@ConfigurationProperties(prefix = "spring.data.mongodb")
public MongoProperties getPrimary() {
return new MongoProperties();
}
@Bean(name = "secondary")
@ConfigurationProperties(prefix = "mongodb")
public MongoProperties getSecondary() {
return new MongoProperties();
}
@Primary
@Bean(name = "primaryMongoTemplate")
public MongoTemplate primaryMongoTemplate() throws Exception {
return new MongoTemplate(primaryFactory(getPrimary()));
}
@Bean(name = "secondaryMongoTemplate")
public MongoTemplate secondaryMongoTemplate() throws Exception {
return new MongoTemplate(secondaryFactory(getSecondary()));
}
@Bean
@Primary
public MongoDbFactory primaryFactory(final MongoProperties mongo) throws Exception {
return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
mongo.getDatabase());
}
@Bean
public MongoDbFactory secondaryFactory(final MongoProperties mongo) throws Exception {
return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
mongo.getDatabase());
}
EnableMongoRepositories
对于您的主要和次要。请确保您更改 basePackages = "com.example.springbootmultipledatasource.primary.repository"
您的存储库包在这里@Configuration
@EnableMongoRepositories(basePackages =
"com.example.springbootmultipledatasource.primary.repository",
mongoTemplateRef = "primaryMongoTemplate")
public class PrimaryMongoConfig {
}
basePackages = "com.example.springbootmultipledatasource.secondary.repository
@Configuration
@EnableMongoRepositories(basePackages = "com.example.springbootmultipledatasource.secondary.repository",
mongoTemplateRef = "secondaryMongoTemplate")
public class SecondaryMongoConfig {
}
关于java - 如何在 Spring Boot 应用程序中使用多个 mongodb 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52398308/
我是一名优秀的程序员,十分优秀!