0%

7.1 Spring简介和Spring5.0的变化

7.1 Spring简介和Spring5.0的变化

Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一个版本。经过十多年的发展,Spring已经发展成Java EE开发中最重要的框架之一。对于一个Java开发者来说, Spring已经成为必须掌握的技能。
不仅如此,围绕Spring,以Spring为核心还衍生出了一系列框架,如Spring Web FlowSpring SecuritySpring DataSpring bootSpring Cloud等,具体请登录Spring官方网站, Spring越来越强大,带给开发者越来越多的便捷。本书所介绍的是Spring框架本身.

7.1.1 Spring简介

Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。
Spring为企业应用的开发提供了一个轻量级的解决方案。该解决方案包括:

  • 基于依赖注入的核心机制、

  • 基于AOP的声明式事务管理、

  • 与多种持久层技术的整合,

  • 以及优秀的Web MVC框架等。

    Spring致力于Java EE应用各层的解决方案,而不是仅仅专注于某一层的方案。可以说: Spring是企业应用开发的”一站式”选择, Spring贯穿表现层业务层持久层。然而, Spring并不想取代那些已有的框架而是以高度的开放性与它们无缝整合。
    总结起来, Spring具有如下优点

  1. 低侵入式设计,代码的污染极低。
  2. 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write once, Run Anywhere的承诺。
  3. SpringIoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦。
  4. SpringAOP支持允许将一些通用任务如安全、事务、日志等进行集中式处理,从而提供了更好的复用。
  5. SpringORMDAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。
  6. Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。

这里有一张图片
图7.1显示了Spring框架的组成结构图。正如从图7.1所见到的,当使用Spring框架时,必须使用Spring Core Container(即Spring容器),它代表了Spring框架的核心机制, Spring Core Container主要由:

  1. org.springframework.core
  2. org.springframework.beans
  3. org.springframework.context
  4. org.springframework.expression

四个包及其子包组成,主要提供Spring loc容器支持。其中org.springframework.expression及其子包是Spring3.0新增的,它提供了Spring Expression Language支持。

7.1.2 Spring5.0的变化

与之前的Spring版本相比, Spring5.0发生了一些变化,这些变化包括:

  1. Spring5.0整个框架已经全面基于Java8,因此Spring5.0JDK的最低要求就是Java8,Spring5.0可以在运行时支持Java9
  2. 因为Java8的反射增强,因此Spring5.0框架可以对方法的参数进行更高效的访问
  3. Spring5.0核心接口已加入了Java8接口支持的默认方法
  4. Spring5.0框架已经自带了通用的日志封装,因此不再需要额外的common-logging日志包。当然,新版的日志封装也会对Log4j 2.xSLF4JJUL( java util.logging)进行自动检测。
  5. 引入@Nullable@notNull注解来修饰可空的参数以及返回值,避免运行时导致NPE异常。
  6. Spring5.0框架支持使用组件索引来扫描目标组件,使用组件索引扫描比使用类路径扫描更髙效。
  7. Spring5.0框架支持JetBrains Kotlin语言。
  8. Spring5.0Web支持已经升级为支持Servlet3.1以及更高版本的规范。

从上面介绍可以看出, Spring5.0的升级主要就是全面基于Java8,并在运行时支持Java9Servlet3.1规范,也为核心IoC容器增强了一些注解,并通过组件索引扫描来提升运行效率。本书所介绍的是Spring的最新发布版:Spring5.0.2,后面会介绍Spring5.0为核心IoC容器引入的注解.

原文链接: 7.1 Spring简介和Spring5.0的变化