【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记

1 Spring 简介

1.1 Spring是什么

  • Spring是分层的javaee/javase应用full-stack(这里是各层都有解决方案的意思)轻量级开源框架,以IOC(反转控制)和AOP(面向切面编程)为内核(IOC,反转控制:反转bean的创建权)
  • 提供了展现层SpringMVC持久层Spring JDBCtemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,使用广泛

1.2 Spring的优势:

  • 方便解耦,简化开发

    通过Spring提供的IOC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码造成过耦合,避免了创建对象时直接进行new,而是交给了Spring容器

  • AOP的变成支持

    通过Spring提供的AOP功能,面向切面编程

  • 声明式事务的支持

    通过声明式方式灵活的进行事务管理,提高开发效率

  • 方便程序测试

    Spring可以集成JUnit

  • 方便集成各种优秀的框架

  • 降低JavaEEAPI的使用难度

1.3 Spring的体系结构:

  • 层层递进

【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记

  • 核心容器:四部分

    Beans:产生bean对象

    core:核心

    context:上下文

    spEL:Spring的表达式语言

  • Data Access:数据访问层

  • Web层

2 Spring快速入门:

【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记

  • 开发步骤:
    1. 导入Spring开发的基本包坐标
    2. 编写Dao接口和实现类
    3. 创建Spring核心配置文件 applicationContext.xml
    4. 在Spring配置文件中配置UserDaoImpl
    5. 使用Spring的API获得Bean实例

3 Spring配置文件

3.1 bean标签的基本配置

用于配置对象交由Spring来创建,默认情况下调用的是类中的无参构造函数,如果没有则不能成功

id 唯一性表示

class 全限定类名

3.2 bean标签的范围配置

scope:

  • singleton 默认值,单个的,容器中存在的对象只有一个,对象在加载Spring核心配置文件时创建,销毁容器时对象被销毁
  • prototype 多个的,容器中存在的对象可以有多个,对象在每次getBean()时创建,对象长时间不使用时,被java垃圾回收器回收
  • request
  • session
  • global session
  • 【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记

3.3 bean生命周期配置

init-method:定义类的初始化方法名称

destroy-method:定义类中销毁方法名称

3.4 bean实例化三种方式

无参构造方法实例化(重点)

工厂静态方法实例化

工厂实例方法实例化

3.5 bean的依赖注入分析

【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记
依赖注入:Spring框架核心IOC的具体体现

编写程序时,通过控制反转,把对象的创建交给了Spring,但是代码中不可能出现没有依赖的情况,IOC解耦至少降低他们的依赖关系,不会消除,例如:业务层仍会调用持久层的方法

那这种业务层和持久层的依赖关系,在使用Spring之后,就让Spring去维护了,也就是等框架把持久层对象传入业务层,而不用我们自己去获取

3.6 bean的依赖注入方式

怎么把UserDAO注入到UserService:

  1. 构造方法(有参构造)
  2. set方法

3.7 bean的依赖注入的数据类型

上面的操作都是注入的引用Bean,除了对象的引用可以注入,普通数据类型、集合等都可以在容器中进行注入

注入的数据类型:

  1. 普通数据类型
  2. 引用数据类型
  3. 集合数据类型

3.8 引入其他配置文件——分模块开发

Spring的配置内容非常多,导致文件非常长,不方便后期维护,可以对齐进行拆解

< import resource=“applicationContext-xxx.xml”/>

3.9 Spring 的重点配置

【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记

4 Spring 相关API

4.1 ApplicationContext的继承体系

applicationContext:接口类型,代表应用上下文,可以通过其实例或得Spring容器中的bean 对象

4.2 ApplicationContext的实现类

  1. ClassPathXMLApplicationContext

    他是从类的根路径下加载配置文件,推荐使用这种

  2. FileSystemXMLApplicationContext

    从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置

  3. AnnotationXMLApplicationContext

    使用注解配置容器对象时,需要使用这个类来创建Spring容器

4.3 getBean()方法使用

【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记

4.4 spring的重点API

【1 Spring 简介】2020年黑马SSM最新就业班Spring+SpringMVC+Mybatis教程笔记