在工具类里面调用service或者mapper

最近在工作中有遇到工具类里面调用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 {
            // 后台人员
            List userRolesSet = ssysUserService.getRoleCodeByUserName(param[0]);

第一步是在整个类上面加上注解@Component,这样spring才会扫描该类
第二步是注入要调用的service或者mapper
第三步进行初始化,对应的代码就是

 private static ISysUserService ssysUserService; //接收注入的service
    @PostConstruct
    public void init() {
        ssysUserService = sysUserService; //进行赋值,实际上调用的是ssysUserService
    }

第四部就是在业务代码里面调用ssysUserService

posted @ 2021-06-16 15:16  小猫爱哭鬼  阅读(1127)  评论(0编辑  收藏  举报