博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring ref history&design philosophy
阅读量:7185 次
发布时间:2019-06-29

本文共 1572 字,大约阅读时间需要 5 分钟。

Spring于2003年成立,是对早期规范复杂性的回应 。虽然有些人认为Java EE和Spring处于竞争中,但Spring实际上是对Java EE的补充。Spring编程模型不包含Java EE平台规范; 相反,它集成了EE保护伞中精心挑选的个别规格:

  • Servlet API()

  • WebSocket API()

  • 并发实用程序()

  • JSON绑定API()

  • Bean验证()

  • JPA()

  • JMS()

  • 以及必要时用于事务协调的JTA / JCA设置。

Spring Framework还支持依赖注入()和Common Annotations()规范,应用程序开发人员可以选择使用这些规范,而不是Spring Framework提供的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 Framework之外,还有其他项目,例如Spring Boot,Spring Security,Spring Data,Spring Cloud,Spring Batch等。重要的是要记住每个项目都有自己的源代码存储库,问题跟踪器和发布节奏。有关Spring项目的完整列表,请参见。

3.设计理念

当您了解框架时,重要的是不仅要知道它的作用,还要了解它遵循的原则。以下是Spring Framework的指导原则:

  • 提供各个层面的选择。Spring允许您尽可能晚地推迟设计决策。例如,您可以通过配置切换持久性提供程序,而无需更改代码。许多其他基础架构问题以及与第三方API的集成也是如此。

  • 适应不同的观点。Spring拥抱灵活性,并不认为应该如何做。它以不同的视角支持广泛的应用需求。

  • 保持强大的向后兼容性。Spring的演变经过精心设计,可以在版本之间进行一些重大改变。Spring支持精心挑选的JDK版本和第三方库,以便于维护依赖于Spring的应用程序和库。

  • 关心API设计。Spring团队花了很多心思和时间来制作直观的API,这些API在很多版本和多年中都有用。

  • 为代码质量设定高标准。Spring Framework非常强调有意义的,最新的和准确的javadoc。它是极少数项目之一,可以声称干净的代码结构,包之间没有循环依赖。

4.反馈和贡献

对于操作方法问题或诊断或调试问题,我们建议使用StackOverflow,我们有一个列出了要使用的建议标签。如果您非常确定Spring Framework中存在问题或想要建议功能,请使用。

如果您有解决方案或建议的修复,您可以在上提交拉取请求 。但是,请记住,对于除了最微不足道的问题以外的所有问题,我们希望在问题跟踪器中提交一张票据,在那里进行讨论并留下记录以供将来参考。

转载于:https://www.cnblogs.com/gs-34/p/10642700.html

你可能感兴趣的文章
用PageOffice实现C#ASP.NET批量转换导出Word文档
查看>>
Matrix 详解
查看>>
初始化Servlet两个init的区别
查看>>
Leetcode PHP题解--D77 812. Largest Triangle Area
查看>>
Linux中Bash的算数运算与Bash配置文件
查看>>
将数据库中的表显示到窗体
查看>>
Cassandra教程(2) ---- Cassandra2.2的新特性
查看>>
/etc/passwd、/etc/shadow、/etc/group每个字段的含义
查看>>
新增TinyMessage,并实现邮件接收处理
查看>>
PHP运行模式总结
查看>>
awk
查看>>
用qmake生成Makefile
查看>>
centos安装bugfree
查看>>
通过exits、getChildren、getData注册的watch有什么不同
查看>>
使用Leopard Redis操作Redis
查看>>
centos7安装docker
查看>>
《计算机科学导论》之数据结构基础知识
查看>>
Python深拷贝与浅拷贝
查看>>
JavaScript函数补完:splice()数组操作
查看>>
MIT自动驾驶的道德研究:自动驾驶生与死做出选择
查看>>