【发布时间】:2018-01-03 05:28:14
【问题描述】:
我有一个纯 Java Singleton 类。
public class MySingleton {
Private static instance = new MySingleton();
private MySingleton(){}
public static getInstance(){
return instance;
}
现在,如果我在原型范围内将这个单例类用作 Spring 中的 bean,Spring 会创建这个纯单例类的多个实例吗?
<bean id="supposedToBeSingleton" class="MySingleton" scope="prototype" />
【问题讨论】:
-
试一试,看看会发生什么。我敢打赌一个例外,因为 Spring 无法访问构造函数(除非它使它可以访问,这看起来很笨拙和愚蠢)。
-
我确信 Spring 可以使用反射访问私有构造函数。但问题是它现在会为每个调用创建多个实例吗?
-
任何人可以使用反射访问私有构造函数,问题是是否当它可能导致这种不一致时,Spring会这样做。当然,在这种情况下你不能真正责怪 Spring,但仍然如此。为什么不试试看呢?
-
或者有什么东西阻止你尝试它?你说你有那个代码,那么看看它是怎么回事而不是在这里问不是更容易吗?还是你不知道怎么测试?
-
你手头有代码,运行它,获得自我启蒙。