spring 工厂模式解耦的升级版(多例转单例)

  我们在表现层敲一个循环,打印一下用beanfactory生产的对象

   我们可以看见,此时的对象是多例,多例就是有多个对象实例

  我们在AccountServiceImpl中加一个成员变量,并做一点操作

  然后我们在表现层调用as对象的保存账户方法,可以看到每个对象都是独立的,i的值没有累加

   我们看beanfactory,因为使用了newInstance方法,因此每次都会调用对象的默认构造方法

  于是我们需要对factory进行改造,使生产的对象变成单例,我们需要做到每次只newInstance一次,如果不存起来,jvm的垃圾回收机制会清理掉。

  我们定义一个map容器,用于存放我们的bean对象

   然后我们在静态代码块里,我们初始化每个bean

   然后我们可以改造getBean方法

   然后我们运行一下,可以看到执行的是同一个对象

 

 

 

 

  

 

posted @ 2020-10-03 15:29  艾尔夏尔-Layton  阅读(170)  评论(0编辑  收藏  举报