SpringBoot 在非静态方法中调用Mybatis Mapper

java 专栏收录该内容
1 篇文章 0 订阅

通常在静态的方法中使用 Mybatis Mapper, 自动注入 @Autowired 是不行的, 会报空指针异常.

解决办法 :

需要用到 @PostConstruct 注解, 该注解会在类加载之前自动执行标识的方法,在放方法中把静态的类赋值给非静态的类.

示例代码

    @Component
    public class ApplicationUtil {
        @Autowired
        private Mapper mapper;
        private static StaticMapper staticMapper;
        
        @PostConstruct
        public void init(){
            this.mapper = staticMapper;
        }
        
        public static StaticMapper getStaticMapper(){
            return staticMapper;
        }
    }

调用

public class test{
    @Autowired
    ApplicationUtil applicationUtil
    
    public void testMapper (){
    	//从工具类中获取到静态的Mapper
        StaticMapper staticMapper = ApplicationUtil.getStaticMapper();
        //调用Maper方法
        staticMapper.selectOne(....);
    }
}
  • 0
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值