Spring它不支持依赖注入static静态变量

Spring它不支持依赖注入static静态变量

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

在springframework在,我们不能@Autowired静态变量,制作spring bean,例如,没有那么:

@Autowired
private static YourClass yourClass;

可以试一下,yourClass在这样的状态下不可以被依赖注入,会抛出执行时异常java.lang.NullPointerException,为什么呢?静态变量/类变量不是对象的属性,而是一个类的属性,spring则是基于对象层面上的依赖注入.

而使用静态变量/类变量扩大了静态方法的使用范围.静态方法在spring是不推荐使用的.依赖注入的主要目的,是让容器去产生一个对象的实例,然后在整个生命周期中使用他们,同一时候也让testing工作更加easy.

一旦你使用静态方法,就不再须要去产生这个类的实例,这会让testing变得更加困难,同一时候你也不能为一个给定的类,依靠注入方式去产生多个具有不同的依赖环境的实例.这样的static field它是隐含共享,它是一个global全局状态,spring同样是不建议这样做.

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117717.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mysql 8.0解压版下载安装及配置教程

    Mysql 8.0解压版下载安装及配置教程首先声明,这里是Mysql8.0.27版本、64位操作系统解压版mysql的下载及安装配置及修改初始密码。如果是其他版本的mysql安装,可以自行查找其他方法,记住搜索的时候最好加上是什么版本的,因为不同版本的mysql安装的时候有些命令是不同的,例如,mysql5.7的就搜索mysql5.7安装。话不多说,接下来就是我的mysql8.0.27版本的教程了。1.下载打开下载地址:https://dev.mysql.com/downloads/mysql/,找到箭头中的文件https:/

    2022年5月8日
    50
  • 经纬度距离计算 python_Python已知两坐标求距离

    经纬度距离计算 python_Python已知两坐标求距离#coding:utf-8#封装函数importmathdefcal_dis(latitude1,longitude1,latitude2,longitude2): latitude1=(Math.PI/180)*latitude1 latitude2=(Math.PI/180)*latitude2 longitude1=(Math.PI/180)*longitu

    2025年11月22日
    4
  • 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)

    学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)一、前言       早就知道maven在java项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java的大腕,大多都是站在掌握了一定maven基础的角度上进行介绍,让我这初学者看的云里雾里不知所云。于是又去查看maven的官方网站,总算是有所了解,但一旦动手实际操作却又雾里看花。唉,没办法,就只有一遍一遍的动手尝试,经过种…

    2025年10月3日
    5
  • pycharm 多行编辑_pycharm如何只运行部分代码

    pycharm 多行编辑_pycharm如何只运行部分代码pycahrm的多行编辑模式可以允许你多行写像同样的代码,但是你删除的时候,也不会像以前那样舒服了,下面就是多行模式的删除的时候出现的问题:选中删除的时候,会出现部分选中,甚至会出现很长的竖着的输入标志,如果有人遇到了这样的问题就i是可能不小心把多行输入这个功能打开了~…

    2022年8月25日
    8
  • 大数据概述「建议收藏」

    大数据概述「建议收藏」目录前言1.1大数据概念及价值1.1.1大数据的特征(特点)(1)规模性(Volume)(2)多样性(Variety)(3)高速性(Velocity)(4)价值性(Value)1.2大数据数据源1.3大数据技术应用场景1.4大数据处理流程及技术收集数据数据预处理与存储数据处理与分析数据可视化与应用环节1.5大数据与云计算的关系1.6大数据与人工智能的关系前言现在的社会是一个科技与信息高速发展的社会,人们之间的交流越来..

    2022年5月6日
    65
  • springcloudfeign原理面试题_微服务feign作用

    springcloudfeign原理面试题_微服务feign作用Feign原理简述启动时,程序会进行包扫描,扫描所有包下所有@FeignClient注解的类,并将这些类注入到spring的IOC容器中。当定义的Feign中的接口被调用时,通过JDK的动态代理来生成RequestTemplate。 RequestTemplate中包含请求的所有信息,如请求参数,请求URL等。 RequestTemplate声明Request,然后将Request交给cl…

    2022年9月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号