programme

SpringBoot中静态类调用自动注入的Mapper

问题

在静态的方法中使用 Mybatis Mapper, SpringBoot注解@Autowired 是不行的。

解决方法

创建一个工具类,并且使用 @PostConstruct 注解 。

该注解会在类加载之前自动执行标识的方法,并在方法中把静态的类赋值给非静态的类。

工具类代码

@Component
public class StaticUtil {
    @Autowired
    private HumitureMapper humitureMapper;
    private static HumitureMapper staticHumitureMapper;

    @PostConstruct
    public void init() {
        staticHumitureMapper = humitureMapper;
    }

    public static HumitureMapper getStaticMapper() {
        return staticHumitureMapper;
    }
}

调用

@Autowired
StaticUtil humitureMapper;

HumitureMapper humitureMapper = StaticUtil.getStaticMapper();

参考文章

https://blog.csdn.net/XmanAron/article/details/100515820

陌风同学
微信公众号:MFlow 知乎:陌风小同学
查看“陌风同学”的所有文章 →

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关推荐


Copyright 2015-2021 陌风同学 All Rights Reserved. 页面生成时间:6.579 秒.
 ICP证:鲁ICP备15022835号-1