众所周知工具类一般为static的,如果我们在工具类中需要操作数据库,那么spring环境下需要注入service或者dao将对象交给spring进行管控,但是静态的的对象是无法被注入的,代码可能会出现各种空指针。需要采用@PostConstruct注解,
具体@PostConstruct使用的条件:
1.@PostConstruct 用在方法上
2.使用这个注解的类必须可以被spring管理,我是在工具类上添加了@Component
可以了解一下这个注解具体的执行的顺序
优先执行依然是构造方法,这个是java的语言决定的,毕竟spring只是建立在java之上的框架。然后才是被PostConstruct修饰的方法,要注意的是这个方法在对象的初始化和依赖都完成之后才会执行,所以不必担心执行这个方法的时候有个别成员属性没有被初始化为null的情况发生。
错误:
正确的注入方式: