Spring是一个轻量级的控制反转(IOC)和面向切面编程的框架(框架,即模板)
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。
Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
2002年,首次推出spring框架的雏形,interface21框架https://www.interface21.io/
spring框架以interface21框架为基础,重新设计,丰富,在2004.3.24日发布1.0正式版
Rod Johnson,spring framework 创始人,学者。是悉尼大学的音乐学博士。
Spring 框架是一个分层的、面向切面的 Java 应用程序的一站式轻量级解决方案,它是 Spring 技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。简言之:使现有技术更加容易使用,并对其他的开源框架的使用提供支持。如:SSH(全自动框架)SSM(半自动)框架都以spring为中心进行整合。
官网:https://spring.io/projects/spring-framework
官方下载地址:https://repo.spring.io/ui/native/release/org/springframework/
github地址:https://github.com/spring-projects/spring-framework
使用时需要引入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.19</version>
</dependency>
<dependency>
<groupId>springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>1.2.6</version>
</dependency>
引入jar包对现有代码没有影响反而更容易
Spring应用中的对象不依赖于Spring的特定类
基于spring应用的开发中的对象可以不依赖于spring的API
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7aAifDiF-1656508231852)(../typora-user-images/image-20220621103616026.png)]](https://1000bd.com/contentImg/2022/06/30/033218557.png)
核心容器
核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
Spring 上下文
Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
Spring AOP
通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
Spring DAO
JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
Spring ORM
Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
Spring Web 模块
Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
Spring MVC 框架
MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。
框架核心
控制反转
当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring)。
依赖注入
spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它。利用set方法进行注入
不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务,Spring框架中是IOC容器负责将这些联系在一起。
是一个快速开发的脚手架,是构建基于spring应用程序的起点,用最少的spring前期配置来启动并运行
基于Spring Boot可以快速开发单个微服务
约定大于配置
spring和springmvc是Spring Boot基石
Spring Cloud是基于Spring Boot实现的,微服务多了才用它协调