Spring 框架入门教程
1. 1. Spring 框架 2. 2. Spring 5 3. 3. Spring WebFlux 4. 4. 先介绍一下 Spring 5. 5. 什么是 Spring 依赖注入 6. 6. 什么是 Spring IoC 容器 和 Bean 7. 7. Spring Bean 的生命周期 8. 8. Spring REST 开发 9. 9. Spring REST XML 10. 10. Spring RestTemplate 开发 11. 11. Spring AOP 切面编程 12. 12. Spring AOP 方法调优 13. 13. Spring 注解详解 14. 14. Spring 核心注解之 @Autowired 15. 15. Spring 核心注解之 @RequestMapping 16. 16. Spring MVC 开发样例 17. 17. Spring MVC 开发指南 18. 18. Spring MVC 异常处理机制 19. 19. Spring MVC Validator 20. 20. Spring MVC 拦截器 21. 21. Spring MVC 文件上传 22. 22. Spring MVC 国际化(i18n) 23. 23. Spring MVC Hibernate MqSQL 24. 24. Spring ORM 25. 25. Spring ORM JPA 26. 26. Spring Data JPA 27. 27. Spring 事务管理 28. 28. 常用的 Spring JdbcTemplate 29. 29. Spring Security 简介 30. 30. Spring Security 教程 31. 31. Spring Security UserDetailsService 32. 32. Spring MVC 登录注销简单案例 33. 33. Spring Security Roles 34. 34. Spring Boot Tutorial 35. 35. Spring Boot Components 36. 36. Spring Boot CLI Hello World 37. 37. Spring Boot Initilizr Web 38. 38. Spring Boot Initilizr IDE 39. 39. Spring Boot Initilizr CLI 40. 40. Spring Boot Initilizr Tools 41. 41. Spring Boot MongoDB 42. 42. Spring Boot Redis Cache 43. 43. Spring Boot 常见面试问题 44. 44. Spring Batch 45. 45. Spring Batch 批处理示例 46. 46. Spring AMQP 47. 47. Spring RabbitMQ 48. 48. Spring AMQP RabbitMQ 49. 49. Apache ActiveMQ 安装与启动 50. 50. Spring ActiveMQ 教程 51. 51. Spring ActiveMQ 示例 52. 52. Spring JDBC 53. 53. Spring DataSource JNDI 54. 54. Spring Hibernate 55. 55. Spring Primefaces JPA 56. 56. Spring Primefaces MongoDB 57. 57. Spring Primefaces Hibernate 58. 58. SpringRoo Primefaces Hibernate 59. 59. Spring JSF 60. 60. Spring JDF Hibernate 61. 61. Spring Data MongoDB 62. 62. Spring 常见面试问题

2. Spring 5

《Spring5》于2017年末发行。spring5对Spring框架进行了大量的更新。Spring4是在2013年发布的,所以每个人都期待着对框架进行一次重大的改革。我很高兴看到Spring框架中的新特性。

Spring5特色

Spring5的特性大致可分为以下几类:

  • Java基线支持
  • 核心API增强
  • springwebmvc增强
  • SpringWebFlux
  • 支持Kotlin的函数式编程
  • 测试改进
  • 不推荐使用的支持和已删除的包

Java基线支持

  • spring5运行在java8上,因此Spring代码可以利用lambda表达式来提高代码的可读性。
  • spring5也支持java9,因此我们也可以在基于模块的体系结构上创建应用程序。
  • Spring5支架Java EE 7也兼容Java EE 8. 所以我们可以用Servlet 4.0、Bean验证2.0、JPA2.2在我们的应用程序中。我们也可以使用他们的旧版本,即。Servlet3.1、Bean验证1.1、JPA2.1.
  • spring5应用程序的首选服务器版本是tomcat8.5+、jetty9.4+和wildfly10+。

我真的很喜欢Spring5试图赶上不同技术的最新版本。

核心API增强

  • 包级别的非null API声明。带注解的字段和返回值显式为空@Nullable annotation.
  • 文件操作通过nio2流执行,即没有文件输入/输出流。对于基于文件的应用程序来说,这是一个很好的增强和性能提升。
  • Spring Framework5.0自带了自己的Commons日志桥;spring-jcl instead of standard Commons Logging.
  • 支持通过索引文件和META-INF提供spring组件信息/Spring组件和;而不是类路径扫描。如果您有一个大型spring项目和许多spring组件,这将大大缩短启动时间。这对开发人员也会更好,因为我们可以直接查看指定的文件来确定应用程序入口点,而不是搜索整个类路径文件。

springwebmvc增强

Spring Mvc模块在使用最新J2EE技术方面进行了重大改进。一些主要的增强功能包括:

  • Spring提供了完整的Servlet3.1签名支持Filter implementations.
  • 支持Servlet 4.0PushBuilder argument in Spring MVC controller methods.
  • 公共服务器上Servlet 3.0多部分解析的MaxUploadSizeExceedeException。
  • 通过MediaTypeFactory委托对常见媒体类型提供统一支持。
  • 使用不可变对象的数据绑定科特林,龙目目,@constructor属性。
  • 支持JSON绑定API作为杰克逊和格森的替代品。
  • 反应堆3.1支架通量单声道以及rxjava1.3和2.1作为Spring Mvc控制器方法的返回值。
  • 支持ResponseStatusException as a programmatic alternative to @ResponseStatus.

SpringWebFlux

Spring Web Flux是新的模块,它是spring-webmvc module and built on reactive framework. This module is used to create fully asynchronous and non-blocking application built on event-loop execution model.

  • spring核心中的反应式基础设施,如编码和解码对象流的编码器和解码器。
  • @控制器风格,基于注解的编程模型,类似于Spring Mvc,但支持WebFlux,运行在反应式堆栈上。
  • 新的WebClient具有一个用于HTTP调用的功能性和反应性API,与restemplate相当,但通过一个流畅的API,并且在基于WebFlux基础设施的非阻塞和流式场景中表现出色。

支持Kotlin的函数式编程

spring5现在也支持Kotlin编程。这是向支持函数式编程迈出的一大步,正如Java也在向函数式编程迈进一样。

  • 支持空安全API
  • 支持带有可选参数和默认值的Kotlin不可变类。
  • 利用Kotlin具体化的类型参数避免显式地指定在各种api(如restemplate或WebFlux api)中用于序列化/反序列化的类。
  • 支持带有可选参数的Kotlin autowired构造函数。
  • 对@Autowired/@Inject和@RequestParam/@RequestHeader/etc注解的Kotlin null安全支持。

测试改进

  • 支持JUnit5
  • Spring Test Context框架中对并行测试执行的支持

不推荐使用的支持和已删除的包

  • 删除的包beans.factory.access, jdbc.support.nativejdbc, mock.staticmock from spring-aspects module.
  • 删除的包web.view.tiles2 and orm.hibernate3/hibernate4 dropped. This means if you are planning to use Spring 5, you will also have to use Hibernate 5.
  • 放弃对旧技术的支持Portlet、Velocity、JasperReports、XMLBeans、JDO、Guava. 如果您正在使用其中的任何一种,那么要么迁移到其他技术,要么继续使用spring4。

以上是对Spring5特性的快速概述。

参考文献:Spring GitHub文档