Java普通Utils 类(非 Controller、Service)注入 mapper 为 null
需要将 Utils 类添加 @Component 注解注入 Spring 容器,添加 init () 方法,并用注解 @PostConstruct 注解修饰方法, 被 @PostConstruct 修饰的方法会在服务器加载 Servle 的时候运行,并且只会被服务器执行一次。PostConstruct 在构造函数之后执行,init () 方法之前执行。PreDestroy()方法在 destroy () 方法执行执行之后执行, 结果能注入成功!
@Component
public class HworkUserRoleUtil {
@Resource
private SysRegionMapper sysRegionMapper;
public static HworkUserRoleUtil hworkUserRoleUtil;
@PostConstruct
public void init() {
hworkUserRoleUtil = this;
hworkUserRoleUtil.sysRegionMapper = this.sysRegionMapper;
}
public static void getAreaByQz(){
// 写法1
List<SysRegionPo> sysRegionPoList = hworkUserRoleUtil.getSysRegion(code.substring(0, 4));
// 写法2
List<SysRegionPo> sysRegionPoList = new HworkUserRoleUtil().getSysRegion(code.substring(0, 4));
}
/**
* 获取大区编码
*
* @param areaCode
* @return
*/
public List<SysRegionPo> getSysRegion(String areaCode) {
List<SysRegionPo> sysRegionPos = hworkUserRoleUtil.sysRegionMapper.selectList(new LambdaQueryWrapper<SysRegionPo>()
.eq(SysRegionPo::getAreaCode, areaCode).eq(SysRegionPo::getIsDeleted, CommonConst.INT_NO));
return sysRegionPos;
}
}