20191224 Spring官方文档(Overview)
Spring框架概述
从Spring Framework 5.1开始,Spring需要JDK 8+(Java SE 8+),并提供对JDK 11 LTS的现成支持。建议将Java SE 8更新60作为Java 8的最低修补程序版本,但通常建议使用最新的修补程序版本。
Spring框架分为多个模块。应用程序可以选择所需的模块。这些模块的核心是核心容器(core container),包括配置模型(configuration model)和依赖项注入机制(dependency injection mechanism)。除此之外,Spring框架还为不同的应用程序体系结构提供了基础支持,包括消息传递,事务性数据和持久话以及Web。它还包括基于Servlet的Spring MVC Web框架,以及Spring WebFlux反应式Web框架。
因为早期J2EE规范的复杂性,Spring于2003年应运而生 。事实上Spring是Java EE的补充。Spring编程模型不包含Java EE平台规范。相反,它与Java EE中精心选择的各个规范集成在一起:
- Servlet API(JSR 340)
- WebSocket API(JSR 356)
- 并发实用程序(JSR 236)
- JSON绑定API(JSR 367)
- Bean验证(JSR 303)
- JPA(JSR 338)
- JMS(JSR 914)
- 以及必要时用于事务协调的JTA / JCA设置。
Spring框架还支持依赖注入(JSR 330)和通用注释(JSR 250)规范,应用程序开发人员可以选择使用这些规范来代替Spring框架提供的特定于Spring的机制。
从Spring Framework 5.0开始,Spring至少需要Java EE 7(例如Servlet 3.1 +,JPA 2.1+),同时提供与Java EE 8的较新API的开箱即用的集成。 (例如Servlet 4.0,JSON绑定API)。这样可以确保Spring与Tomcat 8和9,WebSphere 9和JBoss EAP 7完全兼容。
随着时间的流逝,Java EE在应用程序开发中的作用已经演变。在Java EE和Spring的早期,创建了应用程序以将其部署到应用程序服务器。如今,借助Spring Boot,可以通过对devops和云友好的方式创建应用程序,并嵌入Servlet容器并对其进行微不足道的更改。从Spring Framework 5开始,WebFlux应用程序甚至不直接使用Servlet API,并且可以在非Servlet容器的服务器(例如Netty)上运行。
Spring框架的指导原则:
- 提供每个级别的选择。Spring使您可以尽可能推迟设计决策。例如,您可以在不更改代码的情况下通过配置切换持久性提供程序。对于许多其他基础架构问题以及与第三方API的集成也是如此。
- 适应不同的观点。Spring拥有灵活性,并且对如何完成工作一无所知。它从不同的角度支持广泛的应用程序需求。
- 保持强大的向后兼容性。对Spring的演变进行了精心管理,以使各个版本之间几乎没有重大更改。Spring支持精心选择的JDK版本和第三方库,以方便维护依赖于Spring的应用程序和库。
- 关心API设计。Spring团队投入了大量的思想和时间来制作直观的,且在许多版本和很多年中都适用的API。
- 为代码质量设置高标准。Spring框架非常强调有意义,最新和准确的javadoc。它是极少数可以声明干净代码结构且程序包之间没有循环依赖关系的项目之一。
可以使用 网站 快速生成一个基本项目