Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用新的Spring框架应用程序?_Java_Spring - Fatal编程技术网

Java 使用新的Spring框架应用程序?

Java 使用新的Spring框架应用程序?,java,spring,Java,Spring,使用“新建”创建对象是否是禁止的最佳做法。创建对象意味着为某些特定任务创建帮助对象,这些任务与请求没有任何关系,但只用于执行一些后台任务,如读取本地文件、数据库等。Spring框架本身支持以面向对象的方式设计应用程序(即通过最小化使用接口的影响或尽可能减少类之间的依赖关系)。在应用程序上下文中,您创建了一个静态环境,这意味着您可以按照应用程序中需要的方式实例化对象结构 通常在Spring上下文中实例化的对象示例: 数据库连接 服务等级 页面控制器等 这些都是在应用程序生命周期中不会直接更改的

使用“新建”创建对象是否是禁止的最佳做法。创建对象意味着为某些特定任务创建帮助对象,这些任务与请求没有任何关系,但只用于执行一些后台任务,如读取本地文件、数据库等。Spring框架本身支持以面向对象的方式设计应用程序(即通过最小化使用接口的影响或尽可能减少类之间的依赖关系)。在应用程序上下文中,您创建了一个静态环境,这意味着您可以按照应用程序中需要的方式实例化对象结构

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

  • 数据库连接
  • 服务等级
  • 页面控制器等
这些都是在应用程序生命周期中不会直接更改的静态资源(这就是为什么可以在静态上下文中实例化它们)

如果您的对象在运行时(例如,从web请求或其他文件)以对称方式获取所有信息,那么您根本无法在Spring上下文中实例化它们。不要忘记Spring希望并且应该尽可能不引人注目,那么为什么应该禁止使用您以前使用的任何东西

  • 这不是禁止的
  • 实例化无状态组件(比如helpers)不是一个好的做法,因为您正在创建不必要的实例
  • 所有SpringBean都“活”在应用程序上下文中,实例化它们的是SpringBean,而不是您。因此,如果您希望能够将依赖项注入到对象中,就让它们由spring管理,即不要使用
    new
    进行实例化
  • 通常,只有值对象(
    User
    Address
    AccountInfo
    等)由您实例化(使用
    new
  • <> LI>有一些“魔法”允许你使用<代码>新< /代码>来进行依赖注入和实例化。它是注释。它使用AspectJ织布机来插入VM。但直到没有其他选择时,它才是可考虑的。(最后一句是我的意见)
    为什么你会认为它是被禁止的?所谓“禁止”,我的意思是使用它可能是危险的或误导性的,比如使用goto。它是完全有效的,但它的使用可能会导致不良的结果