spring boot+mybatis-plus 多数据源配置

由于公司需要把一个基础系统做成一个jar包引入子系统中使用,所以需要配置一些多数据源得东西,在这里记录下来以供自己以后查看。

1、因为是引入外部jar包,所以spring容器中,bean的名字不能一样,必须把项目的名字作为前缀加在bean名字上

2、@MapperScan和@ComponentScan两个注解的用法是不一样的,@MapperScan是用来扫描mapper层得,@ComponentScan是用来扫描service层和一些其他配置包得,这两个用法不能搞混了。

3、@Qualifier注解是用来区分多个相匹配的bean,可以让spring注入指定名称bean。

4、尽量减少系统和外部引入jar包得耦合度

5、mapper配置文件的文件夹名字不要一样,因为创建数据源的时候会扫到mapper配置文件,如果名字一样会扫到一起,然后报方法找不到的错误。

接下来是具体使用方法:

一、外部jar包mybatis配置

如果外部jar包和子系统使用的是相同的本地仓库,则直接使用pom文件引入即可。

二、子系统

mybatis配置

需要在启动类中替换一些自动配置的class

@EnableAutoConfiguration(exclude = {MapperAutoConfiguration.class,MybatisAutoConfiguration.class})

properties配置文件(这里需要两个数据源配置,一个是外部jar包的数据源配置,一个是子系统的数据源配置,不知道为什么,扫描不到外部jar包的配置文件,如果不配置外部jar包的配置文件会报空指针异常)

这里的配置大部分都和一个项目中多数据源配置差不多,所以只要学会在一个项目中配置多数据源,其他的问题也可以迎刃而解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置多数据源: 1. 在pom.xml添加mybatis-plus和druid依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> ``` 2. 在application.yml添加数据源配置: ```yaml spring: datasource: druid: one: url: jdbc:mysql://localhost:3306/one?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver two: url: jdbc:mysql://localhost:3306/two?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource #默认数据源 primary: one ``` 3. 在代码使用@DS注解切换数据源: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @DS("one") @Override public User getUserById(Long id) { return userMapper.selectById(id); } @DS("two") @Override public User getUserByName(String name) { return userMapper.selectOne(new QueryWrapper<User>().eq("name", name)); } } ``` 配置分页插件: 1. 在pom.xml添加分页插件依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> ``` 2. 在配置配置分页插件: ```java @Configuration public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); return paginationInterceptor; } } ``` 3. 在controller层使用分页: ```java @GetMapping("/users") public IPage<User> getUsers(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { Page<User> page = new Page<>(pageNum, pageSize); QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", 1); return userService.page(page, queryWrapper); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值