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