一,对象应用的革命
革命一(原始时代):需要怎么对象,就创建相应的对象,执行相应的功能.(这大大降低了维护性,修改时要改原码,违反开-闭原则"扩展开修改闭")
革命二(封建时代):引进了接口,实现替换原则(这样一来提高了扩展性,但是修改问题未解诀)
革命三(工业化时代):引入了工厂模式,从工厂里面取出对象。
革命四(信息化时代):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 保存在一个数组中。
--------------------------------------
分享到:
相关推荐
深入理解java的spring-ioc的使用.docx
Spring-IoC-Learning 记录动手实现简单的Spring Ioc容器的过程,以便加深对Spring Ioc的理解
ioc容器的理解与使用
我们从一个简单的容器开始,一步步的重构,最后实现一个基本的Spring框架的雏形,为了帮助我们更加深入的理解Spring的IoC的原理和源码。 详细内容见博文: 【SSH进阶之路】一步步重构容器实现Spring的IoC——从一个...
帮助初学者深入理解Spring的好资料
简单实例理解spring核心组件-IOC容器的产生及原理、理解spring框架核心
9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 ...
spring的ioc容器详细讲解,理解springioc容器
主要介绍了java的spring-ioc的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
谈谈Spring IOC得理解,原理与实现.md
com-spring-ioc-demo:源码主要是学习Spring IOC的原理,以及对Bean的注册及控制,主要运用以下类对Spring进行扩展学习:BeanPostProcessor,BeanFactoryAware,BeanNameAware,ApplicationContextAware,FactoryBean...
这是个模拟spring ioc的学习例子,是个java工程。有助于对aop和ioc的理解
讲的非常不错的Spring书籍,特别有利于对IOC容器的理解,特别推荐哦
我们从一个简单的容器开始,一步步的重构,最后实现一个基本的Spring框架的雏形,为了帮助我们更加深入的理解Spring的IoC的原理和源码。 详细内容见博文: 【SSH进阶之路】一步步重构容器实现Spring框架——从一个...
Spring的Aop和Ioc示例代码,代码通过了调试的,没得问题.对于初学者理解和使用Spring的Aop和Ioc是够了.
自己学习vue、spring、springboot、springmvc的一些总结。 其中vue包含了本身运用、vuex、element-ui、...更像是一个敲门砖让你能在很短时间内搭建出框架内、理解各个框架的简单应用原理。让你对开发框架有个概要认识。
理解好它的关键在于我们需要回答如下四个问题:谁控制谁控制什么为何是反转哪些方面反转了在回答这四个问题之前,我们先看IOC的定义:所谓IOC,就是由SpringIOC容器来负责对象的生命周期和对象之间的关系上面这句话...
用一个小项目模拟出一个微型的spring项目,实现spring的核心功能-aop,ioc和自动注入,帮助初学者了解spring的运行原理,以后面试再也不怕碰到问spring原理的问题了
自己实现的spring ioc+mvc框架,具体流程参考的spring,可以加深对spring源码流程的理解
我们都知道,Spring框架的IOC是基于Java的反射机制实现,实现IOC,必须掌握反射的实践方法。Java反射机制是在运行状态中,对于任意类,都能够知道这个类的属性和方法;对于任何一个对象,都能够调用它的任意方法和...