1. Spring概述(了解)
1.1 Spring是什么
Spring是分层的JavaSE/EE应用full-stack轻量级开源框架
以IOC(控制反转)和AOP(面向切面编程)为内核,提供了展现层SpringMVC和持久层 Spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多的著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架
-
使服务器开发更加简单
-
<!--导入springMVC框架-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
</dependencies> -
<!--导入spring jdbc-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
</dependencies> -
1.2 Spring的发展历程
2004 年 03 月,1.0 版发布。
2006 年 10 月,2.0 版发布。
2007 年 11 月,更名为 SpringSource,同时发布了 Spring 2.5。
2009 年 12 月,Spring 3.0 发布。
2013 年 12 月,Pivotal 宣布发布 Spring 框架 4.0。
2017 年 09 月,Spring 5.0 发布。
1.3 Spring的优势
非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。
方便解耦、简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器的管理,大大的降低了组件之间的耦合性。
支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性。
支持声明式事务处理:只需要通过配置就可以完成对事物的管理,而无须手动编程。
方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序。
方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如Struts、Hibernate、MyBatis、Quartz等)的直接支持。
降低Jave EE API的使用难度:Spring对Java EE开发中非常难用的一些API(如JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。
IOC(控制反转)和AOP(面向切面编程)
1.4 Spring的体系结构
1.5 扩展
现代化的java开发,就是基于spring开发
Spring Boot
一个快速开发的脚手架
基于Spring Boot可以快速的开发单个微服务
约定大于配置
Spring Cloud
Spring Cloud是基于Spring Boot实现的
IOC本质
控制反转IOC是一种设计思想,DI(依赖注入)是实现IOC的一种方法
面向对象编程,对象的创建与对象间的依赖关系完全由硬编码在程序中,对象的创建由程序自己控制
控制反转后的对象的创建转移给第三方,其实就是获得依赖对象的方式反转了
IOC是Spring框架的核心内容,使用多种方式完美的实现IOC,可以使用xml配置,也可以使用注解,新版本的Spring也可以零配置实现IOC
Spring容器在初始化时先读取配置问价你,根据配置文件或者元数据创建与组织对象存入容器中,程序使用时再从IOC容器中取出需要的对象
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Lh5VtDP-1618824670875)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1618554231912.png)]
采用xml方式配置Bean的时候,Bean的定义信息和实现是分离的,而采用注解的方式可以把两者为一体,Bean的顶会议信息直接以注解的形式定义在实现类中,从而达到零配置的目的
控制反转时一种通过描述(xml或者注解)并通过第三方去生产或者获取特定对象的方式,实现控制反转的时IOC容器,其实现方法时依赖注入(DI)