1、Spring的优点:

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

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

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

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

  1.5、MVC框架:SpringMVC很好的取代了一些web框架。

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

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

2、核心容器BeanFactory和ApplicationContext

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

  2.1、应用上下文ApplicationContext的实现:

    2.1.1、FileSystemXmlApplicationContext:容器加载XML文件中的beans的定义,xml中bean配置文件的完整路径  必须传递给这个构造器。FileSystemXmlApplicationContext:容器也可以加载XML文件中beans的定义,但是需要正确的  CLASSPATH路径。

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

  2.2.BeanFactory和ApplicationContext的区别:

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

3、AOP

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

4、抽象JDBC和DAO模块

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

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

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

6、依赖注入(DI)

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

依赖注入的方式有三种:

  6.1、构造器依赖注入:通过构造器依赖注入在容器触发构造器的时候完成,这个构造器有一系列的参数,每个参数代表需要注入的对象。

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

  6.3、属性注入:通过在配置文件中,直接对属性的值进行注入。

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

7、Spring Beans

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

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

8、Spring中支持bean的作用域

  8.1、singleton:单例方式存在

  8.2、prototype:原型方式存在,一个bean可以定义多个实例

  8.3、request:每次HTTP请求都会创建一个新的bean,作用域只能在WebApplicationContext上下文环境中

  8.4、session:一个HttPSession定义一个bean,作用域只能在WebApplicationContext上下文环境中

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

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

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

9、在Spring中注入Java集合类

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

  9.1、list元素用来注入一系列的值,允许有相同的值

  9.2、set元素用来注入一系列的值,不允许有重复的值

  9.3、map用来注入一组键值对,键值可以是任何类型的

  9.4、props可以用来注入一组键值对,只不过键值都是String类型的

10、JdbcTemplate解释:

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

11、Spring可以通过两种方式访问Hibernate

  11.1、使用HibernateTemplate的反转控制以及回调方法

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

二十三、Spring框架的相关知识点总结的更多相关文章

  1. Spring和Springboot相关知识点整理

    简介 本文主要整理一些Spring & SpringBoot应用时和相关原理的知识点,对于源码不做没有深入的讲解. 1. 思维导图 右键新窗口打开可以放大. 说明 使用@Configurati ...

  2. spring框架面试相关问题

    Spring 框架中核心组件有三个:Core.Context 和 Beans.其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory. Spring 解决了的最核 ...

  3. python运维开发(二十三)---tornado框架

    内容目录: 路由系统 模板引擎 cookie 加密cookie 自定义api 自定义session 自定义form表单验证 异步非阻塞 web聊天室实例 路由系统 路由系统其实就是 url 和 类 的 ...

  4. 【实验二】Spring框架笔记——NamedParameterJdbcTemplate与具名参数

    在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定. 在 Spring JDBC 框架中, 绑定 ...

  5. Spring框架的相关介绍

    Spring是一个开源轻量级的框架,它的核心是控制反转(IOC)和面向切面编程(AOP). 作为业务层框架的spring能够很好地整合表现层跟持久层. IOC:将类的创建和依赖关系写到配置文件里,可以 ...

  6. (二)Spring框架之JDBC的基本使用(p6spy插件的使用)

    案例一: 用Spring IOC方式使用JDBC Test_2.java package jdbc; import java.lang.Thread.State; import java.sql.Co ...

  7. 图像处理程序框架—MFC相关知识点

    CDC:Windows使用与设备无关的图形设备环境(DC :Device Context) 进行显示 . MFC基础类库定义了设备环境对象类----CDC类. CDC与CGdiObject的关系 说道 ...

  8. python3 练习题100例 (二十三)与7相关的数

    与7相关的数:如果一个正整数,它能被7整除或者它的十进制表示法中某个位数上的数字为7,则称之为与7相关的数.(10分) 题目内容: 现在我们给定一个正整数n(n<1000),求所有小于等于n的与 ...

  9. 业务开发(二)—— Spring框架

    0x01.使用枚举类,在MyBatis中 到了mapper.xml文件那里,如Status要与1进行对比,而不是1所对应的枚举字符串. 0x02.分页 Dao获取到的记录数,在Controller层放 ...

随机推荐

  1. 1、HA Cluster基础原理

    Linux Cluster  -->  linux集群类型分三种: LB:负载均衡,LoadBalance HA:双机集群系统,指高可用性集群,High Available HP:Hadoop ...

  2. 陌上花开——CDQ分治

    传送门 “CDQ分治”从来都没有听说过,写了这题才知道还有这么神奇的算法. (被逼无奈).w(゚Д゚)w 于是看了不少dalao的博客,对CDQ算法粗浅地了解了一点.(想要了解CDQ的概念,可以看下这 ...

  3. mime模块响应或设置Node.js的Content-Type头

    转载自:https://itbilu.com/nodejs/core/VJYaAfKrl.html   MIME,即:Multipurpose Internet Mail Extensions,多用途 ...

  4. 字符串函数 mysql 和sqlserver 中对于字符串的常用函数和区别

    1. 对于字符串大小写的统一 mysql和sqlserver中都有同名函数lower()和upper(),但是mysql中还有另外一对函数,达到同样的目的,lcase()和ucase(),也就是英文中 ...

  5. fit_transform和transform的区别

    来自:泡泡糖nana 来自:俞驰 1. fit_transform是fit和transform的组合. 2. fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法 ...

  6. python调用虹软2.0

    第一版踩了无数的坑,终于第二版把坑全添了,这次更新可以正常获取人脸数,角度,代码可读性更高,继续更新中 第三版已发出 https://www.cnblogs.com/wxt51/p/10125460. ...

  7. Windows下使用创建多层文件夹 SHCreateDirectoryEx 函数需要注意的问题

    1.在使用SHCreateDirectoryEx函数创建多层文件夹的过程中,发现在文件夹路径中,只能使用\\而不能使用/,否则将创建文件夹失败. 2.下面为在MFC中使用的代码片段 CString n ...

  8. JAVA基础知识总结:二十二

    一.反射机制 1.概念 反射机制指的是程序在运行的过程中,对于任意一个类,都能够知道这个类对应的所有的属性和方法:对于任意一个对象,都能够调用其中的任意的方法和属性,在Java中,把这种动态获取信息以 ...

  9. [C#]获取连接MySql数据库及常用的CRUD操作

    测试如下: 首先添加引用:MySql.Data.dll 链接:http://pan.baidu.com/s/1dEQgLpf 密码:bnyu *将链接数据库的信息放入配置文件中(app.config) ...

  10. Asp.net core 学习笔记 ( OData )

    2018-12-10 更新 : 从前我都是把 entity 直接用于 odata 曝露 api 给程序用. 如果这个程序是我们自己写的前端,这样的方式非常好,因为就好比前端可以直接对数据库每一个表做操 ...