最近在工作中有遇到工具類里面調用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
