目录
一、配置application.yml
二、创建实体类
三、创建Repository
四、新建配置类
1.配置类1 MallPortMongoConfiguration
2.配置类2 RankingsMongoConfiguration
五、调用
一、配置application.yml
配置两个mongodb数据库的uri
spring:
data:
mongodb:
mallport:
uri: mongodb://192.168.56.101:27017/mall-port
database: mall-port
logandreport:
uri: mongodb://192.168.56.101:27017/rankings
database: rankings
二、创建实体类
创建两个实体类 EntityOne,EntityTwo。
/**
*
* @author QLZ
* @date 2021/8/24
*/
@Data
@Document(collection = "entityOne")
public class EntityOne{
@Id
private String mongoId;
private String scopIntegration;
}
/**
*
* @author QLZ
* @date 2021/8/24
*/
@Data
@Document(collection = "entityTwo")
public class EntityTwo{
@Id
private String mongoId;
private String scopIntegration;
}
三、创建Repository
创建操作两个实体类的Repository,分别放在,repository.rankings包下,和repository.reward包下。
四、新建配置类
1.配置类1 MallPortMongoConfiguration
2.配置类2 RankingsMongoConfiguration
@ConfigurationProperties(prefix = "spring.data.mongodb.mallport")注解代表要使用配置文件中以哪个开头的配置。即上面application.yml中的配置。
@EnableMongoRepositories(basePackages = {"repository.reward"},mongoTemplateRef ="mallPortMongoTemplate")
不要忘记此注解,此注解的basePackages属性表示你要操作实体类的Repository的包路径,
mongoTemplateRef属性表示,要使用我们自己指定的mongoTemplate类来充当basePackages 包路径下的mongoTemplate。
说人话就是,自己指定一个mongoTemplate来操作basePackages路径下的Reopsitory。
如果你不添加@EnableMongoRepositories注解。启动时会报错说找不到对应Repository
或者是找不到mongoTemplate。因为你不添加@EnableMongoRepositories的话mongoTemplateRef属性默认的值就是mongoTemplate。见下图源码
五、调用
通过@Autowired自动装配进来对应的Mongotemplate即可实现对不同数据库的操作。