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


}
相关推荐
Moso_Rx3 分钟前
JavaEE——Thread类的基本用法
java·java-ee
魔道不误砍柴功4 分钟前
Jakarta EE 11发布:云原生Java企业应用的新标准
java·开发语言·云原生
bug菌5 分钟前
经理突然问我为什么BigDecimal可以不丢失精度?我表示...😨
java·后端·java ee
小郝 小郝11 分钟前
【C语言】内存函数
c语言·开发语言
创码小奇客19 分钟前
MongoDB:数据库界的 “狂野西部牛仔”
java·mongodb·trae
cheryl8824 分钟前
Python+Requests 企业级接口测试入门(1~3天)
开发语言·python
Spring-wind28 分钟前
【golang】为什么协程开销小于线程
java·开发语言·golang
Yang-Never34 分钟前
Open GL ES -> SurfaceView + 自定义EGL实现OpenGL渲染框架
android·开发语言·图像处理·android studio
wjs202441 分钟前
Perl 发送邮件
开发语言
隔壁小查1 小时前
【后端开发】Spring MVC-常见使用、Cookie、Session
java·spring·mvc