1、无法注入的原因分析:
由于静态对象无法注入到另一个类中,工具类中又都是静态方法,静态方法只能调用静态对象,所以直接注入肯定为空。
2、解决方案:
先注入非静态对象,再用这个非静态对象给静态对象赋值,静态对象有了,就可以调用方法了。
@Component
public class ColumnRuleUtils {
private static Map<String,String> map = new HashMap<>();
@Autowired
private MethodsDao methodsDao;
private static MethodsDao staticMethodsDao;
@PostConstruct
public void init(){
staticMethodsDao = this.methodsDao;
}
static {
map.put("examineName","getExamineName");
}
public static Object getExamineName(String mid) {
Methods methods = staticMethodsDao.get(mid);
return methods.getUser().getName();
}
}