在一个Spring Boot应用程序中使用多个MongoDB数据库并在单个yml文件中配置它,可以通过以下步骤实现:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
spring:
data:
mongodb:
uri: mongodb://localhost:27017/db1
# 配置第一个MongoDB数据库连接信息
# 可以使用spring.data.mongodb.uri或spring.data.mongodb.host等属性进行配置
db2:
spring:
data:
mongodb:
uri: mongodb://localhost:27017/db2
# 配置第二个MongoDB数据库连接信息
# 可以使用spring.data.mongodb.uri或spring.data.mongodb.host等属性进行配置
@Configuration
@EnableMongoRepositories(basePackages = "com.example.repository1", mongoTemplateRef = "db1MongoTemplate")
public class DB1MongoConfig {
@Bean(name = "db1MongoTemplate")
public MongoTemplate db1MongoTemplate(MongoDbFactory db1MongoDbFactory) {
return new MongoTemplate(db1MongoDbFactory);
}
@Bean
public MongoDbFactory db1MongoDbFactory() {
MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017/db1");
return new SimpleMongoClientDbFactory(uri);
}
}
@Configuration
@EnableMongoRepositories(basePackages = "com.example.repository2", mongoTemplateRef = "db2MongoTemplate")
public class DB2MongoConfig {
@Bean(name = "db2MongoTemplate")
public MongoTemplate db2MongoTemplate(MongoDbFactory db2MongoDbFactory) {
return new MongoTemplate(db2MongoDbFactory);
}
@Bean
public MongoDbFactory db2MongoDbFactory() {
MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017/db2");
return new SimpleMongoClientDbFactory(uri);
}
}
@Repository
public interface DB1Repository extends MongoRepository<DB1Entity, String> {
// DB1Repository操作db1数据库的实体类
}
@Repository
public interface DB2Repository extends MongoRepository<DB2Entity, String> {
// DB2Repository操作db2数据库的实体类
}
@Service
public class MyService {
private final MongoTemplate db1MongoTemplate;
private final MongoTemplate db2MongoTemplate;
@Autowired
public MyService(@Qualifier("db1MongoTemplate") MongoTemplate db1MongoTemplate,
@Qualifier("db2MongoTemplate") MongoTemplate db2MongoTemplate) {
this.db1MongoTemplate = db1MongoTemplate;
this.db2MongoTemplate = db2MongoTemplate;
}
public void doSomething() {
// 使用db1MongoTemplate操作db1数据库
// 使用db2MongoTemplate操作db2数据库
}
}
这样,你就可以在一个Spring Boot应用程序中使用多个MongoDB数据库,并在单个yml文件中配置它。每个数据库都有独立的配置和操作方式,可以根据需要进行使用。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云