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


}
相关推荐
吴梓穆7 小时前
UE5 C++ 使C++创建动画蓝图
开发语言·c++·ue5
冰暮流星7 小时前
javascript之表单事件1
开发语言·前端·javascript
0xDevNull7 小时前
队列(Queue)实战教程:从原理到架构应用
java·开发语言·后端
ShineWinsu7 小时前
C++技术文章
开发语言·c++
再写一行代码就下班7 小时前
word模版导出(占位符方式)
java·开发语言·word
懒得起名_yyf7 小时前
AI智能体Skills全面入门指南
java
~无忧花开~7 小时前
CSS全攻略:从基础到实战技巧
开发语言·前端·css·学习·css3
敖正炀7 小时前
集合-List-ArrayList
java
BING_Algorithm7 小时前
JDBC核心教程
java·后端·mysql
京师20万禁军教头7 小时前
33面向对象(中级)-object类详解
java