You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何AnnotationConfigServletWebServerApplicationContext未实现指定接口方法?

问题解答
  • 首先明确:addBeanFactoryPostProcessor 方法并非 ConfigurableWebServerApplicationContext 接口新增的,它来自该接口的父接口 ConfigurableApplicationContext。
  • Spring 的抽象上下文基类 AbstractApplicationContext 已经完整实现了 ConfigurableApplicationContext 定义的所有方法,包括 addBeanFactoryPostProcessor——它内部维护了一个 List<BeanFactoryPostProcessor> 集合,方法实现就是将传入的处理器添加到这个集合中。
  • AnnotationConfigServletWebServerApplicationContext 的继承链是:AnnotationConfigServletWebServerApplicationContext → ServletWebServerApplicationContext → GenericWebApplicationContext → AbstractApplicationContext。通过继承,它自动拥有了 AbstractApplicationContext 中 addBeanFactoryPostProcessor 的实现,不需要自己重复编写。
  • 你之所以觉得“未实现”,是因为没有追踪到继承链中的上层实现——Spring 上下文类的设计大量使用继承复用核心逻辑,避免重复代码,所以子类不需要再实现那些已经被父类覆盖的接口方法。

内容的提问来源于stack exchange,提问作者husker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:30:40