为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我们不能在春季自动接线静态场

为什么我们不能在春季自动接线静态场

C++
侃侃无极 2019-12-11 10:09:02
为什么我们不能在Spring bean中自动装配静态实例变量。我知道还有其他方法可以做到这一点,但只是想知道为什么我们不能以下面的方式做到这一点。例如@Autowiredpublic static Test test;
查看完整描述

3 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

因为使用静态字段会鼓励使用静态方法。静态方法是邪恶的。依赖项注入的主要目的是让容器为您创建对象并进行连接。而且,它使测试更加容易。

一旦开始使用静态方法,就不再需要创建对象的实例,并且测试变得更加困难。同样,您不能创建给定类的多个实例,每个实例都注入不同的依赖项(因为该字段是隐式共享的,并且会创建全局状态-也很邪恶)。


查看完整回答
反对 回复 2019-12-12
?
暮色呼如

TA贡献1853条经验 获得超9个赞

根据OOP的概念,如果自动连接静态变量将是不好的设计。

静态变量不是Object的属性,而是Class的属性。弹簧自动接线是在对象上完成的,因此我认为设计很干净。您可以将自动有线bean对象部署为单例,并实现与静态定义相同的目的。


查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 340 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信