繁体   English   中英

在Spring框架中使用新的应用程序?

[英]Using new in Spring framework applications?

是禁止还是不是使用new创建对象的最佳实践。 为某些特定任务创建对象意味着类似于帮助程序对象,这些特定任务与请求无关,但仅用于执行一些后台任务,例如读取本地文件,数据库等

  1. 这不是禁止的
  2. 实例化无状态组件(如助手)不是一个好习惯,因为您正在创建不必要的实例
  3. 所有的Spring bean在应用程序上下文中都是“活动的”,是实例化它们的人,而不是您。 因此,如果您希望能够依赖项注入到对象中,请让它们受Spring管理-即不要使用new实例化。
  4. 通常,您仅实例化值对象( UserAddressAccountInfo等)(使用new
  5. 有一些“魔术”可以让您使用new依赖注入和实例化。 这是@Configurable批注。 它使用插入VM的AspectJ编织器。 除非没有其他选择,否则不要考虑。 (最后一句话是我的意见)

Spring框架本身支持以面向对象的方式设计应用程序(即,通过最小化使用接口的影响或使类之间的依赖性尽可能小)。 在应用程序上下文中,您将创建一个静态环境,这意味着您将实例结构实例化为需要它们在应用程序中的方式。

通常在Spring上下文中实例化的对象的示例:

  • 数据库连接
  • 服务等级
  • 页面控制器等

这些都是静态资源,不会在应用程序生命周期中直接更改(这就是为什么您可以在静态上下文中实例化它们的原因)。

如果只有一个对象在运行时(例如,从Web请求或另一个文件)获取所有信息,则无法在Spring上下文中实例化它们。 不要忘记Spring想要并且应该尽可能不引人注目,那么为什么应该禁止使用您以前使用的任何东西呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM