此次操作是在多模塊下進行的,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);}}
}
如有幫到你可以點贊,收藏或鼓勵一下(
^_^
),有什么疑問可以評論交流互相學習