@PostConstruct
希望在工具类中定义静态方法调用其他Service完成业务逻辑,避免其他Service每次都注入工具类对象
@Component
public class DemoUtil {
//静态实例对象(不能直接用@Autowired进行注入,否则结果为空,引发空指针)
private static DemoUtil demoUtil;
@Autowired//注入当前工具类实例对象
private DemoUtil util;
@PostConstruct//修饰的方法用于初始化,需满足方法不能带参数和返回值必须为void两个条件,在服务器加载Servlet时候执行且只执行一次
public void init(){
demoUtil = util;//通过实例对象给静态实例赋值
}//或者写法:public @PostConstruct void init(){ }
@Autowired//注入其他Service实例对象
private IService service;
//在静态方法里,
public static Object method(){
demoUtil.service.xxx();//业务逻辑
}
扩展:
用于任何需要给静态对象自动注入实例的情况都可以使用