Spring-如何给静态变量注入值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring-如何给静态变量注入值相关的知识,希望对你有一定的参考价值。

Spring无法直接给静态变量注入值,因为静态变量不属于对象,只属于类,也就是说在类被加载字节码的时候变量已经初始化了,也就是给该变量分配内存了,导致spring忽略静态变量。所以如下这种写法就是错误的,这样是无法注入的,在使用该变量的时候会导致空指针错误:

@Autowired
private static StudentMapper studentMapper;

Spring 依赖注入是依赖set方法,静态变量不属于对象,只属于类。解决方法就是加上非静态的set方法,如下:

private static StudentMapper studentMapper;

public StudentMapper getStudentMapper() {
        return studentMapper;
}

@Autowired
public void setStudentMapper(StudentMapper studentMapper) {
        this.studentMapper = studentMapper;
}

以上是关于Spring-如何给静态变量注入值的主要内容,如果未能解决你的问题,请参考以下文章

spring boot 配置注入

踩坑:Spring静态变量/构造函数注入失败(注入为null)问题的解决方案

踩坑:Spring静态变量/构造函数注入失败(注入为null)问题的解决方案

spring注入静态成员变量

Spring注入值到静态变量

工具类使用@Value将信息注入到静态变量中