springboot整合mongo多数据源
1 2 3 4 5 6 7 8 9 10 11 12 | <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version> 2.2 . 1 .RELEASE</version> <relativePath/> </parent> <!--springboot整合mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> |
1 2 3 | spring.data.mongodb.zero.uri=mongodb: //test:test2021@127.0.0.1:27017/yourheart-test spring.data.mongodb.first.uri=mongodb: //test:test123@127.0.0.1:27019/yourheartTest |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | package com.java.controller.mongo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import java.io.Serializable; /** * 描述: DemoEntity * * @author yanpenglei * @create 2018-02-03 16:52 **/ @Document (collection = "demo_collection" ) @Data @AllArgsConstructor @NoArgsConstructor public class DemoEntity implements Serializable { @Id private Long id; /** * 标题 */ private String title; /** * 内容 */ private String description; /** * 创建时间 */ private String createdTime; /** * 修改时间 */ private String updateTime; /** * 操作用户 */ private String user; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | package com.java.config; import com.mongodb.MongoClientURI; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoDbFactory; /** * @author yourheart * @Description * @create 2022-06-04 23:49 */ @Configuration public class MongoDatasourceProperties { /** * 连接MongoDB地址 */ @Value ( "${spring.data.mongodb.zero.uri}" ) private String uri; public MongoDbFactory mongoDbFactory(){ MongoClientURI mongoclienturi = new MongoClientURI(uri); return new SimpleMongoDbFactory(mongoclienturi); } @Primary @Bean (name = "primaryMongoTemplate" ) public MongoTemplate getMongoTemplate() throws Exception { return new MongoTemplate((mongoDbFactory())); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | package com.java.config; import com.mongodb.MongoClientURI; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoDbFactory; /** * @author yourheart * @Description * @create 2022-06-06 21:01 */ @Configuration public class MongoFirstDatasource { /** * 连接MongoDB地址 */ @Value ( "${spring.data.mongodb.first.uri}" ) private String uri; public MongoDbFactory mongoDbFactory(){ MongoClientURI mongoclienturi = new MongoClientURI(uri); return new SimpleMongoDbFactory(mongoclienturi); } @Bean (name = "firstMongoTemplate" ) public MongoTemplate getMongoTemplate() throws Exception { return new MongoTemplate((mongoDbFactory())); } } |
mongo多数据源测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package com.java.mongo; import com.java.bean.HistoryPassword; import com.java.controller.mongo.DemoEntity; import com.java.controller.mongo.birth.BirthBean; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; import java.util.List; /** * @author yourheart * @Description * @create 2022-06-06 21:15 */ @RunWith (SpringRunner. class ) @SpringBootTest @Slf4j public class MongoTest { @Autowired private MongoTemplate mongoTemplate; @Resource @Qualifier ( "firstMongoTemplate" ) private MongoTemplate firstMongoTemplate; @Test public void demoCollectionTest(){ List<DemoEntity> all = mongoTemplate.findAll(DemoEntity. class ); log.info( "老库数据记录数:{}" ,all.size()); all.forEach(demoEntity->{ firstMongoTemplate.save(demoEntity); }); List<DemoEntity> newDatasource = firstMongoTemplate.findAll(DemoEntity. class ); log.info( "新库数据记录数:{}" ,newDatasource.size()); } } |
补充pom依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version> 1.18 . 16 </version> </dependency> <!--引入junit单元测试依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version> 4.12 </version> </dependency> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>pingan</finalName> </build> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通