Spring Framework 5.0 入门教程

时间:2021-05-20

1.为什么学习Spring?

随着对Java EE的不断接触和理解,你会发现Spring 在各个企业和项目中发挥着越来越重要的作用。掌握Spring 已成为我们IT行业生存必学的本领之一。

  • Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。
  • 该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的代码,最初由Rod Johnson和Juergen Hoeller等开发。
  • Spring Framework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
  • Spring Framework 当前最新版本是Spring Framework 5,当你打开官网,你应该能够看到官网的宣传图片

    这里有个相关的新闻有兴趣可以看下, 英文原版地址点击查看 中文版点击查看

    根据官网动态和我所了解的信息来看,Spring 官网还会继续支持Spring MVC,因为它还有很多改进的地方。

    但是未来的趋势我认为必将是Spring Boot+ SpringWeb Flux + Spring Cloud.

    那么Spring MVC 和 Spring Web Flux 两者有何区别呢?

    官网对此给出了这样一张对比图:

    翻译下就是:

  • Spring MVC基于servlet API构建,并使用一个同步阻塞I / O体系结构和一个单线程请求线程模型的Web 框架
  • Spring WebFlux是一个非阻塞的Web框架,从该组建立起,利用多核,下一代处理器和大量并发连接。
  • 总结:

  • Spring MVC 是基于Servlet API 构建的同步阻塞式I/O 的Web 框架。
  • Spring WebFlux 是一种更优秀的非阻塞式Web框架,而且能更好处理大量并发连接。
  • 看到这里,相信此时聪明的你应该晓得为什么我之前会那么说了吧。

    2. Spring官网介绍

    Spring 官网: https://spring.io/ Spring

    文档: https://spring.io/guides

    Spring IDE: https://spring.io/tools/sts

    Spring Project: https://spring.io/projects

    项目快速生成器: https://start.spring.io/

    上面这些链接相信很多人都知道,但是其实往往我们不是很清楚什么时候用哪个链接。

    Spring 官网: 关注Spring 官网动态,最新的Spring 技术和版本发布公告

    Spring 文档: what you want to do ? 你想开发一个什么样的项目?可以在这里快速找到相关介绍和文档。

    Spring IDE: 如果你打算用Eclipse 版本,那么我推荐用 官网这个STS,因为它应该是最友好支持Spring的Eclipse 版本。当然,如果如果条件可以,我还是强烈推荐你使用Intellij Idea.

    Spring Project: 这里是按照项目模块划分的,比如 从配置到安全,Web应用程序到大数据,想学习哪个就按照分类去学即可。

    项目生成器:这里是Spring 官网提供的一个非常便利的工具,需要哪些依赖,哪个版本,在这里配置下然后下载即可。

    3. Spring Framework

    Spring Framework核心支持依赖注入,事务管理,Web应用程序,数据访问,消息传递,测试和更多

    Tips:这里讲述的是翻译 https://projects.spring.io/spring-framework/ 上面的内容

    3.1 介绍

    Spring框架为现代基于Java的企业应用程序提供了一个全面的编程和配置模型 - 在任何类型的部署平台上。

    Spring的一个关键元素是应用程序级别的基础架构支持:Spring着重于企业应用程序的“管道”,以便团队可以专注于应用程序级业务逻辑,而不必与特定部署环境形成不必要的联系。

    3.2 功能特点

  • 核心技术:依赖注入,事件,资源,i18n,验证,数据绑定,类型转换,SpEL,AOP。
  • 测试:模拟对象,TestContext框架,Spring MVC测试,WebTestClient。
  • 数据访问:事务,DAO支持,JDBC,ORM,编组XML。
  • Spring MVC和Spring WebFlux Web框架
  • 整合:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
  • 语言:Kotlin,Groovy,动态语言。
  • Tips:这里加一张官网文档中的一个截图吧,相信有助于你更好地理解。

    3.3 最低要求

  • JDK 8+ for Spring Framework 5.x
  • JDK 6+ for Spring Framework 4.x
  • JDK 5+ for Spring Framework 3.x
  • Tips: 所以你的电脑现在推荐使用 JDK1.8+

    3.4 快速开始

    在项目中开始使用spring-framework的推荐方法是使用依赖管理系统 - 下面的代码片段可以复制并粘贴到您的构建中。

    需要帮忙? 请参阅我们有关使用 Maven 和 Gradle 构建的入门指南。

    其实不止Spring 官网我们如今的各大公司应该大多数也推荐我们是用Maven和Gradle 来管理项目Jar包依赖。

    如果你使用的Maven:

    <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId> spring-context</artifactId> <version>5.1.0.BUILD-SNAPSHOT</version> </dependency></dependencies><repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/libs-snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository></repositories>

    如果你是用的是Gradle

    dependencies { compile 'org.springframework: spring-context:5.1.0.BUILD-SNAPSHOT'}repositories { maven { url 'https://repo.spring.io/libs-snapshot' }}

    Tips: 其实我觉得Gradle应该是一种比Maven更先进的版本依赖管理工具,不过如今各大公司使用Gradle 似乎还不是很多,也许是与因为Eclipse 对Gradle 的支持还不够像Intellij Idea 那么完美吧。

    Spring框架包含许多不同的模块。 这里我们展示了提供核心功能的spring-context。 有关其他选项,请参阅右侧的入门指南。

    一旦你使用spring-context依赖关系设置你的构建,你就可以做到以下几点:

    到这里后官网有些不详细,补充下。

    方法一: 使用STS 工具构建这个带有Spring-context 上下文的项目

    准备工作:

  • JDK 1.8
  • STS IDE
  • Tips: 下载的时候有个坑注意下,如果你的JDK是64位,默认直接下载的STS是32位,会出现这个错误。

    所以下载的时候一定要下载JDK匹配的版本才行,移步: https://spring.io/tools/sts/all

    这里下载完成后我们在我们的IDE空白处,右键——> New——> Other...

    输入maven 搜索,选择Maven Project,创建一个Maven项目

    选择默认的工作空间

    选择默认的类型

    输入项目基本信息后点击Finish 完成

    然后我们应该可以看到这样的项目结构

    首先修改pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ponents

    org.springframework

    spring-tx

    Transaction infrastructure, including DAO support and JCA integration

    org.springframework

    spring-web

    Foundational web support, including web client and web-based remoting

    org.springframework

    spring-webmvc

    HTTP-based Model-View-Controller and REST endpoints for Servlet stacks

    org.springframework

    spring-webmvc-portlet

    MVC implementation to be used in a Portlet environment

    org.springframework

    spring-websocket

    WebSocket and SockJS infrastructure, including STOMP messaging support

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章