最近在工作中有遇到工具类里面调用service方法的情景
@Component public class RloerUtil { /** * springboot不支持注入静态属性,所以在工具类中使用@Autowired或者其他注解自动注入会失败 * 才用如下方法这可以避免注入失败 */ @Autowired ISysUserService sysUserService; private static ISysUserService ssysUserService; @PostConstruct public void init() { ssysUserService = sysUserService; } public String getrole() { // 获取当前用户 String loginUser = LoginThreadLoad.getLoginUser(); String[] param = loginUser.split("_"); //loginType为enterprise代表门户端用户 loginType为approve代表审批端用户 if ("enterprise".equals(param[1])) { // 普通用户,只能查自己的评价 return "1" + "-" + param[0]; } else { // 后台人员 ListuserRolesSet = ssysUserService.getRoleCodeByUserName(param[0]);
第一步是在整个类上面加上注解@Component,这样spring才会扫描该类
第二步是注入要调用的service或者mapper
第三步进行初始化,对应的代码就是
private static ISysUserService ssysUserService; //接收注入的service @PostConstruct public void init() { ssysUserService = sysUserService; //进行赋值,实际上调用的是ssysUserService }
第四部就是在业务代码里面调用ssysUserService