【发布时间】:2012-09-30 19:58:28
【问题描述】:
Spring 定义了不同的 bean 定义范围,其中一个是 原型范围,它在每次查找时都会提供一个新实例。
我对此有两个疑问..
- 在后台,spring 如何创建一个新实例?
- 我听说,它使用clone()方法来创建一个新实例,如果是,那么为什么以及如果它使用clone来提供一个新实例,那么克隆对象的状态会发生什么,因为克隆会复制国家也是?
【问题讨论】:
Spring 定义了不同的 bean 定义范围,其中一个是 原型范围,它在每次查找时都会提供一个新实例。
我对此有两个疑问..
【问题讨论】:
与任何其他 bean 一样:使用带有 @Autowired 注释的构造函数,或者如果没有任何构造函数,则使用默认构造函数(或者如果定义了工厂方法,则使用工厂方法)。
你听错了。大多数对象是不可克隆的,因此这样做只会获得异常。而且这没有任何意义,因为
【讨论】:
Spring 使用反射机制来创建新实例。 Spring,首先查找单例映射,如果没有找到实例,使用bean定义创建新实例,它将应用定义的生命周期。 所以你听错了。
【讨论】: