Spring让创建企业级Java程序变得容易。他提供了企业级Java程序所需要的一切内容.包括对干Groow和Kotlin这两种JVM语言的支持,以灵活的创建多种多样的企业架构。
在Spring Framework5.1中,Spring需要 JDK8+的支持,最新的能支持的JDK版本是 JDK11 LTS。
Spring支持非常广泛的应用场景。在大型的企业中,应用程序通常运行了很长时间,有可能这些应用所使用的JDK版本太老了,升级不可控。或者应用已一个单独的嵌套server的jar包运行,或者应用只是一个独立的应用,不需要使用任何server。
Spring是开源的,他有一个庞大和在线的社区为真实世界里面的不同方向的使用情况提供持续的技术支反馈和支持。这使得Spring在很长的一段时间内能够成功进化。
1."Spring"代表什么
"Spring"这个词在不同的环境中代表不同的含义。最开始的时候,它指的是Spring框架项目本身,但是随着时间的推移,又发展了其他的Spring项目。所以当现在我们提起"Spring"的时候,它指的是整个Spring家族。我们的这个Spring 参考指南指的是一切Spring的基础∶ Spring Framework。
Spring Framework被分成了很多个模块,我们在构建应用程序的时候可以自由选择使用哪个模块。最核心的模块是核心容器包括配置模块和依赖注入机制。除此之外,Spring Framework提供了对不同应用架构的基础支持,包括消息,交易数据,存储和网站。他还包括了Servlet-based Spring MVC web framework和最新的响应式Spring WebFlux reactive web framework。
在使用模块上有一点需要注意∶Spring Framework的jar包被允许部署到JDK9的模块路径("Jigsaw)。当Spring Framework 5被用在开启了Jigsaw的应用程序中时,Spring会开启一个叫做"自动模块名"的功能,并在其中定义了稳定的语言级模块名字,比("spring.core","spring.context"等),他们和其所在的jar包名字是不一样的(jar包名字已"."分割而不是",",如"spring-core"和"spring-context")。当然Spring Framework的jar包可以在JDK8和JDK9+环境中正常运行。
2. Spring和Spring框架的历史
Spring是在2003年,作为对之前的复杂的J2EE规范而产生的。有些人认为Spring和J2EE是竞争关系,实际上他们是互补的。Spring的编程模块虽然并没有遵照J2EE的平台规范,但是它和如下的J2EE规范紧密的结合∶ Servlet API(JSR 340)
WebSocket API (JSR 356)Concurrency Utilities (JSR 236)JSON Binding API(JSR 367)
Bean Validation (JSR 303)JPA(JSR 338)JMS(JSR 914)JTA/JCA
同时,Spring框架也支持依赖注入(JSR 330)和通用注解(JSR 250)规范,开发人员可以自由选择使用。
在Spring框架5.0中,Spring至少要求Java EE7以上(比如∶Servlet 3.1+,JPA2.1+),同时提供了对于Java EE 8中新API在运行时的支持(Servlet 4.0,JSON Binding API),这使得Spring可以全面支持多种服务器∶Tomcat 8.9. WebSphere 9,JBoss EAP7。
Java EE在应用程序开发中的角色在随时间变化,最开始,应用程序必须被部署成为一个服务。随着SPring boot的出现,现在的应用程序可以在devops或者云环境中随意创建。在Spring 框架5中,WebFlux应用程序甚至都不需要使用Servlet API,并且可以运行在类似于Netty这种非Servlet容器中。
Spring还将继续发展下去,除了 Spring框架,Spring家族还有其他的一些非常棒的项目∶Spring Boot,Spring Security,Spring Data,Spring Cloud,Spring Batch等。每个项目都有自己的代码库,问题跟踪机制和发版计划。如果想知道其他项目的具体情况可以参照∶spring.io/projects。
3.设计哲学
当你接触到一个框架的时候,不仅仅要知道这个框架是怎么使用的,更需要了解框架的设计原则,下面是Spring框架的设计原则∶
在每一层都提供选洗项。Spring口以i你尽口能的推迟选择。比如你可以通过配置文件来切换数据存们储的提供方而不需要
改动代码。这个规则也很好的应用在和第三方API集成中。
适应不同的视角。Spring具有灵活性,它不会强制为你决定该怎么选择。它以不同的视角支持广泛的应用需求。保持强大的向后兼容性。Spring的发展经过了精心的管理,使得版本之间几乎没有割裂的变化。Spring支持精心选择的一系列JDK版本和第三方库,以便于维护依赖于Spring的应用程序和库。
关心API设计。Spring团队投入了大量的思想和时间来制作直观的API,这些API可以在多个版本中使用,并可以使用很多年。
为代码质量设定高标准。Spring框架将重点放在有意义、最新和准确的JavaDoc上。它是少数几个可以声明在包之间没有循环依赖关系的干净代码结构的项目之一。
4.反馈和贡献
我们建议使用stackoverflow来提问、诊断或调试问题,我们还有一个问题页面,列出了建议使用的标记。如果你相当确定Spring框架中存在问题,或者希望提出一个特性,请使用github issues。
如果你有一个解决方案或建议的修复方案,你可以在Github上提交pull请求。为了留痕和供将来参考,除了一些细小的问题外,我们需要在问题跟踪中提交一个ticket,用以进行讨论。
有关更多详细信息,请参考根目录下面的CONTRIBUTING文件。
5.开始
如果你刚开始使用Spring,那么你可能希望通过创建一个基于Spring引导的应用程序来开始使用Spring框架。SpringBoot提供了一种快速(和固定)的方法来创建一个可用于生产环境的基于Spring的应用程序。它基于Spring框架,使用约定的方式而不是配置方式,旨在让你尽快启动和运行。
你可以使用startspring.io生成一个基本项目,或者遵循"入门"指南之一,例如开始构建一个RESTful Web服务。这些指
南不仅易于理解,以任务为导向,而且大多数都基于Spring boot。它们还涵盖了Spring产品组合中的其他项目,可以为你在解决特定问题时做参考。
核心技术
版本号5.1.8.RELEASE
参考文档的这一部分涵盖了Spring框架中绝对不可或缺的所有技术。
其中最重要的是Spring框架的反转控制(IOC)容器。Spring的面向方面编程(AOP)技术在彻底的改进之后的Spring 框架的IOC容器中得到了全面的应用。Spring框架有它自己的AOP框架,它在概念更易于理解,它成功地解决了Java企业编程中AOP需求的80%的热点问题。
Spring还提供了与AspectJ的集成(目前是在特性上面最丰富并且也是在Java企业空间中最成熟的AOP实现)。
【下载地址】
百度网盘链接:https://pan.baidu.com/s/1vE4M7CX--YuJoxfeqhw1DA
提取码:bcw3
相关文章
使用-JFreeChart来创建基于web的图表
XStream使用文档
WebService发布过程及常见问题
webpack实战入门进阶调优分享
weblogic调优参数及监控指标
weblogic节点管理
weblogic管理控制台概述
weblogic-部署和启动
WebLogic-Server-性能及调优-调优-Java-虚拟机
Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。
FlashFXP绿色版网盘下载,附激活教程 1782
FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具
Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1565
firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ
navicat for mysql中文绿色版网盘下载 1623
Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq
火车头采集器(旗舰版)绿色版网盘下载 1707
火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA
Photoshop(CS-2015-2023)绿色中文版软件下载 1824
安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64