SpringBoot 自定义@Enable开关注解之配置MybatisPlus分页助手

28 篇文章 4 订阅
14 篇文章 3 订阅

自定义开关注解配置分页助手

使用 IPage 的话,记得一定要配置分页助手,尤其是在做微服务项目的时候,有可能这个服务配置了,但是另一个没配置,很容易遗漏。

因为给每个微服务都加配置确实太麻烦了,所以想到可以使用开关注解来做一个自动配置的操作。

就像你常用的那些开关注解一样:

@EnableAsync // 开启异步控制
@EnableCreateCacheAnnotation  // jetcache启用缓存的主开关

我将mybatis-plus的配置类也做成了这样的东西。

  1. 首先在微服务的公共模块里定义一个配置类,如果不是微服务的话就放在自己的单体项目里就直接有效果了,不用单独做个开关注解。

    package cn.sticki.common.tool.mybatisconfig;
    
    import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
    import org.springframework.context.annotation.Bean;
    
    @Configuration
    public class MybatisPlusWebConfig {
    
    	@Bean
    	public MybatisPlusInterceptor mybatisPlusDefaultInterceptor() {
    		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    		interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); // 配置分页助手
    		interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); // 阻止恶意的全表更新删除
    		return interceptor;
    	}
    }
    
  2. 然后定义一个开关 @EnableMybatisPlusIPage 注解,注意这里的@Import(MybatisPlusWebConfig.class),就是把上面定义的配置类进行导入的:

    package cn.sticki.common.tool.mybatisconfig;
    
    import org.springframework.context.annotation.Import;
    
    import java.lang.annotation.*;
    
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Import(MybatisPlusWebConfig.class)
    public @interface EnableMybatisPlusIPage {
    
    }
    
  3. 定义完毕后直接在其他需要的模块的启动类上进行配置即可,这里注意不是上面写代码的模块了,而是在其他模块上(其他需要该配置的模块):

    package cn.sticki.user;
    
    import cn.sticki.common.tool.mybatisconfig.EnableMybatisPlusIPage;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @EnableMybatisPlusIPage // 开启mybatis分页助手
    public class UserServerApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(UserServerApplication.class, args);
    	}
    }
    

    做到这一步已经有效果了,随后进行测试即可。

PS:如果不确定是否配置成功的话,可以在第一步的 mybatisPlusDefaultInterceptor 里面加上一句输出,然后再启动程序。这样的话,启动程序的时候是可以在控制台看到这句输出的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿杆.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值