引入spring-data 依赖



<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>


 

数据源配置,多个数据源



spring:
mongodb:
primary:
uri: mongodb://username1:password1@localost:27018/db1
secondary:
uri: mongodb://username2:password2@localost:27018/db2
thirdly:
uri: mongodb://username3:password3@localost:27018/db3


 

配置类



@Data
public abstract class AbstractMongoConfig {

private String uri;

public abstract MongoTemplate mongoTemplate();

public MongoDbFactory mongoDbFactory(){
MongoClientURI mongoclienturi = new MongoClientURI(uri);
return new SimpleMongoDbFactory(mongoclienturi);
}

}


 



@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb.primary")
public class PrimaryMongoConfig extends AbstractMongoConfig {

@Primary //默认会注入此数据源的Template
@Override
@Bean(name = "primaryMongoTemplate")
public MongoTemplate mongoTemplate(){
return new MongoTemplate(mongoDbFactory());
}
}


 



@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb.secondary")
public class SecondaryMongoConfig extends AbstractMongoConfig{

@Override
@Bean(name = "secondaryMongoTemplate")
public MongoTemplate mongoTemplate(){
return new MongoTemplate(mongoDbFactory());
}
}


 



@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb.thirdly")
public class ThirdlyMongoConfig extends AbstractMongoConfig{

@Override
@Bean(name = "thirdlyMongoTemplate")
public MongoTemplate mongoTemplate(){
return new MongoTemplate(mongoDbFactory());
}
}


 

注入MongoTemplate 进行增删改查



@Autowired
private MongoTemplate mongoTemplate;

   @Autowired
@Qualifier("secondaryMongoTemplate")
private MongoTemplate template2;

@Autowired
@Qualifier("thirdlyMongoTemplate")
private MongoTemplate template3;