因为日常工作中肯定会使用过到工具类 里面必然会有静态方法 但是Spring 是无法直接注入静态方法的 需要一些额外的工作
首先我会介绍3种方法 供大家使用 3种方法没有优劣之分 自己项目能用就行
第一种
//声明为spring组件
@Component
public class Utils{
@Autowired
private Service Service; // 需要注入的对象
// 静态初使化工具类
private static Utils utils;
@PostConstruct
public void init() {
Utils = this;
}
// 老实说 这个方法是百度到最多的方法了 但是我当初拿来用的时候发现是无效的
第二种
@Component
public class StaticUtils {
这里是需要注入的对象使用@resource交给spring来注入
@Resource
private FaceTest faceTest;
//声明一个本静态工具类对象
private static StaticUtils staticUtils;
//加入注解@postcontruct来初始化这个bean
@PostConstruct
public void init(){
staticUtils=this;
staticUtils.faceTest=this.faceTest;
}
//因为工具方法大多都是静态方法 要使用注入的对象就需要赋值给当前静态类
public static List<FaceTest> getFaceTest(){
List<FaceTest> list=staticUtils.faceTest.query();
return list;
//这样就ok了。
}
}
//原文:https://blog.youkuaiyun.com/a365574712/article/details/78568809
// 这个个人亲测有用
第三种
<bean id="testUtils" class="这里写utils类的包全路径名" init-method="init"></bean>