ContextLoaderListener 为 Web 应用程序创建一个根 Web 应用程序上下文,并将其放入 ServletContext 中。此上下文可用于加载和卸载 Spring 管理的 Bean,无论控制器层中使用什么技术(Struts 或 Spring MVC)。DispatcherServlet 创建自己的 WebApplicationContext,并且此上下文管理处理程序/控制器/视图解析器。序号关键DispatcherServletContextLoaderListener1基本DispatcherServlet 的任务是将请求发送到特定的 Spring MVC 控制器ContextLoaderListener 读取 Spring 配置文件(在 web.xml 中使用 contextConfigLocation 指定的值),对其进行解析并加载该配置文件中定义的单例 Bean。因此,我们使用 ContextLoaderListener 初始化 Web 应用程序 ... 阅读更多
工厂和依赖注入都是设计模式,可用于增强软件组件之间的松耦合能力。工厂设计模式用于创建对象。但是,对象的注入和生命周期管理应由程序员在应用程序中处理。无法在一个地方配置所有内容。因此,程序员需要在需要的地方调用对象创建逻辑,这最终会阻碍松耦合能力。在 DI 设计模式中,对象的创建、实例的注入和实例的生命周期管理可以在代码外部处理。在 Spring 中,... 阅读更多
控制反转是一种设计原则,有助于反转对象创建的控制。根据 Martin Fowler 撰写的论文,控制反转是程序控制流反转的原则:程序员不再控制程序的流程,而是外部资源(框架、服务、其他组件)控制程序的流程。就像我们将某些东西插入其他东西一样。他举例说明了 EJB 2.0。依赖注入是一种实现 IOC 原则的设计模式。DI 提供对象需要的对象。假设类 X 依赖于 Y。所以... 阅读更多