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。它是极少数可以声明干净代码结构且程序包之间没有循环依赖关系的项目之一。

可以使用 网站 快速生成一个基本项目

20191224 Spring官方文档(Overview)的更多相关文章

  1. 20191224 Spring官方文档(Core 1.1-1.4)

    1. IoC容器 1.1.Spring IoC容器和Bean简介 org.springframework.beans和org.springframework.context包是Spring框架的IoC ...

  2. 20191224 Spring官方文档(启动)

    再学Spring 之前看过Spring教学视频,看过<Spring5高级编程>,但是对于Spring始终还是感觉差了一点,应该是底层没有学好,这次再学Spring,就是要将Spring底层 ...

  3. spring官方文档中文版

    转 http://blog.csdn.net/tangtong1/article/details/51326887 spring官方文档:http://docs.spring.io/spring/do ...

  4. 转 spring官方文档中文版

    转 http://blog.csdn.net/tangtong1/article/details/51326887另附码云地址 https://gitee.com/free/spring-framew ...

  5. spring 官方文档-片段学习——webflux-ann-controller

    spring 官方文档-片段学习总结 片段所在连接:https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-referenc ...

  6. Spring官方文档下载

    Spring框架是目前最流行的java web开发框架,很多时候,我们需要去查看spring的官方文档,这里就简单介绍下如何下载其官方文档. 1.搜索到spring 官网并进入 2.点击DOCS 3. ...

  7. Spring官方文档

    官网里还真不好找,编译的时候pdf版还没编译成功,这里记录下 http://docs.spring.io/spring/

  8. spring 官方文档

    英文 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ 翻译(1-6章) http:// ...

  9. Spring 官方文档笔记---Bean

    In Spring, the objects that form the backbone of your application and that are managed by the Spring ...

随机推荐

  1. 【JZOJ5430】【NOIP2017提高A组集训10.27】图

    题目 有一个n个点的无向图,给出m条边,每条边的信息形如\(<x,y,c,r>\) 给出q组询问形如\(<u,v,l,r>\) 接下来解释询问以及边的意义 询问表示,一开始你在 ...

  2. maven项目创建5 service层整合

    创建service相关文件 创建applicationContext-service.xml文件 <?xml version="1.0" encoding="UTF ...

  3. 614A - Link/Cut Tree 数乘

    A. Link/Cut Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  4. 计蒜客T2202 数三角形(提高组2017模拟赛(三)day2T3) LZOJ3878攻略

    今天模拟赛考了一道计蒜客NOIP2017模拟赛(三)day2T3的数三角形,原题链接 https://nanti.jisuanke.com/t/T2202 ,LZOJ3878攻略.场上想了很久都没转化 ...

  5. 实体字符转换,同样变量密码加盐MD5后生成的加密字符串不同解决办法 (原)

    我是首次登录系统自动生成一个密码,格式大概是:   abcd1234&  这种格式 , 比如加密规则就是一个 MD5() 然后,首次账号密码登录,输入密码 abcd1234&,一直提示 ...

  6. Dynamic Web Module 2.3 change to 3.0 maven工程解决办法

    pom.xml <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <a ...

  7. 安装OpenCV 3 on Raspbian Jessie

    环境: 硬件:树莓派三代B型, 5MP Camera Board Module 软件:Raspbian,Opencv 安装依赖 $ sudo apt-get update   $ sudo apt-g ...

  8. 一致性Hash 分析和实现

    一致性Hash 分析和实现 ---title: 1.一致性Hashdate: 2018-02-05 12:03:22categories:- 一致性Hash--- 一下分析来源于网络总结:算法参照自己 ...

  9. Git 合并两个分支内容

    1,将开发分支代码合入到master中 git checkout dev #切换到dev开发分支 git pull git checkout master git merge dev #合并dev分支 ...

  10. jquery 登录判断遇到的小问题

    1.碰到的第一个问题是: 往body上加载check,用load不管用,可以用ready试试. 2.原来jquery里获取用的val(),我一直以为是value()... 尴尬 3.两个标志位是为了判 ...