spring里有一个很好玩的toString方法

在spring容器启动的时候,会加载bean的定义信息,在解析bean信息之前呢,会创建一个实体解析器(主要目的是为加载spring解析的配置节点对象以xml为例,就是一些dtd或者xsd的规范)

 

 

 在idea里debug跟踪的时候依次会看到去创建一个可插拔式的解析器PluggableSchemaResolver类

 

调用构造方法里没有对schamaMappings做任何属性赋值。

 

 

 但是我们debug点开这个类可以很明显的看到schamaMappings集合里有很多元素,很奇怪吧?

 

 主要原因是idea在展示对象的时候会调用toString方法,而PluggableSchemaResolver类中toString方法恰好会去调用对schamaMappings属性赋值的操作

 

 很奇怪吧,spring的开发大佬们为啥要去做这件事件,完全想不通.............

有没有大佬解释一下哇

 

posted @ 2022-04-18 21:36  搬砖党路过  阅读(153)  评论(0)    收藏  举报