有时候需要在工具类中使用Spring注入的类,比如service等,我以springboot项目中注入redis链接池为例:
为了方便操作redis,写了一个工具类的接口,并且用两种实现写了两个工具类
这里使用连接池进行连接的工具类JedisClientPool:
在工具类中就使用Spring注入了JedisPool;
然后我就在controller中调用工具类,进行get(),set()操作,结果总是报错
经过debug跟踪发现工具类里的JedisClientPool为null,没有注入成功.
解决方法:
方法一:改造工具类
可以参考这篇文章:工具类中使用Spring注入的类
我觉得这种方法比较麻烦,方法在文章写的已经很清楚了
方法二:将工具类也注入spring
在springboot项目中,在配置类中将工具类注入到spring中:
springboot方式:
xml方式:
这样可以在controller中将工具类注入进来使用,就不会出现空指针的问题了
这里注入的是工具类的接口,他会找到配置中配置的工具类进行操作.直接注入工具类也是可以的.