Spring5中⽂官⽅⽂档------Overview
Spring 让创建企业级Java应⽤变得更加容易。它提供了你在Java企业级应⽤开发中所需要的⼀切,⽀持Groovy 和 Kotlin作为基于JVM上的替代语⾔,根据应⽤程序的需要,可以灵活的创建不同种类型的架构。Spring Framework 5.0 需要JDK 8+ (Java SE 8+),为JDK 9提供开箱即⽤的⽀持。
Spring⽀持⼴泛的应⽤程序场景。在⼤型企业中,应⽤程序经常会存在⼀个较长的时间,并且是运⾏在JDK上,其升级周期超过了开发⼈员的控制范围。其他的程序可能以⼀个jar⽂件嵌⼊到服务器中来运⾏,可能在⼀个云环境中。另⼀些可能是不需要服务器的独⽴应⽤程序(如批处理程序或集成负载⼯作)。
validation框架Spring是开源的。它拥有⼀个庞⼤、活跃的社区来持续提供基于各种现实⽤例的反馈。这帮助了Spring成功的在相当长的时间内迭代,发展。
“Spring”的含义
“Spring”这个单词在不同的场景下表达着不同的含义。它可以⽤来代指Spring Framework项⽬本⾝,这就是开始的地⽅。随着时间推移,其他的Spring项⽬已经构建在Spring Framework⾄上。很多时候,⼤家说的”Spring“,是指整个项⽬家族。那么此参考⽂档的基本关注点是:Spring Framework项⽬本⾝。
Spring Framework被分成了多个模块。应⽤程序可以选择它们所需要的模块。其中最关键的是核⼼模块,包括配置模块和依赖注⼊机制(DI)。除此之外,Spring Framework为不同的应⽤程序架构提供了基础的⽀持,包括消息,数据处理,持久化和web服务等。也包括了基于Servlet的Spring MVC web框架,同时还有响应式web框架Spring WebFlux。
关于模块的⼀个主意事项:Spring框架的jar包,可以被部署到Java9的模块路径下(“Jigsaw”)。在使⽤了Jigsaw的应⽤程序中,Spring Framework的jar带有⾃动命名的功能,它定义稳定的语⾔级模块名称(例如"",“t"等)独⽴于jar⼯件名称(jar⽂件遵循相同的命名模式使⽤“-”号代替”."号,例如“spring-core”和“spring-context”)。当然,Spring Framework的框架的jar在JDK 8和9的类路径上可以正常⼯作。
Spring和Spring Framework的历史
Spring的出现是在2003年,是为了应对早期复杂的规范。虽然有观点认为Java EE和Spring是竞争的关系,但实际上它们是相辅相成的。Spring的编程模型不受制于Java EE平台规范,相反,它整合了从Java EE挑选的个别规范:
Servlet API ( )
WebSocket API ()
Concurrency Utilities ()
JSON Binding API ()
Bean Validation ()
JPA ()
JMS ()
如果有需要,也可以进⾏事物协调的JTA/JCA相关设置
Spring Framework也⽀持依赖注⼊()和通⽤的注解()规范,程序开发⼈员可以使⽤其来代替Spring的特有机制。
原⽂:The Spring Framework also supports the Dependency Injection (JSR 330) and Common Annotations (JSR 250) specifications, which application developers may choose to use instead of the Spring-specific mechanisms provided by the Spring Framework.
在Spring Framework 5.0中,Spring需要最低为Java EE 7(例如:Servlet 3.1+, JPA 2.1+),同时,集
成了新Java EE 8的新API并且开箱即⽤。这使Spring⾼度兼容⽐如Tomcat 8和9,WebSphere 9和JBoss EAP 7。
随着时间的推移,Java EE在应⽤中的⾓⾊已经发⽣了变化。早期的Java EE和Spring,应⽤是被部署到应⽤服务器中。如今,在Spring boot的帮助下应⽤会在中或云友好的环境中使⽤servlet容器和作⼀些细微改变被创建。⽽在Spring Framework 5中,WebFlux应⽤甚⾄不会直接使⽤Servlet API⽽运⾏在服务上(例如Netty),⽽不是Servlet容器。
Spring会继续创新和发展。越过Spring Framework,还有其他的项⽬,例如Spring Boot,Spring Security,Spring Data,Spring Cloud,Spring Batch等等。要着重的记住,每⼀个项⽬都有它⾃⼰的源代码仓库,问题追踪(issue),发布节点。点击来查看Spring完整的项⽬列表。
设计理念
当你学习⼀个框架的时候,不仅仅只需要知道它是⽤来做什么,还要知道它遵循什么原则。下⾯给出的是Spring Framework的指导原则:
在所有层⾯提供选择。Spring让你尽可能晚的推迟设计决策。例如,你可以在不修改代码的基础上通过配置⽂件来获得持续的帮助。对于许多其它的基础架构和第三⽅API基础也是如此。
包含多个视⾓。Spring是灵活的,对于事情的处理⽅式它不会⼀成不变。它会⽤不同的视⾓来⽀持⾮常⼴泛的应⽤程序需求。
维持⾮常强的向后兼容性。在版本之间,Spring被谨慎的管理以去应对少量的重⼤变化。Spring⽀持⼀定范围的JDK版本和第三⽅库,以便于依赖于Spring的应⽤和库的维护。
原⽂:Maintain strong backward compatibility. Spring’s evolution has been carefully managed to force few breaking changes between versions. Spring supports a carefully chosen range of JDK versions and third-party libraries to facilitate maintenance of applications and libraries that depend on Spring.
着重于API的设计。Spring团队投⼊⼤量的时间和思考去制作直观的、在很多版本很多年都保持不变的API。
设置⾼标准的代码。Spring Framework着重于⼀个易懂,具有时效性,准确的Javadoc。它是为数不多的,可以做到保持⼲净的代码结构并且包之间没有循环依赖的项⽬之⼀。
反馈和贡献
关于如何提出问题,诊断,调试问题,我们建议使⽤StackOverflow,我们也提供⼀个,其中列出了⼀
些问题标签可以点击查看。如果你有相当的把握发现了Spring Framework中有某个问题,或者有好的建议,请使⽤。
如果你有好的解决⽅案或建议,你可以在提交⼀个pull request。然⽽,需要记住的是,除了⽆关紧要的问题外,我们希望能够在issue tracker中讨论,留下记录以供将来参考。
更详细的内容请参考在的指南。
⼊门指南
如果你刚刚使⽤了Spring,你可能会希望基于Spring Boot来创建⼀个Spring应⽤。Spring Boot可以快速创建基于Spring的,直接可⽤于⽣产的项⽬。它基于Spring Framework,⽀持约定优于配置,它可以让你尽可能快的上⼿。
你可以使⽤来创建⼀个基础⼯程,也可以使⽤中某个⽂档。例如。除了容易理解,这些指南也⾮常基于任务(task focused),⽽且他们⼤部分是基于Spring Boot的。他们还涵盖了⼀些其他的项⽬,你可以在解决某特定问题时来考虑他们。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论