课程简介和目标
是一个开源框架,它由Rod Johnson创建 ,.它是一个容器框架,用来装javabean,这种中间层框架可以起一个连接作用,比如说把Struts和hibernate结合在一起运用,就是早期的SSH,如果把SpringMVC和MyBatis结合到一起,就是目前非常流行的SSM。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,我们目前所用的几乎所有的框架都可以在spring上进行整合.从简单性,可测性和松耦合性角度而言,绝大部分JAVA应用都可以从Spring受益.
Spring优势:
1 方便解耦,简化开发 Spring通过容器,将对象的创建从代码中剥离出来,交给Spring控制,避免直接编码造成模块之间的耦合度高,用户也不必自己编码处理对象的单例和多例控制,主要关注接口功能即可,不用关注具体使用哪个实现类和实现细节问题
2 AOP切面编程 AOP切面编程是程序设计的一种概念,Spring对该概念实现的比较好,通过切面编程我们可以在不修改原有代码的情况下实现功能的增加,通常用于 事务控制,日志记录,性能检测,权限控制等等
3 声明式事务 事务的控制可以托管给Spring,我们通过注解或者配置文件声明事务的处理方式即可,不用我们自己去编码处理
4 整合JUNIT,方便测试 spring整合JUNIT单元测试,对于项目的功能都可以进行轻松快速的测试,便于我们调试程序
5方便整合各种优秀的框架
6 丰富的功能封装 spring对JAVAEE(JDBC ,JAVAMail,)都进行了一系列的封装,简化我们对于API的使用,提高程序的开发效率
7 规范的源码学习样本 spring的源码设计巧妙,结构清晰,大量使用了设计模式,是java代码规范编写的典范,也是高级程序员面试中经常会问到的源码
Spring Framework的体系结构
Spring家族
学习目标
1 深刻理解Spring容器概念
2 深刻理解IOC和DI,并能属性相关配置和注解
3 理解代理模式,属性两种动态代理(JDKProxy和CGLIB)实现原理
4 深刻理解AOP切面编程,能够说明AOP的含义以及底层实现原理
5 熟悉AOP的实现方式,XML+注解
6 熟悉Spring JDBCTemplate对象对于数据库的操作
7 能够独立通过AOP方式配置对于事务的控制
8 能够在spring中使用测试和日志框架
课程大纲
第一章 Spring容器,IOC和 DI
Spring概念介绍
IOC概念引入
IOC原理分析
XML方式实现IOC和DI
Bean的生命周期
Bean的自动装配
使用外部属性配置文件
注解方式管理Bean
容器实现IOC
第二章 Spring面向切面编程
JDKProxy动态代理
三方CGLIB动态代理
AOP概念,功能和实现原理
AOP注解方式实现
了解AOPXML方式实现
动态代理
AOP切面编程
第三章 Spring事务控制,日志和测试
JDBCTemplate的使用和实现CURD
事务回顾和事务环境搭建
注解方式实现事务控制
XML方式实现事务控制
通过配置代替XML实现事务控制
Spring5的日志控制
Spring5对Junit5的支持
事务的传播行为
spring框架有什么优势
轻量:Spring 是轻量的,基本的版本大约2MB。
控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
容器:Spring 包含并管理应用中对象的生命周期和配置。
MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。
Spring有哪些模块
Core module
Bean module
Context module
Expression Language module
JDBC module
ORM module
OXM module
Java Messaging Service(JMS) module
Transaction module
Web module
Web-Servlet module
Web-Struts module
Web-Portlet module