此次操作是在多模块下进行的,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 {
@Bean
public 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 {
@Resource
private SysUserMapper userMapper;
@Test
public 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);
}
}
}
如有帮到你可以点赞,收藏或鼓励一下(
^_^
),有什么疑问可以评论交流互相学习