对spring的理解
一、什么是spring
spring 是一个轻量级、非侵入性的容器框架,其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。
二、spring的核心思想
控制反转(IOC)和面向切面(AOP)是spring的两大核心。简而言之就是将对象创建过程的职责赋予容器,通过容器管理对象的生老病死, 将对象创建过程从编译时延期到运行时,即通过配置进行加载
拓展:
IOC:控制反转,spring通过IOC促进松耦合。某一接口具体实现类的选择控制权从调用类中移除,转交给第三方决定。
但是IOC概念难以理解,后来有人提出了DI(依赖注入)的概念来代替控制翻转,即让调用类对某一接口实现类的依赖关系由第三方(容器或协作类)注入,以移除调用类对某一接口实现类的依赖。
依赖注入的三种方式:
第一是根据属性注入 也叫set方法注入;
第二种是根据构造方法进行注入
第三种是根据注解进行注入
AOP:AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
三、Spring都有哪些产品组成?
Spring框架有七个模块组成组成,这7个模块(或组件)均可以单独存在,也可以与其它一个或多个模块联合使用,主要功能表现如下:
Spring 核心容器(Core):
提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,她是工厂模式的实现。BeanFactory使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际的应用代码程序分开。
Spring AOP:
通过配置管理特性,Spring AOP模块直接面向方面的编程功能集成到了Spring框架中,所以可以很容易的使Spring框架管理的任何对象支持 AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用
Spring AOP,不用依赖于EJB组件,就可以将声明性事务管理集成到应用程序中。
Spring ORM:
Spring框架集成了若干ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、Hibernate、iBatis和TopLink。所有这些都遵从Spring的通用事务和DAO异常层结构。
Spring DAO:
JDBC DAO抽象层提供了有意义的异常层次的结构,可用该结构来管理异常处理和不同数据供应商抛出的异常错误信息。异常层次结构简化了错误处理,并且大大的降低了需要编写的异常代码数量(例如,打开和关系连接)。
Spring DAO的面向JDBC的异常遵从通用的DAO异常层结构。
Spring WEB:
Web上下文模块建立在上下文模块(Context)的基础之上,为基于Web服务的应用程序提供了上下文的服务。所以Spring框架支持 Jakarta Struts的集成。Web模块还简化了处理多部分请求及将请求参数绑定到域对象的工作。
Spring上下文(Context):
Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化校验和调度功能。
Spring MVC:
Spring的MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳的大量视图技术,包括JSP、Velocity、Tiles、iText和 Pol