二十3、Spring框架的相关知识点总结

一、Spring的优势:

  1.一、Spring在大小和透明性方面是轻量级的,Spring框架大约只有2MB大小。web

  1.二、控制反转(IOC):使用控制反转技术实现了低耦合,依赖注入(DI)到对象,而不是建立或者寻找依赖的对象。spring

  1.三、面向切面编程(AOP):把应用的核心业务逻辑和周边业务(切面业务)分开进行。数据库

  1.四、容器:Spring包含并管理应用程序对象的配置和生命周期。(IOC容器负责建立对象,经过依赖注入管理对象,整合对象,配置对象以及管理对象的生命周期)编程

  1.五、MVC框架:SpringMVC很好的取代了一些web框架。安全

  1.六、事务管理:Spring对本地业务到全局业务(JAT)提供了统一的事务管理接口。session

  1.七、异常处理:Spring提供了一个方便的API将特定的异常(数据库链接异常JDBC,Hibernate等抛出的)转化为一致性的,Unchecked异常。框架

二、核心容器BeanFactory和ApplicationContext

提供了Spring框架的基本功能。BeanFactory是Spring应用核心,可是经常使用的是ApplicationContext应用上下文。BeanFactory是基于工厂模式的一种实现。经过使用控制反转(IOC)应用的配置和依赖注入将实际的应用代码分离开发。性能

  2.一、应用上下文ApplicationContext的实现:prototype

    2.1.一、FileSystemXmlApplicationContext:容器加载XML文件中的beans的定义,xml中bean配置文件的完整路径  必须传递给这个构造器。FileSystemXmlApplicationContext:容器也能够加载XML文件中beans的定义,可是须要正确的  CLASSPATH路径。线程

    2.1.二、WebXmlApplicationContext:架子啊xml文件,这些文件是定义了web应用中的beans

  2.2.BeanFactory和ApplicationContext的区别:

    2.2.1:ApplicationContext:提供了一种解决文档信息的方法,一种加载文件资源的方式,还能够监听beans发送消息,以及容器中beans中的操做。这些必须经过BeanFactory工厂的变成方式处理的操做,能够在ApplicationContext中以声明的方式处理。ApplicationContext实现了MessageSource,这个接口用于获取本地消息。

三、AOP

AOP模块:是用来开发Spring应用程序中的切面业务部分。好比性能统计,日志分析等。

四、抽象JDBC和DAO模块

使用抽象JDBC和DAO模块保证了数据库链接代码的简洁简单,同时也避免了因为未能关闭数据库资源引发的问题。

五、对象关系映射(ORM)模块

Spring经过提供ORM模块在JDBC的基础上支持对象关系映射的框架,好比Hibernate,JDO,MyBatis等。Spring的事务管理能够同时只是以上某种框架和JDBC。

六、依赖注入(DI)

依赖注入是控制反转(IOC)一个层面的解释。就是你不用建立对象而是只须要描述一下如何建立他们,不须要经过代码直接将Bean组件和Service服务链接在一块,而是经过配置文件说明哪些Bean组件须要什么服务,以后IOC容器负责衔接。

依赖注入的方式有三种:

  6.一、构造器依赖注入:经过构造器依赖注入在容器触发构造器的时候完成,这个构造器有一系列的参数,每一个参数表明须要注入的对象。

  6.二、Setter方法依赖注入:首先容器触发一个无参构造方法来实例化对象,以后容器调用bean中的Setter方法完成Setter方法依赖注入。

  6.三、属性注入:经过在配置文件中,直接对属性的值进行注入。

最好的选择是使用构造器参数实现强制依赖注入,使用Setter方法实现可选的依赖注入。

七、Spring Beans

Spring Beans是构成Spring应用核心的JAVA对象。这些对象由IOC容器实例化,组装,管理。这些对象经过容器中配置的元数据建立,使用XML文件中定义的建立。

Spring中建立的bean都是单例的,bean标签中有一个属性是singleton,若是为true,说明这个bean是单例的,若是为false,则说明这个bean是原型prototype的bean。singleton属性默认是true。能够认为spring框架中所由的bean都是默认单例的bean。

八、Spring中支持bean的做用域

  8.一、singleton:单例方式存在

  8.二、prototype:原型方式存在,一个bean能够定义多个实例

  8.三、request:每次HTTP请求都会建立一个新的bean,做用域只能在WebApplicationContext上下文环境中

  8.四、session:一个HttPSession定义一个bean,做用域只能在WebApplicationContext上下文环境中

  8.五、globalSession:同一个全局HttpSession定义一个bean,做用域只能在WebApplicationContext上下文环境中。

注:bean默认的scope属性是singleton,并且Spring框架中的单例bean不是线程安全的。

WebApplicationContext:继承了ApplicationContext,并添加了一些web应用程序须要的功能,和普通的ApplicationContext不一样,它能够用来处理主题样式,也能够找到相应的servlet。

九、在Spring中注入Java集合类

Spring提供有四种结合配置元素:

  9.一、list元素用来注入一系列的值,容许有相同的值

  9.二、set元素用来注入一系列的值,不容许有重复的值

  9.三、map用来注入一组键值对,键值能够是任何类型的

  9.四、props能够用来注入一组键值对,只不过键值都是String类型的

十、JdbcTemplate解释:

JdbcTemplate提供了许多方法,为数据库交互提供了方便。执行写好的SQL语句,提供自定义的数据库错误处理功能。

十一、Spring能够经过两种方式访问Hibernate

  11.一、使用HibernateTemplate的反转控制以及回调方法

  11.二、继承HibernateDAOSupport,并申请一个AOP拦截器结点。

相关文章
相关标签/搜索