第一节 Spring简介
1、一家公司
2、Spring旗下的众多项目
3、Spring Framework
①Spring Framework关键点
②Spring Framework优良特性
③Spring Framework五大功能模块

第一节 Spring简介

1、一家公司

01.Spring简介 - 图1

罗德·约翰逊(Rod Johnson) Spring框架的创始人,同时也是SpringSource的联合创始人。Rod在悉尼大学不仅获得了计算机学位,同时还获得了音乐学位。更令人吃惊的是在回到软件开发领域之前,他还获得了音乐学的博士学位。

经过一系列的眼花缭乱的商业并购,其中涉及SpringSource、EMC、VMWare、Pivotal等公司,最终花落Pivotal公司。
团队成员
01.Spring简介 - 图2

官网地址:https://spring.io/

2、Spring旗下的众多项目

From configuration to security, web apps to big data—whatever the infrastructure needs of your application may be, there is a Spring Project to help you build it. Start small and use just what you need—Spring is modular by design.
项目列表:https://spring.io/projects

| Spring技术发展的四个阶段 | | :———| ———: | :———: | |第一阶段 spring-core:spring core、spring security、spring data| |第二阶段 spring-boot:快速开发,提升程序的开发效率,使得程序从可用变得好用| |第三阶段 spring-cloud微服务。推动微服务架构的落地,让不具备开发微服务的小型互联网公司也能享受到开箱既用的微服务解决方案| |第四阶段 spring cloud dataflow。基于微服务的分布式流处理和批处理数据通道,目标是简化大数据应用的开发|

3、Spring Framework

Spring 基础框架,可以视为 Spring 基础设施,基本上任何其他 Spring 项目都是以 Spring Framework 为基础的。

①Spring Framework关键点

  • Spring可以说是Java世界最成功的框架。在企业级应用中,大部分的企业架构都基于Spring框架。
  • Spring是开源的,这一点和MyBatis、SpringMVC、Struts2、Hibernate等一样。
  • Spring的出现是因为Sun EJB的失败。EJB是重量级技术,功能强大,但配置繁杂,占用资源多,对EJB容器有依赖(侵入性),测试不方便,运行缓慢。而Spring是轻量级技术,保持技术强大的同时,克服了EJB的种种缺点。
  • 2004 年 03 月,Spring 1.0 版发布。2017 年 09 月,Spring 5.0 发布,基于JDK8。
  • Spring的成功来自理念,而不是技术。最核心的理念是IoC(控制反转)和AOP(面向切面编程)。基础是IoC,AOP的最典型应用当属数据库事务的处理。
  • Spring不是为了取代现有技术,不重复的造轮子,而是提供更好的整合模板来整合这些技术,开发更简单。
  • 特别强调Spring优点的非侵入性或者低侵入性。使用POJO开发,不需要继承Spring API,通过配置扩展POJO功能,通过依赖注入、AOP、面向接口编程等,降低耦合性。即使Java应用离开了Spring已经可以运行。
  • Spring已经从Spring一个产品发展为一个家族,处理Spring之外,还有SpringMVC、Spring Security、SpringData、SpringBoot和SpringCloud等,但他们的基础都是Spring 的 IOC 和 AOP。 https://spring.io/projects

②Spring Framework优良特性

  • 非侵入式:使用 Spring Framework 开发应用程序时,Spring 对应用程序本身的结构影响非常小。对领域模型可以做到零污染;对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化。这就使得基于 Spring Framework 开发应用程序时结构清晰、简洁优雅。
  • 控制反转:IOC——Inversion of Control,翻转资源获取方向。把自己创建资源、向环境索取资源变成环境将资源准备好,我们享受资源注入。
  • 面向切面编程:AOP——Aspect Oriented Programming,在不修改源代码的基础上增强代码功能。
  • 容器:Spring IOC 是一个容器,因为它包含并且管理组件对象的生命周期。组件享受到了容器化的管理,替程序员屏蔽了组件创建过程中的大量细节,极大的降低了使用门槛,大幅度提高了开发效率。
  • 组件化:Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用 XML 和 Java 注解组合这些对象。这使得我们可以基于一个个功能明确、边界清晰的组件有条不紊的搭建超大型复杂应用系统。
  • 声明式:很多以前需要编写代码才能实现的功能,现在只需要声明需求即可由框架代为实现。
  • 一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且 Spring 旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在 Spring Framework 的基础上全部使用 Spring 来实现。

③Spring Framework五大功能模块

功能模块 功能介绍
Core Container 核心容器,在 Spring 环境下使用任何功能都必须基于 IOC 容器。
AOP&Aspects 面向切面编程
Testing 提供了对 junit 或 TestNG 测试框架的整合。
Data Access/Integration 提供了对数据访问/集成的功能。
Spring MVC 提供了面向Web应用程序的集成功能。

01.Spring简介 - 图3

回目录 下一节