为什么我们不能在Spring bean中自动装配静态实例变量。我知道有另一种方法可以实现这一目标,但只想知道为什么我们不能以以下方式做到这一点。
例如
@Autowired public static Test test;
因为使用静态字段会鼓励使用静态方法。静态方法是邪恶的。依赖项注入的主要目的是让容器为你创建对象并进行连接。而且,它使测试更加容易。
一旦开始使用静态方法,就不再需要创建对象的实例,并且测试变得更加困难。同样,你不能创建给定类的多个实例,每个实例都注入了不同的依赖项(因为该字段是隐式共享的,并且会创建全局状态-也是邪恶的)。
因为当类加载器加载静态值时,仍未加载Spring上下文。因此,类加载器不会正确地将静态类注入Bean中,并且会失败。