Spring IoC
- 格式:ppt
- 大小:1.91 MB
- 文档页数:33


IOC概述1.IOC(控制反转:I nverse O f C ontrol)概念:是SPRING容器的内核,AOP、声明式事务等功能在此基础上开花结果。
它涉及代码解耦、设计模式、代码优化等问题。
2.IOC包括两个内容,一个是控制,一个是反转,即是某一接口具体实现类的选择控制权从调用类中移除,转交给第三方裁决。
3.DI(依赖注入:Dependency Injection)的概念用以代替IoC,即将调用类对接口实现类的依赖关系由第三方(容器或协作类)注入,以移除调用类对接口实现类的依赖。
4.注入方法上看,主要可以划分为三种类型:构造函数注入、属性注入和接口注入。
a)接口注入将调用类所有注入的方法抽取到一个接口中,调用类实现这一接口规定的注入方法。
5.通过容器完成依赖关系的建立所谓媒体海选和中介机构在程序领域即是一个第三方容器,它帮助我们完成类的初始化和装配工作,让我们从这些底层的实现类实例化、依赖关系装配等工作中脱离出来,专注于更有意义的业务逻辑开发工作。
<beans><bean id=”geli” class=”com.property.LiuDeHua”/><bean id=”moAttack” class=”com.property.MoAttack”><Property name=”geli” ref=”geli”/></bean></beans>Java基础知识Java语言允许通过程序化的方式间接对类进行操作,类文件由类装载器装载后,要JVM 中将形成一份描述类的对象,通过该对象可以获知类的结构信息,如构造函数、属性和方法等,并分别通过JAVA实例对这些信息进行描述。
这些为程序化方式操作类文件提供了一个途径。
BeanFactory 和ApplicationContextSpring通过一个配置文件描述bean及bean之间的依赖关系,利用java语言的反射功能融会贯通bean并建立bean之间的依赖关系。
spring作用Spring是一个开源的企业级Java应用程序开发框架,它提供了一套全面的基础架构,以帮助开发者更容易地构建可伸缩的Web应用程序。
Spring的主要作用如下:1. IoC(控制反转)容器:Spring的核心是IoC容器,它负责对象的创建、销毁和管理。
传统的开发方式中,对象的创建和销毁都是由开发者手动管理的,而通过使用Spring的IoC容器,对象的声明周期完全交由Spring管理,开发者只需要定义对象的配置信息,Spring会根据配置信息自动创建对象,并在不需要时进行销毁,大大减少了开发工作量。
2. AOP(面向切面编程):Spring通过AOP模块提供了对切面编程的支持,可以将横切关注点(如日志记录、事务管理等)从核心业务逻辑中分离出来,提高代码的可维护性和重用性。
通过使用Spring的AOP功能,开发者可以自定义切点,将横切逻辑织入到核心逻辑中。
3. 数据访问抽象:Spring提供了对各种数据访问技术的抽象,包括JDBC、ORM框架(如Hibernate、MyBatis)和NoSQL数据库。
通过Spring的数据访问抽象,开发者可以通过配置简单地切换不同的数据访问技术,不需要修改业务逻辑代码,提高了代码的灵活性和可扩展性。
4. Web应用开发:Spring提供了一套完整的Web应用开发框架,包括MVC框架、RESTful Web Service支持和Web容器集成。
通过Spring MVC框架,开发者可以快速开发出高性能、易扩展的Web应用程序,通过RESTful Web Service支持,开发者可以基于HTTP协议构建出面向资源的Web服务,并进行跨平台的数据交互。
5. 安全性:Spring提供了一套完善的安全性框架,包括身份验证、授权和数据加密等功能。
开发者可以通过配置简单地集成安全性功能到应用程序中,保护数据的安全性和完整性。
6. 事务管理:Spring提供了对事务管理的支持,可以轻松地管理分布式事务,确保数据的一致性。
IOC是什么IOC是什么?ioc 即控制反转。
英文名:Inverse of Control控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。
控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。
依赖注入应用比较广泛。
IoC 亦称为“依赖倒置原理”("Dependency Inversion Principle")。
差不多所有框架都使用了“倒置注入(Fowler 2004)技巧,这可说是IoC原理的一项应用。
SmallT alk,C++, Java 或各种.NET 语言等面向对象程序语言的程序员已使用了这些原理。
控制反转是Spring框架的核心。
应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。
也可以说,依赖被注入到对象中。
所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。
折叠编辑本段主要特征IoC就是IoC,不是什么技术,与GoF一样,是一种设计模式。
Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执行:AInterface a = new AInterfaceImp(); 这样一来,耦合关系就产生了,如:Class A{AInterface a;A(){}aMethod(){a = new AInterfaceImp();}}ClassA与AInterfaceImp就是依赖关系,如果想使用AInterface 的另外一个实现就需要更改代码了。
当然我们可以建立一个Factory来根据条件生成想要的AInterface的具体实现,即:InterfaceImplFactory{AInterface create(Object condition){if(condition = condA){return new AInterfaceImpA();}elseif(condition = condB){return new AInterfaceImpB();}else{return new AInterfaceImp();}}}表面上是在一定程度上缓解了以上问题,但实质上这种代码耦合并没有改变。
ioc流程IOC,即控制反转(Inversion of Control),是一种由Spring框架引入,并广泛应用于Java开发中的设计模式。
它通过将对象的创建、依赖注入和生命周期管理等控制权转移到容器中,实现了代码的松耦合和模块间的解耦。
下面将详细介绍IOC的流程。
1. 配置文件的加载: IOC的流程首先是加载配置文件,Spring框架使用XML、注解或Java配置等方式来定义配置文件,其中包含了需要被管理的Bean的定义、相互依赖关系的配置以及其他配置项。
2. 容器的初始化: 加载完成配置文件后,Spring容器会初始化,创建一个IOC容器对象,并读取配置文件中的Bean定义信息,并将其转换为容器内的Bean对象。
3. Bean的实例化: IOC容器根据配置文件中的Bean定义信息,通过Java的反射机制或其他方式,实例化被管理的Bean对象。
根据配置的方式的不同,可以有三种实例化方式:构造器实例化、静态工厂方法实例化、实例工厂方法实例化。
4. 依赖注入: 依赖注入是IOC的核心概念,也是实现解耦的关键。
在依赖注入过程中,容器会根据配置文件中的依赖关系,将实例化好的Bean注入到其他Bean中。
依赖注入有三种方式:构造函数注入、Setter方法注入和接口注入。
5. Bean的生命周期管理: IOC容器会在Bean的实例化过程中,对其生命周期的管理。
生命周期包括Bean的初始化、使用和销毁三个阶段。
在Bean实例化后,容器会调用Bean的初始化方法,进行一些预处理操作。
在Bean的使用过程中,容器会监听Bean的特定事件,并执行相应的操作。
在容器关闭时,会调用Bean的销毁方法,进行一些资源的释放等操作。
6. 容器的关闭: 当容器使用完毕后,需要将其关闭。
在容器关闭时,会释放资源、销毁Bean实例等操作。
通常,我们会调用Spring提供的关闭方法,显式地关闭容器。
总结起来,IOC的流程包含了配置文件的加载、容器的初始化、Bean的实例化、依赖注入、Bean的生命周期管理和容器的关闭等过程。