为什么用@autowired注入的ApplicationContext实例,和方法中获取的ApplicationContext实例,不同?

为什么用@autowired注入的ApplicationContext实例,和方法中获取的ApplicationContext实例,不同?
包括用getBean()获取到的对象地址也不同,及时是单例模式也不同

img

img

如果你是xml的配置,这种情况很正常,springmvc在绝大部分的xml配置下,是子容器加载的controller bean,此时controller里面的applicationcontext是和ServletContext里面保存的content那是不同的

img


简单点来说,spring的主配置文件和springmvc的配置文件,存在两个applicationcontext,web.xml中配置的监听器ContextLoaderListener,则把spring的主配置对应的context丢到了ServletContext中(自己想想,为啥这里是主配置文件?)
springboot的话,现在controller和service都是由一个applicationContext加载,它就无法复现你这个问题

是两个对象。入参都不一样,肯定返回的结构也不一样。

img