此次操作是在多模块下进行的,SpringBoot3-规划多模块目录
添加管理依赖
根模块
zibocoder-parent
的pom.xml
中添加MybatisPlus bom
管理依赖
<properties>...<mybatis-plus.version>3.5.12</mybatis-plus.version>...
</properties>
<dependencyManagement><dependencies> ...<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-bom</artifactId><version>${mybatis-plus.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>...
</dependencyManagement>
创建模块引入依赖
在插件管理模块
zibocoder-plugins
下创建MybatisPlus模块zibocoder-plugins-mybatisplus
zibocoder-plugins-mybatisplus
的pom.xml
下引入依赖
...
<dependencies><!-- 与springboot3集成的依赖包 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency><!-- 分页插件 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-jsqlparser</artifactId></dependency><!-- 测试依赖 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter-test</artifactId></dependency></dependencies>
添加配置文件
src/main/java
下创建配置类com/zibocoder/plugins/mybatisplus/MybatisPlusConfig.java
src/resource
下创建META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件
MybatisPlusConfig .java
@MapperScan("${mybatis-plus.mapperPackage}") //读取yaml中自定义配置,可以省略每个xxxMapper接口类上面的注解@Mapper
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 分页插件interceptor.addInnerInterceptor(paginationInnerInterceptor());return interceptor;}/*** 分页插件,自动识别数据库类型* 如果配置多个插件, 切记分页最后添加* 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType*/private PaginationInnerInterceptor paginationInnerInterceptor() {PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);// 分页合理化 若无下一页 则点击下一页返回第一页paginationInnerInterceptor.setOverflow(true);return paginationInnerInterceptor;}
}
org.springframework.boot.autoconfigure.AutoConfiguration.imports
Spring Boot 3.x 中用于自动配置的一种机制,其作用是定义一组自动导入的配置类
Spring Boot 启动时会读取该文件中列出的类,并将它们注册为 Spring 应用上下文中的 Bean
特别适用于多模块项目或插件系统,可以按需加载特定模块的自动配置类
com.zibocoder.plugins.mybatisplus.config.MybatisPlusConfig
创建测试类进行测试
- 在一个业务模块,如:
zibocoder-modules/zibocoder-system
,创建实体类src/main/java/com/zibocoder/system/domain/entity/SysUser.java
SysUser.java
/*** @Description 系统用户实体类* @Author zibocoder* @Date 2025/6/29 13:30:47*/
@Builder
@Data
@TableName(value = "sys_user")
public class SysUser {/*** 用户id 主键 数据库自增*/@TableId(type = IdType.AUTO)private Long userId;/*** 登录账号*/private String loginName;/*** 登录密码*/private String loginPwd;/*** 随机盐*/private String salt;/*** 姓名*/private String realName;/*** 性别:0未知,1男,2女*/private Integer gender;/*** 邮箱*/private String email;/*** 手机号码*/private String phone;/*** 头像地址*/private String avatar;/*** 部门id*/private Long deptId;/*** 是否被禁用(0是,1否)*/private Boolean disabledFlag;/*** 是否为超级管理员(0是,1否)*/private Boolean adminFlag;/*** 是否删除(0是,1否)*/private Boolean deletedFlag;/*** 最后登录IP*/private String loginIp;/*** 最后登录时间*/private LocalDateTime loginTime;
}
src/main/java
创建接口com/zibocoder/system/mapper/SysUserMapper.java
继承BaseMapper<SysUser>
/*** @Description* @Author zibocoder* @Date 2025/6/29 13:29*/
// @Mapper 如果配置文件中没有配置 @MapperScan需要添加@Mapper注解,否则不加
public interface SysUserMapper extends BaseMapper<SysUser> {}
zibocoder-modules/zibocoder-system/pom.xml
添加依赖包
<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>com.zibocoder</groupId><artifactId>zibocoder-plugins-mybatisplus</artifactId></dependency><dependency><groupId>com.zibocoder</groupId><artifactId>zibocoder-starter</artifactId><version>1.0.0</version><scope>test</scope></dependency>
</dependencies>
src/test/java
创建测试类com/zibocoder/system/SysUserTest.java
@SpringBootTest(classes = MainApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE)
public class SysUserTest {@Resourceprivate SysUserMapper userMapper;@Testpublic void testAdd() {for (int i = 0; i < 10; i++) {SysUser sysUser = SysUser.builder().email("zibocoder" + i + "@163.com").deptId(1L).phone("12345678" + i).realName("张三" + i).loginName("zibocoder" + i).loginPwd(SaSecureUtil.sha256("123456")).build();userMapper.insert(sysUser);}}
}
如有帮到你可以点赞,收藏或鼓励一下(
^_^
),有什么疑问可以评论交流互相学习