学习Spring框架
学习目标
1、了解Spring框架;
2、了解Spring框架的两大核心;
3、理解IOC的概念;
4、掌握Spring基于xml的IOC配置;
5、了解Spring中的工厂结构;
6、掌握Spring的bean标签的配置;
7、掌握spring的di注入机制
第一章 Spring概述
1、为什么要学习spring?
如果让本人用一句话去回答这个问题,那么我只能说:在J2EE的学习之路上,spring给我带来了开发的春天,让我们从JSP、sevlet的高耦合的开发中彻底的解救出来。
- spring是目前最主流的框架
- spring是学习后面课程(比如:springboot、springcloud等)的基础
2、Spring概述【了解】
【1】Spring是什么
Spring是一个开源框架,Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
轻量级:与EJB对比,依赖资源少,销毁的资源少。 分层: 一站式,每一个层都提供的解决方案
- web层:struts2,spring-MVC
- service层:spring
- dao层:hibernate,mybatis , jdbcTemplate --> spring-data
【2】Spring发展历程
Spring的发展历史: 1997年IBM提出了EJB的思想 1998年,SUN制定开发标准规范EJB1.0 1999年,EJB1.1发布 2001年,EJB2.0发布 2003年,EJB2.1发布 2006年,EJB3.0发布
Rod Johnson(spring之父) Expert One-to-One J2EE Design and Development(2002) 阐述了J2EE使用EJB开发设计的优点及解决方案
Expert One-to-One J2EE Development without EJB(2004) 阐述了J2EE开发不使用EJB的解决方式(Spring雏形)
2017年9月份发布了spring的最新版本–spring 5.0通用版(GA)
【3】Spring优势
Spring 出现是为了解决JavaEE 实际问题:
-
方便解耦,简化开发 (IOC)
Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理
Spring工厂是用于生成bean
-
AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
-
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
-
方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序
-
方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
-
降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低
基于这些特性,我们也会俗称Spring为开发架构的粘合剂。
【4】Spring体系结构
Spring框架至今已集成了20多个模块,这些模块分布在以下模块中:
核心容器(Core Container)
数据访问/集成(Data Access/Integration)层
Web层
AOP(Aspect Oriented Programming)模块
植入(Instrumentation)模块
消息传输(Messaging)
测试(Test)模块
3、Spring核心
Spring为企业级开发提供了丰富的功能,这些功能的底层都依赖于它的两个核心特性:
- 控制反转(Inversion of Control,IOC)
- 面向切面编程(aspect-oriented programming,AOP)
#画外音
IOC和AOP是一种技术吗?不!他们是一种思想