一、Ioc-inversion of controller,控制反转。它是一种将你所设计的对象交由容器控制管理,以替换原有的在对象内部直接new。
1)Ioc容器管理对象:Ioc是有专门的容器负责管理创建对象。
2)容器帮助我创建管理对象并查找依赖子对象,在我们需要对象时候,只需要做简单的配置,就可以直接使用。替换了原来的:需要使用对象时,主动去获取依赖,生成实例。
在此过程中,Ioc容器帮助用户实现了创建用户类,生成并且注入依赖对象,并管理这些对象的生命周期。
概念:
Ioc实现了由传统程序需要我们在类中主动创建对象并引入依赖,导致类间耦合,到Ioc类创建、查找并注入依赖的容器管理,用户不在需要关注这些依赖而直接引用。
它实现了由应用程序主动获取资源到容器实现已经创建好资源,应用程序直接使用的过程。即inversion反转。
DI:dependancy injection,依赖注入,它是组件之间的依赖关系由容器在运行期间,动态的将依赖关系注入到组件中。提高组件重用率,搭建了灵活可复用的平台,只需要简单的配置,就可以实现业务逻辑,无需关注资源的由来和实现。DI是Ioc的另一种角度上相对应概念,明确描述了被注入对象依赖IOC容器配置对象。
Ioc是有依赖注入个哦功能呢的容器,负责实例化、定位查找、配置应用的对象实例和创建对象间的依赖。程序无需直接new对象,通过Ioc完成。
Spring Ioc:在spring中由接口BeanFactory实现。
spring配置文件:Spring IoC容器通过读取配置文件中的配置元数据,通过元数据对应用中的各个对象进行实例化及装配。一般使用基于xml配置文件进行配置元数据,而且Spring与配置文件完全解耦的,可以使用其他任何可能的方式进行配置元数据,比如注解、基于java文件的、基于属性文件的配置都可以。
Bean:
bean:豆子,由Ioc管理的在应用中实用的对象实例。它是完全由spring容器初始化、装配和管理的对象,与java pojo类相似。
Ioc:在spring中的实现是org.springframework.beans下的BeanFactory接口实现基本功能,org.springframework.context下ApplicationContext接口扩展改BeanFactory接口,并且提供了Spring aop、国际化、时间传播以及提供不同层次的context实现(WebApplicationContexst)。ApplicationContext完全继承BeanFactory。
1.XmlBeanFactory:BeanFactory的实现,从classpath或文件中读取资源:
BeanFactory bf = new XmlBeanFactory(new FileSystemResource(new File("classpath:app.xml")));
2.ClassPathXmlApplicationContext:与XmlBeanFactory,从classpath获取配置文件。
ApplicationContext接口:
• Object getBean(String name) 根据名称返回一个Bean,客户端需要自己进行类型转换;
• T getBean(String name, Class<T> requiredType) 根据名称和指定的类型返回一个Bean,客户端无需自己进行类型转换,如果类型转换失败,容器抛出异常;
• T getBean(Class<T> requiredType) 根据指定的类型返回一个Bean,客户端无需自己进行类型转换,如果没有或有多于一个Bean存在容器将抛出异常;
• Map<String, T> getBeansOfType(Class<T> type) 根据指定的类型返回一个键值为名字和值为Bean对象的 Map,如果没有Bean对象存在则返回空的Map。
-----------------------------------------------------------------------------------------------------------
二、
1.xml配置文件元数据。
2.Ioc容器解析:IoC容器的Bean Reader读取并解析配置文件,生成BeanDefinition配置元数据对象,IoC容器根据BeanDefinition进行实例化、配置及组装Bean。
Xml配置结构:
<beans>
<bean id='' name='' alias='' class=''></bean>
<bean>...</bean>
</beans>
1、<bean>标签主要用来进行Bean定义;
2、alias用于定义Bean别名;
Bean配置:
●全限定类名(FQN):具体Bean的实现类;
●Bean行为:这些定义作用域(单例、原型创建)、是否惰性初始化及生命周期等;
●Bean创建方式:说明是通过构造器还是工厂方法创建Bean;
●Bean之间关系:即对其他bean的引用,也就是依赖关系定义,这些引用bean也可以称之为同事bean 或依赖bean,也就是依赖注入。
Bean定义只有“全限定类名”在当使用构造器或静态工厂方法进行实例化bean时是必须的,其他都是可选的定义。
每个Bean可以有一个或多个id(或称之为标识符或名字),在这里我们把第一个id称为“标识符”,其余id叫做“别名”;这些id在IoC容器中必须唯一。Bean命名约定:Bean的命名遵循XML命名规范,但最好符合Java命名规范,由“字母、数字、下划线组成“,而且应该养成一个良好的命名习惯, 比如采用“驼峰式”,即第一个单词首字母开始,从第二个单词开始首字母大写开始。
Bean创建:
1.构造器创建(clas类中必须有空构造器)
2.静态工厂:指定factory-method实例化方法参数。
相关推荐
**Spring Ioc 实现原理详解** Spring Ioc(Inversion of Control,控制反转)是Spring框架的核心特性之一,它改变了传统应用程序中对象的创建和管理方式。在传统的软件设计中,对象的创建和依赖关系的维护通常由...
spring Ioc容器配置 IOC容器数据源配置 <!-- 配置数据源 --> destroy-method="close"> <value>org.gjt.mm.mysql.Driver <value>jdbc:mysql://localhost:3306/demo <value>root ...
Spring 框架是Java开发中的核心框架,它主要由两个关键部分组成:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。这两个概念是Spring框架的核心特性,极大地简化了企业...
SpringIOC是Spring Framework中的核心组件之一,负责管理应用程序中的对象、依赖关系和生命周期。 在 Spring IOC 中,对象的创建和管理是通过 BeanFactory 或 ApplicationContext 实现的。BeanFactory 是 Spring ...
标题 "Spring IOC" 描述了我们讨论的核心主题——Spring 框架中的依赖注入(Inversion of Control,简称 IOC)机制。Spring 是一个广泛应用的 Java 应用开发框架,其核心特性之一就是IOC,它极大地简化了软件组件...
Spring IoC 加载流程讲解 在本节中,我们将对 Spring IoC 加载流程进行详细的讲解,并探讨 IoC 思想和依赖倒置原则的应用。 IoC 控制反转 IoC(Inversion of Control)是指在软件设计中,将对象实例的控制权从...
Spring IOC,全称Inversion of Control,即“控制反转”,是Spring框架的核心特性之一。在传统的Java应用程序中,对象的创建和管理通常由开发者自己控制。而在Spring IOC中,这种控制权被反转,对象的创建、初始化、...
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性之一,它允许开发者将对象的创建和管理交给Spring容器来处理,从而使代码更加松耦合,更易于测试和维护。下面将详细介绍Spring IOC的基本概念、...
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它极大地简化了Java应用的开发,通过将对象的创建和管理交由Spring容器来处理,开发者可以更专注于业务逻辑。下面,我们将深入探讨Spring IOC...
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它将对象的创建和管理权交由Spring容器来负责,从而实现了依赖倒置,增强了代码的可测试性和可维护性。DI(Dependency Injection,依赖注入)...
Spring IoC,全称为Inversion of Control,即控制反转,是Spring框架的核心特性之一。它是一种设计模式,改变了传统程序中的对象创建和管理的方式,将对象的生命周期管理交由Spring容器来负责,使得代码更加解耦,...
Spring IOC,即Spring控制反转,是Spring框架的核心特性之一。控制反转(Inversion of Control,简称IoC)是一种设计原则,用于减少代码间的耦合,提高系统模块化和代码的重用性。在Spring框架中,IOC具体体现在对...
标题《Spring IoC源码深度剖析开源架构源码2021.pdf》和描述《Spring IoC源码深度剖析开源架构源码2021.pdf》表明该文档主要面向于分析Spring框架中控制反转(IoC)容器的核心源码,解析和理解其内部的工作机制及...
Java反射和Spring IOC是Java开发中的两个重要概念,它们在构建灵活、可扩展的应用程序时起着关键作用。本文将深入探讨这两个主题,并提供相关的学习资源。 首先,让我们了解一下Java反射。Java反射机制是Java语言的...
### Spring IoC与注解依赖注入详解 #### 一、Spring框架简介 Spring框架是由Rod Johnson创建的一个开源项目,最初是为了解决企业级应用开发中的复杂性问题而诞生的。Spring框架的核心特性包括IoC(Inversion of ...
在本资源"手写spring ioc(三) 资源org.zip"中,我们主要关注的是如何实现一个简易版的Spring IOC(Inversion of Control)容器,它涵盖了ioc的基本功能,包括解决循环依赖、使用构造器注入以及自动注入等核心特性。...
在Spring框架中,IOC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理职责从应用代码中分离出来,交由框架来处理。这样,开发者可以更专注于业务逻辑,而不是对象的生命周期。AOP(Aspect ...
springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC...
spring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demo...
**Spring 的 IoC 容器** IoC(Inversion of Control)即控制反转,是 Spring 的核心特性之一。在传统的编程模式中,对象之间存在依赖关系,程序员需要手动创建和管理这些对象。而在 Spring 中,IoC 容器负责管理和...