spring 容器是单例的,从哪能看出来呢

来源:6-10 xml配置的资源定位、加载、解析、注册全链路分析

慕哥6062902

2020-08-15

老师,这个容器是单例的,从哪证明呢。FileSystemXmlApplicationContext,以这个子类为例,他的构造方法是public啊,外界可以随便用

写回答

1回答

翔仔

2020-08-16

慕哥好,可以直接sysmtem.out.println打印一下容器,就会发现容器是一样的,spring里面如果不是单例的话,某些容器的配置改变之后,如果不是单例,就没法保证不同实例容器之间的配置是一致的了,或者说某些bean看起来已经是注册了,实际上却找不到(在另外一个容器实例里)。

当然,如果有public方法的话,是能够破坏单例的,但是既然都能操纵容器实例了,所以自然想破坏也是没有问题的,只是没意义。咱们这里自研框架演示严格单例主要是想教会大家如何让单例变得更安全

0
1
慕哥6062902
发现现在的水平还不适合想这些问题,谢谢老师的回答
2020-08-16
共1条回复

剑指Java自研框架,决胜Spring源码

快速入门Spring核心源码+从零开发自研框架

1498 学习 · 495 问题

查看课程