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;
    }
        
    // 可直接在其他静态方法中使用


}
相关推荐
雨中飘荡的记忆几秒前
Spring Test详解
java·后端·spring
梨落秋霜几秒前
Python入门篇【输入input】
开发语言·python
wen-pan2 分钟前
Go 语言 GMP 调度模型深度解析
开发语言·go
Buxxxxxx7 分钟前
DAY 34 模块和库的导入
开发语言·python
sugar__salt8 分钟前
网络编程套接字(二)——TCP
java·网络·网络协议·tcp/ip·java-ee·javaee
老前端的功夫9 分钟前
前端水印技术深度解析:从基础实现到防破解方案
开发语言·前端·javascript·前端框架
oioihoii9 分钟前
C++异常安全保证:从理论到实践
开发语言·c++·安全
颜颜yan_10 分钟前
跨越x86与ARM:openEuler全架构算力实战评测
java·arm开发·架构
霍格沃兹测试学院-小舟畅学11 分钟前
性能测试入门:使用 Playwright 测量关键 Web 性能指标
开发语言·前端·php
毕设源码-朱学姐11 分钟前
【开题答辩全过程】以 陪诊就医小程序设计与实现为例,包含答辩的问题和答案
java