MybatisPlusConfig可用的
时间: 2025-07-10 15:39:04 浏览: 4
### MyBatis Plus 配置类 `MybatisPlusConfig` 的使用方法及可配置项
#### 1. 自定义配置类的作用
`MybatisPlusConfig` 是用于自定义 MyBatis-Plus 行为的一个 Java 配置类。通过该类可以实现对 MyBatis-Plus 功能的扩展和定制化,例如全局配置、拦截器注册以及分页插件等功能。
#### 2. 常见的可配置项及其用途
##### (1) **分页插件**
MyBatis-Plus 提供了一个内置的分页插件,可以通过 `MybatisPlusConfig` 注册到 Spring 容器中以便支持分页查询功能。
```java
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面最大值,默认无限制
paginationInterceptor.setLimit(500);
return paginationInterceptor;
}
```
上述代码实现了分页插件的功能,并设置了单次请求的最大记录数[^3]。
##### (2) **性能分析拦截器**
此拦截器主要用于 SQL 执行时间过长的情况发出警告或抛出异常,帮助开发者优化数据库访问效率。
```java
@Bean
public PerformanceInterceptor performanceInterceptor() {
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
// 是否开启性能监控开关,SQL 执行大于设定的时间则打印日志提示
performanceInterceptor.setMaxTime(100); // 单位毫秒
performanceInterceptor.setFormat(true); // 格式化 SQL 输出
return performanceInterceptor;
}
```
##### (3) **乐观锁机制**
为了防止并发更新数据时发生覆盖问题,MyBatis-Plus 支持基于版本号的乐观锁控制。
```java
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
```
当实体类字段中标记了 `@Version` 注解后,在执行更新操作时会自动校验版本号是否一致。
##### (4) **逻辑删除插件**
允许在不真正物理删除表记录的情况下标记某些状态作为已删除标志。
```java
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector(); // 启用逻辑删除特性
}
// 实体类中的字段需加上如下注解来指定逻辑删除规则
@TableLogic(value="0",delval="1")
private Integer deleted;
```
这里指定了未被删除的状态值 (`value`) 和已被删除后的状态值 (`delval`)。
#### 3. 整合至 Spring Boot 应用程序
由于 Spring Boot 提供了强大的自动化配置能力[^2],因此只需要简单声明这些 Bean 就能完成大部分工作而无需额外的手动干预。
---
###
阅读全文
相关推荐


















