为什么我们不能在 Spring bean 中自动装配静态实例变量。我知道还有另一种方法可以实现这一点,但只是想知道为什么我们不能通过以下方式做到这一点。
例如
@Autowired
public static Test test;
原文由 Ashu 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么我们不能在 Spring bean 中自动装配静态实例变量。我知道还有另一种方法可以实现这一点,但只是想知道为什么我们不能通过以下方式做到这一点。
例如
@Autowired
public static Test test;
原文由 Ashu 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.2k 阅读
1 回答2.1k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
1.9k 阅读
2 回答1.1k 阅读
1 回答933 阅读
1 回答468 阅读
因为使用静态字段会鼓励使用静态方法。静态方法是邪恶的。依赖注入的主要目的是让容器为你创建对象并连接它们。它还使测试更容易。
一旦开始使用静态方法,就不再需要创建对象实例,测试也变得更加困难。此外,您不能创建给定类的多个实例,每个实例都注入不同的依赖项(因为该字段是隐式共享的并创建全局状态 - 也是邪恶的)。