`
wu_quanyin
  • 浏览: 208266 次
  • 性别: Icon_minigender_1
  • 来自: 福建省
社区版块
存档分类
最新评论

Spring---IOC的理解一

阅读更多

一,对象应用的革命

革命一(原始时代):需要怎么对象,就创建相应的对象,执行相应的功能.(这大大降低了维护性,修改时要改原码,违反开-闭原则"扩展开修改闭")

革命二(封建时代):引进了接口,实现替换原则(这样一来提高了扩展性,但是修改问题未解诀)

革命三(工业化时代):引入了工厂模式,从工厂里面取出对象。

革命四(信息化时代):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配置文件使用。

--------------------------------------

现在我们将详细讨论这些步骤:

  1. 当初始化 Acegi 应用程序时,servlet 容器(本例中为 Apache Tomcat)创建了一个 servlet 上下文,其中保存了有关应用程序资源的信息,例如 JSP 页面和类。

  2. servlet 容器通知 ContextLoaderListener 类应用程序正在启动。

  3. ContextLoaderListener 类创建一个 Web 应用程序上下文以保存应用程序中特定于 Spring 的资源信息。借助 Spring 的 IOC 框架,您可以装载自己的自定义应用程序上下文。要创建应用程序上下文,将使用名为 ContextLoader 的上下文装载器类装载应用程序上下文。

  4. 如果应用程序不需要定义自己的应用程序上下文,则可以使用名为 XMLWebApplicationContext 的类,它是 Spring 框架的一部分并提供可处理 Spring XML 配置文件的功能。Acegi 应用程序使用的是 Spring 的 XML 配置文件,因此本文仅讨论由 XMLWebApplicationContext 类表示的应用程序上下文。在本例中,上下文装载器对 XMLWebApplicationContext 类进行实例化,后者表示您的 Acegi 应用程序的应用程序上下文。上下文装载器还在 Web 应用程序上下文中设置 servlet 上下文(于步骤 1 中创建)的引用。

  5. XMLWebApplicationContext 类对 XML 配置文件进行解析,获得关于 Java 类的信息并将信息装载到其他内部对象中。

  6. XMLWebApplicationContext 类对 XML 配置文件中指定的所有 Java 类进行实例化。XMLWebApplicationContext 类检查 XML 配置文件中经过配置的 Java bean 是否依赖其他的 Java 对象。如果是的话,XMLWebApplicationContext 类将首先对其他 bean 所依赖的 bean 进行实例化。通过这种方式,XMLWebApplicationContext 类创建了 XML 配置文件中定义的所有 bean 的实例。(注意,步骤 6 假定 XML 配置文件中所有 bean 都不要进行保护,稍后一节将介绍步骤 5 和步骤 6 之间执行的额外步骤,从而保护对此处创建的 Java bean 的访问)。

  7. XMLWebApplicationContext 类将所有 bean 保存在一个数组中。

--------------------------------------

 

 

分享到:
评论

相关推荐

    Spring-MVC+Spring-IOC+Spring-JdbcTemple

    标题“Spring-MVC+Spring-IOC+Spring-JdbcTemple”揭示了这个项目或教程是关于如何集成并使用Spring框架的三个核心模块:Spring MVC、Spring IOC(Inversion of Control,控制反转)以及Spring JDBC Template。...

    maven-spring-ioc

    理解并熟练运用Spring的IoC机制是成为一名优秀的Java开发者的关键步骤之一。在实际项目中,结合Maven进行项目构建和管理,可以更高效地组织和运行Spring应用。通过不断的实践和学习,你将能够充分利用Spring框架的...

    Spring-ioc-jar

    学习Spring IOC,你需要理解Bean的定义、作用域、依赖注入的原理和方式,以及如何通过配置文件或注解来配置Bean。同时,掌握如何利用ApplicationContext获取Bean,以及如何利用AOP和生命周期管理功能,将帮助你更好...

    Spring框架(spring-framework-5.2.6.RELEASE)的jar包

    在深入探讨这些jar包之前,我们先来理解Spring的核心概念。 Spring框架主要由以下核心模块组成: 1. **Core Container**:这是Spring的基础,包括Core和Beans模块,它们提供了依赖注入(Dependency Injection,DI)...

    spring-security-web源码所需jar包

    1. **spring-context-3.1.2.RELEASE.jar**:提供Spring的IoC(Inversion of Control)容器和AOP(Aspect Oriented Programming)支持,这是Spring框架的基础,为Spring Security提供了配置和事件处理能力。...

    spring-framework-master

    "spring-framework-master"这一压缩包包含了Spring框架的完整源码,为我们提供了深入理解这一强大工具的绝佳机会。 Spring的核心设计理念是依赖注入(Dependency Injection,简称DI),它通过反转控制(Inversion ...

    spring-framework-5.0.0.RELEASE-dist.zip

    Spring的核心模块提供了如IoC(Inversion of Control,控制反转)容器、AOP代理、事件传播、资源处理等功能。同时,它还可能包含Spring与其他技术的集成,如Spring JDBC、Spring ORM(对象关系映射)用于数据库操作...

    官方原版完整包 spring-framework-5.3.1.RELEASE.zip

    1. **spring-core**: 提供了基础的IoC(Inversion of Control)容器,它是Spring框架的核心。IoC允许开发者通过配置来管理对象的生命周期和依赖关系,使得代码更加松耦合。 2. **spring-beans**: 支持Bean工厂和XML...

    spring-framework-1.0-with-dependencies.zip

    1. **spring-beans**:这是Spring的核心模块,实现了IoC容器,负责管理对象的生命周期和依赖关系。 2. **spring-context**:扩展了spring-beans,引入了ApplicationContext接口,提供了一种更高级的容器,可以处理...

    Java-Spring-SpringIoC容器-SpringIoC的学习

    在Java Spring框架中,Spring IoC(Inversion of Control,控制反转)是核心特性之一,它使得应用程序的组件之间的依赖关系不再由代码直接管理,而是交由Spring IoC容器负责。这种设计模式降低了代码间的耦合,提高...

    Spring----IOC实现

    1. **IoC容器**:Spring的IoC容器是实现IoC的核心。它负责读取配置文件(XML或Java注解),创建和初始化对象,并管理它们之间的依赖关系。容器通过反射机制来实例化对象,并通过setter方法或构造函数注入依赖。 2. ...

    Spring - Annotation 自动匹配注入IOC

    在Spring框架中,注解(Annotation)自动匹配注入IoC(Inversion of Control,控制反转)是一种关键特性,它极大地简化了Java应用的配置管理。本文将深入探讨这一主题,帮助开发者更好地理解和利用这一功能。 首先...

    spring-5.3.14-dist.zip(spring-framework-5.3.14)

    1. 利用Spring Boot简化配置:Spring Boot是基于Spring Framework构建微服务应用的快速启动器,可以极大地减少常规配置工作。 2. 响应式编程:借助Reactor库和WebFlux,可以实现非阻塞、高并发的Web应用。 3. AOP与...

    官方完整包 spring-framework-5.2.15.RELEASE-dist.zip

    1. **Spring Framework 5.2.15 版本**:这是一个重要的维护版本,可能包含对之前版本的错误修复、性能优化和新特性的添加。5.2.x系列是Spring 5的一个稳定分支,对于开发者来说,选择稳定版本可以确保项目的长期支持...

    spring4--1.入门及ioc

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力而著名。在本教程"spring4--1.入门及ioc"中,我们将...

    spring-demo02-IOC-DI案例.zip

    总之,"spring-demo02-IOC-DI案例"是一个很好的实践平台,帮助开发者深入理解并掌握Spring框架的核心特性,提高代码的可维护性和可扩展性。通过研究和实践这个案例,你将能够更好地应用这些知识到实际的项目开发中。

    官方原版源码spring-framework-5.2.3.RELEASE.zip

    这个官方原版源码包为我们提供了一窥Spring内核的机会,让我们能够深入理解其工作原理,提升我们的开发技能。 首先,我们要了解Spring Framework的基本架构。Spring的核心在于IoC(Inversion of Control)和AOP...

    官方原版源码spring-framework-5.1.4.RELEASE.zip

    例如,关于IoC(Inversion of Control,控制反转)的实现,Spring使用了XML配置或注解来定义bean的依赖关系,通过反射机制动态加载和管理bean。另外,AOP模块实现了切面编程,允许我们定义横切关注点,如日志、事务...

    spring.jar spring-webmvc-struts.jar spring-webmvc.jar

    这个库可能包含了一些桥接代码,帮助开发者将Spring的IoC(Inversion of Control,控制反转)和AOP功能与Struts的MVC架构结合在一起,使得在基于Struts的项目中可以利用Spring的优点。 "spring-webmvc.jar"则是...

    Spring-IOC实现

    - 虽然不是IOC直接的一部分,但AOP是Spring框架的另一个重要特性,常与IOC一起使用。它允许我们定义横切关注点,如日志、事务管理等,以解耦业务逻辑。 10. **测试支持** - Spring提供了测试支持,如@Test注解的...

Global site tag (gtag.js) - Google Analytics