基础

**#1.Spring 是什么?特性?有哪些模块?**

https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/sidebar/sanfene/spring-165c27b4-2ea0-409a-8fa5-389c105db0fa.png

Spring Logo

一句话概括:Spring 是一个轻量级、非入侵式的控制反转 (IoC) 和面向切面 (AOP) 的框架。

2003 年,一个音乐家 Rod Johnson 决定发展一个轻量级的 Java 开发框架,Spring作为 Java 战场的龙骑兵渐渐崛起,并淘汰了EJB这个传统的重装骑兵。

https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/sidebar/sanfene/spring-5d9efb93-03a5-400c-8429-3be7c5eeddfb.png

Spring重要版本

到了现在,企业级开发的标配基本就是 Spring5 + Spring Boot 2 + JDK 8

Spring 有哪些特性呢?

Spring 有很多优点:

https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/sidebar/sanfene/spring-a0f0ef9d-3289-41ea-94c2-34b7e37ef854.png

Spring特性

  1. IOC 和 DI 的支持

Spring 的核心就是一个大的工厂容器,可以维护所有对象的创建和依赖关系,Spring 工厂用于生成 Bean,并且管理 Bean 的生命周期,实现高内聚低耦合的设计理念。

  1. AOP 编程的支持

Spring 提供了面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等切面功能。

  1. 声明式事务的支持

支持通过配置就来完成对事务的管理,而不需要通过硬编码的方式,以前重复的一些事务提交、回滚的 JDBC 代码,都可以不用自己写了。

  1. 快捷测试的支持