繁体   English   中英

在引擎盖下的原型范围豆的春季实例化

[英]Spring instantiation of prototype scoped beans under the hood

Spring定义了不同的bean定义范围,一个是原型范围 ,它在每次查找时都提供了一个新实例。

我对它有两个疑问..

  1. 在引擎盖下,spring如何创造一个新的实例?
  2. 我听说过,它使用clone()方法创建一个新实例,如果是,那么为什么以及如果它使用clone来给出一个新实例,那么克隆对象的状态会发生什么,因为clone也会复制状态?
  1. 与任何其他bean一样:使用@Autowired注释的构造函数,或者如果没有任何bean,则使用默认值(如果定义了一个,则使用工厂方法)。

  2. 你听到的是错的。 大多数对象都不可复制,因此只能通过这样做获得异常。 从那以后就没有意义了

    • 它无法创建第一个实例
    • 所有的实例都与第一个实例相同,这显然不是想要的。

Spring使用反射机制来创建新实例。 Spring,首先查找单例映射,如果没有找到实例,则使用bean定义创建新实例,它将应用定义的生命周期。 所以你听到的是错的。

暂无
暂无

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

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