美文网首页
Spring问题汇总-03静态变量注入

Spring问题汇总-03静态变量注入

作者: 惊天动地猪儿虫 | 来源:发表于2020-12-20 00:52 被阅读0次

1 Spring中静态变量注入的方法

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

@Slf4j
@Component
public class AnalysisTelexKeyWorkFactory {
    @Autowired
    @Qualifier("kkeyWordHander")
    private static AnalysisTelexKeyWord kkeyWordHander;

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

@Slf4j
@Component
public class AnalysisTelexKeyWorkFactory {

    private static AnalysisTelexKeyWord kkeyWordHander;

    @Autowired
    @Qualifier("kkeyWordHander")
    public void setKkeyWordHander(AnalysisTelexKeyWord kkeyWordHander) {
        AnalysisTelexKeyWorkFactory.kkeyWordHander = kkeyWordHander;
    }

相关文章

网友评论

      本文标题:Spring问题汇总-03静态变量注入

      本文链接:https://www.haomeiwen.com/subject/yjvqnktx.html