Spring_IoC,Spring框架中IoC介绍
- 格式:ppt
- 大小:347.00 KB
- 文档页数:15


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?spring是分层的avaSE以及javaEE应⽤于全栈的轻量级开源框架,以IOC(Inverse Of Control)控制反转,AOP(Aspect Oriented Programing)⾯向切⾯编程为核⼼,提供表现层SpringMVC以及持久层Spring,并且可整合多种其他开源框架。
spring的本质是管理对象,包括创建对象及维护对象之间的关系。
spring的优点1)⽅便解耦,简化开发通过spring的IOC可将对象的创建,以及对象之间的依赖都交由spring容器来进⾏管理,这样可以降低程序之间的耦合。
并且开发时也只需关注上层的应⽤,不⽤再多关注底层的应⽤。
2)AOP编程的⽀持spring⽀持AOP⾯向切⾯编程,许多OOP⾯向对象编程不能或很难实现的功能,都可通过AOP轻松实现。
3)声明式事务的⽀持可以将我们从单调烦闷的事务管理中解放出来,通过声明式事务的⽅式,可以灵活的进⾏事务管理,进⽽提⾼开发的质量和效率。
4)⽅便程序的测试可以⽤⾮容器依赖的编程⽅式进⾏⼏乎所有的测试⼯作,测试不再是昂贵的操作,⽽是随⼿可做的事情。
5)⽅便集成各种优秀的框架Spring可以降低各种框架的使⽤难度,提供了对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的直接⽀持。
6)降低javaEE的API的使⽤难度Spring对 JavaEE API(如 JDBC、JavaMail、远程调⽤等)进⾏了薄薄的封装层,使这些API 的使⽤难度⼤为降低。
7)spring框架的源码是经典学习的案例Spring的源代码设计精妙、结构清晰、匠⼼独⽤,处处体现着⼤师对Java设计模式灵活运⽤以及对 Java技术的⾼深造诣。
它的源代码⽆疑是Java技术的最佳实践的范例。
通过Spring进⾏解耦什么叫程序的耦合?在程序中,对象之间相互依赖,相互传递数据,这种相互关联的程度越⾼,程序的耦合度就越⾼。
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();}}}表面上是在一定程度上缓解了以上问题,但实质上这种代码耦合并没有改变。