一,对象应用的革命
革命一(原始时代):需要怎么对象,就创建相应的对象,执行相应的功能.(这大大降低了维护性,修改时要改原码,违反开-闭原则"扩展开修改闭")
革命二(封建时代):引进了接口,实现替换原则(这样一来提高了扩展性,但是修改问题未解诀)
革命三(工业化时代):引入了工厂模式,从工厂里面取出对象。
革命四(信息化时代):Spring的引入(Don't call me,i will call you),系统将自动调用。根据读取配置文件,无需要修改源码.使"开-闭"原则得到了运用。
二,JavaBean
定义->创建->使用->销毁
销毁:但scope="single"时可用配置的 destroy-method=""进行销毁,而prototype时是交给Bean管理,不可以使用该方法
四,BeanFactory 与ApplicationContext的区别
BeanFactory:只有在调用getBean()时,相应的类才会被初始化
ApplicationContext:
1,org.springframework.web.context.ContextLoaderListener
2,org.springframework.web.context.ContextLoaderServlet
只要在web.xml启动时,所有的应用实例都会被初始化。
XmlWebApplicationContext供ContextLoaderListener,ContextLoaderServlet内部装载spring配置文件使用。
--------------------------------------
现在我们将详细讨论这些步骤:
- 当初始化 Acegi 应用程序时,servlet 容器(本例中为 Apache Tomcat)创建了一个 servlet 上下文,其中保存了有关应用程序资源的信息,例如 JSP 页面和类。
- servlet 容器通知
ContextLoaderListener
类应用程序正在启动。
-
ContextLoaderListener
类创建一个 Web 应用程序上下文以保存应用程序中特定于 Spring 的资源信息。借助 Spring 的 IOC 框架,您可以装载自己的自定义应用程序上下文。要创建应用程序上下文,将使用名为 ContextLoader
的上下文装载器类装载应用程序上下文。
- 如果应用程序不需要定义自己的应用程序上下文,则可以使用名为
XMLWebApplicationContext
的类,它是 Spring 框架的一部分并提供可处理 Spring XML 配置文件的功能。Acegi 应用程序使用的是 Spring 的 XML 配置文件,因此本文仅讨论由 XMLWebApplicationContext
类表示的应用程序上下文。在本例中,上下文装载器对 XMLWebApplicationContext
类进行实例化,后者表示您的 Acegi 应用程序的应用程序上下文。上下文装载器还在 Web 应用程序上下文中设置 servlet 上下文(于步骤 1 中创建)的引用。
-
XMLWebApplicationContext
类对 XML 配置文件进行解析,获得关于 Java 类的信息并将信息装载到其他内部对象中。
-
XMLWebApplicationContext
类对 XML 配置文件中指定的所有 Java 类进行实例化。XMLWebApplicationContext
类检查 XML 配置文件中经过配置的 Java bean 是否依赖其他的 Java 对象。如果是的话,XMLWebApplicationContext
类将首先对其他 bean 所依赖的 bean 进行实例化。通过这种方式,XMLWebApplicationContext
类创建了 XML 配置文件中定义的所有 bean 的实例。(注意,步骤 6 假定 XML 配置文件中所有 bean 都不要进行保护,稍后一节将介绍步骤 5 和步骤 6 之间执行的额外步骤,从而保护对此处创建的 Java bean 的访问)。
-
XMLWebApplicationContext
类将所有 bean 保存在一个数组中。
--------------------------------------
分享到:
相关推荐
标题“Spring-MVC+Spring-IOC+Spring-JdbcTemple”揭示了这个项目或教程是关于如何集成并使用Spring框架的三个核心模块:Spring MVC、Spring IOC(Inversion of Control,控制反转)以及Spring JDBC Template。...
理解并熟练运用Spring的IoC机制是成为一名优秀的Java开发者的关键步骤之一。在实际项目中,结合Maven进行项目构建和管理,可以更高效地组织和运行Spring应用。通过不断的实践和学习,你将能够充分利用Spring框架的...
学习Spring IOC,你需要理解Bean的定义、作用域、依赖注入的原理和方式,以及如何通过配置文件或注解来配置Bean。同时,掌握如何利用ApplicationContext获取Bean,以及如何利用AOP和生命周期管理功能,将帮助你更好...
在深入探讨这些jar包之前,我们先来理解Spring的核心概念。 Spring框架主要由以下核心模块组成: 1. **Core Container**:这是Spring的基础,包括Core和Beans模块,它们提供了依赖注入(Dependency Injection,DI)...
1. **spring-context-3.1.2.RELEASE.jar**:提供Spring的IoC(Inversion of Control)容器和AOP(Aspect Oriented Programming)支持,这是Spring框架的基础,为Spring Security提供了配置和事件处理能力。...
"spring-framework-master"这一压缩包包含了Spring框架的完整源码,为我们提供了深入理解这一强大工具的绝佳机会。 Spring的核心设计理念是依赖注入(Dependency Injection,简称DI),它通过反转控制(Inversion ...
Spring的核心模块提供了如IoC(Inversion of Control,控制反转)容器、AOP代理、事件传播、资源处理等功能。同时,它还可能包含Spring与其他技术的集成,如Spring JDBC、Spring ORM(对象关系映射)用于数据库操作...
1. **spring-core**: 提供了基础的IoC(Inversion of Control)容器,它是Spring框架的核心。IoC允许开发者通过配置来管理对象的生命周期和依赖关系,使得代码更加松耦合。 2. **spring-beans**: 支持Bean工厂和XML...
1. **spring-beans**:这是Spring的核心模块,实现了IoC容器,负责管理对象的生命周期和依赖关系。 2. **spring-context**:扩展了spring-beans,引入了ApplicationContext接口,提供了一种更高级的容器,可以处理...
在Java Spring框架中,Spring IoC(Inversion of Control,控制反转)是核心特性之一,它使得应用程序的组件之间的依赖关系不再由代码直接管理,而是交由Spring IoC容器负责。这种设计模式降低了代码间的耦合,提高...
1. **IoC容器**:Spring的IoC容器是实现IoC的核心。它负责读取配置文件(XML或Java注解),创建和初始化对象,并管理它们之间的依赖关系。容器通过反射机制来实例化对象,并通过setter方法或构造函数注入依赖。 2. ...
在Spring框架中,注解(Annotation)自动匹配注入IoC(Inversion of Control,控制反转)是一种关键特性,它极大地简化了Java应用的配置管理。本文将深入探讨这一主题,帮助开发者更好地理解和利用这一功能。 首先...
1. 利用Spring Boot简化配置:Spring Boot是基于Spring Framework构建微服务应用的快速启动器,可以极大地减少常规配置工作。 2. 响应式编程:借助Reactor库和WebFlux,可以实现非阻塞、高并发的Web应用。 3. AOP与...
1. **Spring Framework 5.2.15 版本**:这是一个重要的维护版本,可能包含对之前版本的错误修复、性能优化和新特性的添加。5.2.x系列是Spring 5的一个稳定分支,对于开发者来说,选择稳定版本可以确保项目的长期支持...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力而著名。在本教程"spring4--1.入门及ioc"中,我们将...
总之,"spring-demo02-IOC-DI案例"是一个很好的实践平台,帮助开发者深入理解并掌握Spring框架的核心特性,提高代码的可维护性和可扩展性。通过研究和实践这个案例,你将能够更好地应用这些知识到实际的项目开发中。
这个官方原版源码包为我们提供了一窥Spring内核的机会,让我们能够深入理解其工作原理,提升我们的开发技能。 首先,我们要了解Spring Framework的基本架构。Spring的核心在于IoC(Inversion of Control)和AOP...
例如,关于IoC(Inversion of Control,控制反转)的实现,Spring使用了XML配置或注解来定义bean的依赖关系,通过反射机制动态加载和管理bean。另外,AOP模块实现了切面编程,允许我们定义横切关注点,如日志、事务...
这个库可能包含了一些桥接代码,帮助开发者将Spring的IoC(Inversion of Control,控制反转)和AOP功能与Struts的MVC架构结合在一起,使得在基于Struts的项目中可以利用Spring的优点。 "spring-webmvc.jar"则是...
- 虽然不是IOC直接的一部分,但AOP是Spring框架的另一个重要特性,常与IOC一起使用。它允许我们定义横切关注点,如日志、事务管理等,以解耦业务逻辑。 10. **测试支持** - Spring提供了测试支持,如@Test注解的...