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


}
相关推荐
YuTaoShao21 小时前
【LeetCode 每日一题】3721. 最长平衡子数组 II ——(解法二)分块
java·算法·leetcode
m0_5287490021 小时前
linux编程----目录流
java·前端·数据库
qq_3707730921 小时前
python实现人脸识别
开发语言·python·opencv
spencer_tseng21 小时前
Thumbnail display
java·minio
jay神21 小时前
基于SpringBoot的英语自主学习系统
java·spring boot·后端·学习·毕业设计
sww_102621 小时前
Spring AI 可观测性实战
java·人工智能·spring
qinaoaini1 天前
Spring 简介
java·后端·spring
-小麦子-1 天前
Python 里的 range 是干嘛的?
开发语言·python
lly2024061 天前
CSS 图像拼合技术
开发语言
高山上有一只小老虎1 天前
java中常用的日期方法
java