首页 > Java > java教程 > 使用 Spring 的 ApplicationContext.getBean() 是否被视为反模式?

使用 Spring 的 ApplicationContext.getBean() 是否被视为反模式?

Patricia Arquette
发布: 2024-11-27 07:15:12
原创
793 人浏览过

Is Using Spring's ApplicationContext.getBean() Considered an Anti-Pattern?

为什么 Spring 的 ApplicationContext.getBean 被认为是不好的?

Spring 的 ApplicationContext.getBean() 方法可能看起来是一种访问 bean 的便捷方法,但这通常被认为是不好的做法。相反,首选方法是通过使用依赖注入来接受控制反转 (IoC) 的概念。

委托依赖注入

调用 ApplicationContext.getBean() 违反通过在消费类中引入对 Spring 的依赖来遵循 IoC 原则。这使得该类不太灵活并且更难测试。它还阻碍了轻松更改依赖项实现的能力。

依赖注入的好处

依赖注入提供了许多优点:

  • 解耦类:类变得不知道它们如何获取它们的
  • 增强可测试性:可以轻松注入模拟依赖项进行测试。
  • 简化代码:类专注于核心职责,无需担心依赖关系管理。

实现依赖Spring 中的注入

您应该在使用类中声明一个方法来接收依赖项作为参数,而不是调用 ApplicationContext.getBean()。 Spring 会根据 bean 配置自动注入适当的依赖。

示例配置

<bean>
登录后复制

Bootstrapping

中在 main 方法中,使用 ApplicationContext.getBean("myApplication") 检索根 bean“myApplication”。这个根 bean 应该依赖于所有其他服务,从而消除在其他地方调用 getBean() 的需要。

结论

避免 ApplicationContext.getBean() 可以促进真正的 IoC Spring,产生灵活、可测试和可维护的代码。通过方法参数接受依赖注入允许 Spring 执行其管理依赖关系的指定角色。

以上是使用 Spring 的 ApplicationContext.getBean() 是否被视为反模式?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板