一,对象应用的革命
革命一(原始时代):需要怎么对象,就创建相应的对象,执行相应的功能.(这大大降低了维护性,修改时要改原码,违反开-闭原则"扩展开修改闭")
革命二(封建时代):引进了接口,实现替换原则(这样一来提高了扩展性,但是修改问题未解诀)
革命三(工业化时代):引入了工厂模式,从工厂里面取出对象。
革命四(信息化时代):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 保存在一个数组中。
--------------------------------------
分享到:
评论