工具类中使用Spring注入的类两种解决方法

有时候需要在工具类中使用Spring注入的类,比如service等,我以springboot项目中注入redis链接池为例:

为了方便操作redis,写了一个工具类的接口,并且用两种实现写了两个工具类

工具类中使用Spring注入的类两种解决方法_第1张图片

这里使用连接池进行连接的工具类JedisClientPool:

工具类中使用Spring注入的类两种解决方法_第2张图片

在工具类中就使用Spring注入了JedisPool;

然后我就在controller中调用工具类,进行get(),set()操作,结果总是报错

工具类中使用Spring注入的类两种解决方法_第3张图片

经过debug跟踪发现工具类里的JedisClientPool为null,没有注入成功.

解决方法:

方法一:改造工具类

可以参考这篇文章:工具类中使用Spring注入的类

我觉得这种方法比较麻烦,方法在文章写的已经很清楚了

方法二:将工具类也注入spring

在springboot项目中,在配置类中将工具类注入到spring中:

springboot方式:

工具类中使用Spring注入的类两种解决方法_第4张图片

xml方式:

工具类中使用Spring注入的类两种解决方法_第5张图片

这样可以在controller中将工具类注入进来使用,就不会出现空指针的问题了

工具类中使用Spring注入的类两种解决方法_第6张图片

这里注入的是工具类的接口,他会找到配置中配置的工具类进行操作.直接注入工具类也是可以的.

你可能感兴趣的:(框架,编程语言)