Spring 概述

1. 什么是Spring(Spring Framework)

Spring是用于构建企业级应用的轻量级一站式框架(或者说解决方案)。核心是控制反转IoC和面向切片AOP

2. 为什么要用Spring

方便解耦,简化开发。Spring就是一个大工厂,可以将所有对象创建和依赖关系维护交给Spring管理。

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

声明式事务的支持。只需要通过配置就可以完成对事务的管理,而无需手动编程。

方便程序的测试。Spring对Junit4支持,可以通过注解进行测试。

方便集成各种优秀框架。Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。

降低JavaEE API的使用难度。Spring 对 JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。

3. Spring家族

Spring不仅代表框架(Spring Framework),也代表了与之相关的子项目,比如Spring Boot、Spring Cloud、Spring Data

Spring倡导的现代Java设计:

  • Spring Boot 构建一切
  • Spring Cloud 协调一切
  • Spring Cloud Data Flow 连接一切

这也体现了从单机到群集到云的变化趋势

4. Spring5的改变

改动点 改变的意义 一些反思
Java8+、Kotlin 语言在进步 要了解高版本JDK的新特性
支持WebFlux Java异步编程模式的崛起 全面落地尚需时日
去掉了很多支持 Portlet过时了、Velocity不维护了、JasperReport不流行了 库有很多,该怎么选?

模板引擎Velocity不维护了,可以选择一些更新的模板引擎

后端报表JasperReport不流行了,现在报表一般都是在前端完成,例如百度的ECharts,后端只负责提供数据即可

5. Spring核心设计思想

5.1. IoC(Inversion of Control)控制反转

以前对象的创建由开发人员自己维护,依赖关系(类成员有其它类)也是自己注入。而spring可以直接完成对象的创建和依赖注入。所谓IoC就是反转了对象的创建方式和依赖注入方式,反转给spring去处理。

5.2. DI(Dependency Injection)依赖注入

DI是一种技术,体现了IoC思想。

5.3. AOP(Aspect Oriented Programming)面向切面编程

AOP:指在程序运行期间,将某段代码动态切入到指定方法的指定位置,这种方式,就叫面向切面编程

AOP是基于OOP基础之上的编程思想

AOP应用场景:

  • 日志记录:与业务逻辑分离,以AOP的方式统一添加日志记录功能
panchaoxin wechat
关注我的公众号
支持一下