## 简介 * 乐观锁采用mybatis-plus自带,具体请看:https://mybatis.plus/guide/interceptor-optimistic-locker.html ## 如何启用 * 框架默认没有开启乐观锁,若需要使用请根据如下步骤操作 * 以springboot版本为例,找到config类,加入如下代码便可生效 ~~~ /** * mybatis-plus 拦截器集合 */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(ObjectProvider<QueryInterceptor[]> queryInterceptors, TenantLineInnerInterceptor tenantLineInnerInterceptor, MybatisPlusProperties mybatisPlusProperties) { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 配置租户拦截器 interceptor.addInnerInterceptor(tenantLineInnerInterceptor); // 配置分页拦截器 BladePaginationInterceptor paginationInterceptor = new BladePaginationInterceptor(); // 配置自定义查询拦截器 QueryInterceptor[] queryInterceptorArray = queryInterceptors.getIfAvailable(); if (ObjectUtil.isNotEmpty(queryInterceptorArray)) { AnnotationAwareOrderComparator.sort(queryInterceptorArray); paginationInterceptor.setQueryInterceptors(queryInterceptorArray); } paginationInterceptor.setMaxLimit(mybatisPlusProperties.getPageLimit()); paginationInterceptor.setOverflow(mybatisPlusProperties.getOverflow()); // 配置分页拦截器 interceptor.addInnerInterceptor(paginationInterceptor); // 配置乐观锁拦截器 interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return interceptor; } ~~~ ![](https://img.kancloud.cn/22/4f/224f608d97db8dab5ccb40db63508e20_2856x1342.png) ## 如何配置 * 后端与数据库配置version字段,并且为int类型 ![](https://img.kancloud.cn/81/de/81de05b84ee34d27576af407bcfaac2f_2050x1606.png) ![](https://img.kancloud.cn/c8/c5/c8c5bc51483344850ab6d6c439b3d7a6_1860x1510.png) * 前端配置version字段 ![](https://img.kancloud.cn/3d/64/3d64aad686a3ca010ca281d715a6bb3b_1220x888.png) ## 启动测试 * 前后端启动后,我们可以看到每次保存,version的值都会变动 ![](https://img.kancloud.cn/39/35/3935cf13fa4cb7fb75d821284d1c74e1_2610x880.png) * 这时候我们浏览器打开两个编辑界面,模拟多人操作,当一个操作成功version变成6之后再保存另一个(打开时version为5),可以看到操作失败,这样一来,乐观锁配置便成功了 ![](https://img.kancloud.cn/c2/f5/c2f5581537e12448c7c73e66ac0e9c5d_2152x1760.png)