在工具类静态方法调用@Autowired注入的bean方法

今天在搞一个工具类的时候,需要在工具类的静态方法中调用mapper的方法插入数据,但是,用spring的@Autowired注入bean后,测试一跑,报空指针异常。

解决方案如下:

1.对工具类使用@Component 注解

2.@Autowired 注解注入bean

3.@PostConstruct 使用该注解定义init()方法,在方法中给logTool赋值

使用时调用logTool.xxxMapper.method();

ok,搞定!

@Component
public class LogTool {
    @Autowired
    private XxxMapper xxxMapper;
 
    public static LogTool logTool;
 
    @PostConstruct
    public void init() {
        logTool = this;
    }
 
 
    public static void error(Class logClass, Object e) {
        Logger logger = Logger.getLogger(logClass);
        String msg ;
        if (e instanceof Exception) {
            msg = getException((Exception) e);
 
        } else {
            msg = e.toString();
        }
        logger.error(msg);
        Test test= new Test();
        
 
 
        test.setName("testError");
        test.setMsg("testError"); 
        logTool.xxxMapper.insert(test);
    } 
}

实现检验方法可用

参考:https://blog.csdn.net/qq_34273222/article/details/78205842

你可能感兴趣的:(在工具类静态方法调用@Autowired注入的bean方法)