spring介绍

介绍

Spring 功能非常强大,是 JAVAEE 开发中 使用最多的 轻量级 开源框架,核心功能:

  • IoC(Inverse Of Control)控制反转 或 依赖式注入

  • AOP(Aspect Oriented Programming)面向切面编程

提供 SpringMVC 框架(相当于功能强大又使用简单的Servlet)
在 Spring4.0 又提出了 springboot 框架,引起巨大反响

还整合很多第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。

官网:
https://spring.io/projects/spring-framework

下载spring jar:
https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local/org/springframework/spring

体系结构

上图中,最下面的是spring的核心容器:

  • Beans:spring-beans.jar
  • Core:spring-core.jar
  • Context:spring-context.jar
  • SpEL:spring-expression.jar

上面4个jar包,是spring框架必须用到的jar包

历史

Spring 框架最初是由 Rod Johnson 编写的,并且 2003 年 6 月首次在 Apache 2.0 许可下发布。

优势

方便解耦,简化开发

通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免 硬编码 所造成的过度程序耦合。

用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

AOP 编程的支持

通过 Spring 的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能,可以通过 AOP 轻松应付。

声明式事务的支持

可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。

方便测试

可以用非容器依赖的编程方式进行几乎所有的测试工作,简化测试

方便集成各种框架

Spring 可以降低各种框架的使用难度,提供了对各种优秀框架(mybatis、Hibernate、Quartz等)的支持。

降低 JavaEE API 的使用难度

Spring 对 JavaEE API(如 JDBC、JavaMail、远程调用等)进行了封装,使用这些 API 的难度大为降低。

经典源码

Spring 的源代码设计精妙、结构清晰,但是也很复杂。

很多大厂面试,都会问读了哪些源码,以及对源码的理解

一句话理解

  • ioc:将 Service组件、Dao组件 等交给Spring容器来管理(创建对象),不需要 手动 new 对象

  • aop:在不改变源代码的情况下,在方法之前和之后增加额外的功能


原文出处:/show_1IX1KsjlJJs.html