Spring是一个开源免费的框架,容器。
Spring是一个轻量级的框架,非入侵式的
控制反转IOC,面向切面AOP
对事物的支持,对框架的支持
总结:Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)编程的框架。
Spring框架是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建,配置和管理bean的方式。
组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
核心容器
核心容器提供Spring框架的基本功能。核心容器的组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
Spring上下文
Spring上下文是一个配置文件,向Spring框架提供上下文信息。
SpringAOP
通过配置管理特性,Spring AOP模块直接将面向切面的编程功能,集成到了Spring框架中。所以很容易地使用Spring框架管理任何支持AOP的对象。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖组件,就可以将声明性事务管理集成到应用程序中。
Spring DAO
JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理不同数据库供应商抛出的错误信息。
Spring ORM
Spring框架插入了包括若干个ORM框架,从而提供了ORM的对象关系,其中包括JDO,Hibernate和iBatis SQL MAp.所有这些都遵从Spring的通用事务和DAO异常层次结构。
Spring Web模块
Web上下文块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与Jakarta Struts的集成。web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
Spring MVC框架
MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成高度可配置的,MVC容纳了大量视图技术,其中包括JSP,Velocity,Tiles,iText和POI.
IOC推导理论
我们用原来的方式写一段代码
1.创建UserDao接口
2.创建UserDao的实现类
3.创建UserService的接口
4.创建UserService的实现类
5.测试
当需求增加,UserDao的实现类增加
接着我们就要修改service实现类中的代码
如果UserDao的实现类继续增加
想要使用Oracle又要修改service实现类里面的代码,耦合性太高了。
解决方法
留出一个接口,使用set方法赋值
在使用时由用户创建需要的对象
区别:
之前所有东西都是由程序去进行控制创建,现在由我们自行控制创建对象,把主动权交给了调用者。程序不用去管怎么创建,怎么实现,它只负责提供一个接口。
IOC本质
控制反转IOC(Inversion of control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法。没有IOC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建移交给第三方。控制反转就是:获得依赖对象的方式反转了。
IOC是Spring框架的核心内容,使用多种方式完美的实现了IOC,可以使用XML配置,也可以使用注解。
Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从IOC容器中取出需要的对象。
采用XML方式配置Bean的时候,Bean的定义信息和实现分离,而采用注解的方式可以把两者合为一体,Bean的定义信息直接一注解的形式定义在实现类中,从而达到了零配置的目的。
控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,其实现放大是依赖注入(Dependency Injection)
网友评论