StringRedisTemplate Autowired注入为空解决

如下注入方式报空指针异常: java.lang.NullPointerException: null

java 复制代码
    @Autowired
    private StringRedisTemplate redisTemplate;

**解决办法:**查看该类上有没有加注解,如@Component等,没加的话加上。

还有一种是在工具类中使用,由于要在其他静态方法中使用,如下我注入的是静态变量,也加了类注解,还是报空指针异常。

java 复制代码
    @Autowired
    private static StringRedisTemplate redisTemplate;

解决办法: 使用Java提供的@PostConstruce注解,赋予静态对象redisTemplateStatic一个实例,代码如下,该方式不止作用于StringRedisTemplate ,其他第三方库静态属性均可。@PostConstruct该注解被用来修饰一个非静态的void()方法。PostConstruct在构造函数之后执行,init()方法之前执行。

执行顺序:

Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)

java 复制代码
@Component
public class GlobalUtils {    

    private static StringRedisTemplate redisTemplateStatic;
    @Autowired
    private StringRedisTemplate redisTemplate;

    private static ObjectMapper objectMapper;
    @Autowired
    private ObjectMapper mapper;

    @PostConstruct
    public void initData() {
        objectMapper = this.mapper;
        redisTemplateStatic = this.redisTemplate;
    }
        
    // 可直接在其他静态方法中使用


}
相关推荐
qwert10372 分钟前
深入解析Python标识符:定义、规则、规范与实践指南
开发语言·数据库·python
cqwuliu8 分钟前
Freemarker模板工具
java·开发语言
学习,学习,在学习9 分钟前
Qt多线程的使用与注意事项
开发语言·数据库·qt
asdfg125896310 分钟前
`(line1, line2) -> line1 + line2` 此Lambda 表达式的理解
java·开发语言
如竟没有火炬12 分钟前
去除重复字母——贪心+单调栈
开发语言·数据结构·python·算法·leetcode·深度优先
AI人工智能+电脑小能手20 分钟前
【大白话说Java面试题 第49题】【JVM篇】第9题:什么是双亲委派机制?介绍一下运作过程。?
java·开发语言·jvm
码农-阿杰23 分钟前
Java 线程中断机制深度解析:从 API 到底层 C++ 实现
java·开发语言·c++
Brilliantwxx25 分钟前
【C++】priority_queue以及 仿函数 的学习
开发语言·c++·笔记·学习·算法
风味蘑菇干25 分钟前
斗地主案例
java·数据结构·算法
码农学院32 分钟前
itextsharp .net中如何设置两个表格的间距设为0,取网站的域名,协议、端口、当前站点目录的地址
开发语言·c#·.net