springboot环境下工具类中注入对象或者静态方法中工具类中注入对象

众所周知工具类一般为static的,如果我们在工具类中需要操作数据库,那么spring环境下需要注入service或者dao将对象交给spring进行管控,但是静态的的对象是无法被注入的,代码可能会出现各种空指针。需要采用@PostConstruct注解,

具体@PostConstruct使用的条件:

1.@PostConstruct 用在方法上

2.使用这个注解的类必须可以被spring管理,我是在工具类上添加了@Component

可以了解一下这个注解具体的执行的顺序

优先执行依然是构造方法,这个是java的语言决定的,毕竟spring只是建立在java之上的框架。然后才是被PostConstruct修饰的方法,要注意的是这个方法在对象的初始化和依赖都完成之后才会执行,所以不必担心执行这个方法的时候有个别成员属性没有被初始化为null的情况发生。

错误:

springboot环境下工具类中注入对象或者静态方法中工具类中注入对象_第1张图片

正确的注入方式:

springboot环境下工具类中注入对象或者静态方法中工具类中注入对象_第2张图片

你可能感兴趣的:(java,spring)