参考1 静态工具类注入mapper方法
静态工具类注入mapper方法_yuanlijiefengjuan的博客-CSDN博客_静态工具类注入mapper
package com.adc.da.main.util;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import com.adc.da.riskassessment.securitysystem.entity.OperationLog;
import com.adc.da.riskassessment.securitysystem.mapper.OperationLogMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Date;
/**
* 添加日志的工具类,注入mapper
*
* @author yuanlijie
* @date 2019-03-07
*/
@Component
public class OperationLogUtil {
/**
* 操作日志的MAPPER
*/
@Autowired
private OperationLogMapper log;
private static OperationLogUtil operationLogUtil;
@PostConstruct
public void init(){
operationLogUtil = this;
operationLogUtil.log = this.log;
}
public static void insertOperationLog (String content,String userId) {
OperationLog bean = new OperationLog();
//设置ID
Snowflake snowflake = IdUtil.createSnowflake(1, 1);
String id = String.valueOf(snowflake.nextId());
bean.setId(id);
bean.setContent(content);
bean.setSysUserId(userId);
bean.setCreateDate(new Date());
bean.setUpdateDate(new Date());
bean.setDelFlag("0");
operationLogUtil.log.insert(bean);
}
}
参考2 如何在utils工具类中注入mapper service
如何在utils工具类中注入mapper service_8080-CSDN博客
系统为SpringMVC框架,在开发的过程中有一些工具类需要调用下由spring管理的service层。但是一进注入不进来,报null异常;
在尝试了网上的一系列方法后,还是没有解决。网上的解决方法主要有以下几种:
1、将工具类申明为spring组件,如@controller @compent 等,在spring自动扫描包设置中将工具类所在的包加进来; 无效
2、new一个service; 无效 而且不符合spring管理;
山穷水尽后,找到了一个另类的解决办法,代码原理还不太清楚,只是大概猜测下,有错误的地方,大家留言指正:
@Component //申明为spring组件
public class TestUtils {
@Autowired
private TestService testService; //添加所需service的私有成员
private static TestUtils testUtils ; // 关键点1 静态初使化 一个工具类 这样是为了在spring初使化之前
public void setTestService(TestService testService) {
this.testService = testService;
}
@PostConstruct //关键二 通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
public void init() {
testUtils = this;
testUtils.testService = this.testService; // 初使化时将已静态化的testService实例化
}
这样下面的代码中就可以通过 testUtils.testService 来调用service处理