没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第 1 章
Spring Boot 基础知识
距离 Java 的第一个版本已有 25 个年头,这门语言的生态在这漫长岁月里变得愈发丰富多样。
这个 Java 生态中有一个不容忽视的名字,那便是 Spring。Spring 技术极大地提高了开发人员的开
发效率,将人们从刀耕火种一下带到了工业时代。本书将介绍 Spring 这个开发利器中最锐利的锋
芒——Spring Boot。
本章主要涉及的知识点有:
Spring 与 Spring Boot 的基本概念
Spring Boot 开収环境的搭建
构建 Spring Boot 项目的基本步骤
1.1 Spring
与
Spring Boot
当学习一门技术时,先对其有一个大概的认识是非常必要的,这样对学习方向的把控很有帮
助。本节先来了解一下 Spring 与 Spring Boot 的基本概念,看看它们在开发过程将扮演什么角色,
发挥什么作用。
1.1.1 当我们谈论 Spring 时会谈论些什么
在不同的语境中 Spring 蕴含不同的含义。狭义的解释为 Spring 指 Spring Framework,因为这
是生态的核心,Spring 起源于此。但随着时间推移,社区基于 Spring Framework 构建了更多其他的
项目,这样一来,当人们说到“Spring”时,往往指的是整个 Spring 生态。
Spring 的架构如图 1.1 所示,其核心 Core Container 是一个 IoC(Inversion of Control)容器。
2
|
Spring Boot 应用开发实战
IoC 即控制反转,是一种面向对象的思想,作用在于将对象之间的依赖关系交由框架进行统一管理。
具体的实现方式是 DI(Dependency Injection,依赖注入)。简单来说,就是开发人员通过 XML 配
置或 JavaConfig 的方式将依赖关系告知容器。容器在“恰当”的时机去创建对象,而不需要开发
人员过多的关注。
图
1.1 Spring
架构图
Web 模块,指 Web 应用基础功能的集合。其中包含对文件上传的支持、使用 Servlet 监听器初
始化 IoC 容器、Web 应用上下文等内容。另外还有对基于 Servlet 开发的支持,这块在 Spring 的体
系中又被称作 Spring MVC。在第 2 章将着手构建一个 Web 应用,就离不开 Spring MVC 的支持。
Data Access/Integration,即数据访问与集成方案。JDBC、ORM、OXM 等对于数据库操作的
方案被包含其中。在这些模块当中,ORM 将会在之后的章节着重介绍。相较于 JDBC 这样基础的
数据库访问方案,使用 ORM 开发起来更为高效。ORM 是对 JDBC 的封装,将字段高效地与对象
进行映射,将对数据库的操作转换为对对象的操作。我们将在第 4 章开始学习如何利用这些工具访
问数据库。
AOP(Aspect-Oriented Programming,面向切面编程)是通过预编译方式和运行期间动态代理
实现程序功能统一维护的一种技术,是 OOP 的延续,也是 Spring Framework 中的一个重要内容,
是函数式编程的一种衍生范型。利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻
辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
Test 模块提供了 Spring 应用使用 JUnit 和 TestNG 进行单元测试和集成测试的支持。在测试过
程中能轻松读取到应用上下文,并且它具有可用于隔离测试代码的 Mock 对象。
1.1.2 什么是 Spring Boot
Spring Boot 是在 Spring 的基础上构建起来的一个项目。它基于“约定优于配置”(Convention
Over Configuration)的理念,解决了基于 Spring 开发需要繁复配置的痛点。使用 Spring Boot 进行
开发可以巧妙地选择项目所需的依赖项,对依赖中涉及的功能进行自动配置,并且能在不依赖 Web
容器的情况下一键启动,大大简化了应用的开发和部署过程。
第 1 章 Spring Boot 基础知识
|
3
以下是 Spring Boot 提供的高级功能:
自动配置:根据
“
starter
”
依赖项迚行自动配置。
独立:无需将程序部署到另外的 Web 容器,可通过 run 命令直接启动。
智能:配置中的默认值会根据依赖项自动调整。
使用 Spring Boot 可以轻松构建一个企业级的应用并且快速上线,而不用担心配置的准确性和
安全性。图 1.2 所示是 Spring Boot 与 Spring Cloud、Spring Cloud Data Flow 的关系。
图
1.2 Spring Boot
与
Spring Cloud
、
Spring Cloud Data Flow
的关系
1.1.3 Spring Boot 的优势
为什么选择 Spring Boot 而不是其他的解决方案?理由有以下几点:
(1)成熟:Spring Boot 基于 Spring Framework。Spring Framework 已经开发超过 15 年,是 J2EE
的轻量级替代方案。
(2)稳定:Spring 生态中的核心模块长期稳定运行,并且它们的更改都向后兼容。开发人员
在做版本升级的过程中,不会感到“举步维艰”。
(3)基于 JVM(Java 虚拟机):Spring 是基于 Java 的,自然依赖于 JVM。JVM 上除了 Java
之外还可以运行其他的语言,例如:Kotlin、Groovy、Scala 等,Spring Boot 同样可以使用这些语
言进行开发。
(4)由公司运作的开源项目:这意味着项目可以有规律地更新以及维护有基本的保障。
(5)云原生:Spring Boot 遵循云应用程序的部署原则,并为开箱即用的云做好了准备。它与
Spring Cloud 一起,可以轻松构建分布式系统。
(6)丰富的支持:使用 Spring 可以轻松地将应用连接到不同的关系型数据库、NoSQL、消息
队列等中间件。
(7)灵活性:使用 Spring Boot 既可以开发经典的服务端(或称为服务器端,本书统一简称为
服务端,以便具有更广义的含义)渲染 Web 应用,也可以开发 RESTful 或者其他形式的 Web-API,
甚至可以创建批处理和常规命令行应用程序。
4
|
Spring Boot 应用开发实战
1.2 Spring Boot 2.3
开发环境
在正式编码之前,还需要做一些准备工作。首要任务是挑选并搭建好
Spring Boot
开发环境。
一个基础的
Spring Boot
开发配置包括:
JDK
(
Java Development Kit
,
Java
开发工具集)、
IDE
(
Integrated
Development Environment
,集成开发环境)以及一款自动化构建工具。得益于开源社区的繁荣,这
些配置有不少备选项可供选择。挑选合适的配置是各类开发中绕不开的一个话题。
1.2.1 选择合适的 JDK
目前 Spring Boot 2.3 已对当前最新的 JDK 14 提供了支持,可以在 Spring Boot 中体验到强大又
“炫酷”的功能。不过笔者仍推荐使用 JDK 8 或 JDK 11 这两个版本,大多 Java 类库基于这些版本
构建,在学习与开发中能够少走很多弯路。除自身的版本之外,JDK 还有发行版之分。
Oracle JDK。Oracle JDK 称得上是一个经典的选择,Java 归 Oracle 所有,Oracle JDK 自然在
市场占有率上占主导地位。在 Oracle 官网即可下载到不同版本的、面向不同操作平台的 JDK
安装程序。
Liberica JDK。对一般用户而言,Liberica 算得上是最友好的 OpenJDK 収行版了。以 Windows
平台的 JDK 安装为例,许多其他収行版的 JDK 安装过程中都免不了手动配置环境变量,而
Liberica JDK 的 Windows MSI 安装包会自动配置环境变量,幵且自动关联 jar 打开方式,省
时省力。
Adopt OpenJDK。一个完全免费的 OpenJDK 版本。这个版本完全免费幵且对于 JDK 8 和 JDK
11 提供不超过 4 年的支持。
笔者以 Windows 环境下安装 Liberica JDK 8u252+9 为例,介绍 JDK 的安装步骤:
(1)打开页面 https://bell-sw.com/pages/downloads/#/java-8-lts 下载,如图 1.3 所示。
图
1.3 Liberica JDK
下载页面
第 1 章 Spring Boot 基础知识
|
5
(2)单击图中左下角的“Windows”按钮,开始 Windows 平台下的 Liberica JDK 安装包下载。
(3)MSI 格式的安装包下载完成之后,并运行安装包。其中没有需要注意的配置项,一路选
择默认项即可。
(4)运行命令行程序 cmd.exe,执行命令“java -version”,如果出现版本信息,即说明 JDK
安装成功,如图 1.4 所示。
图
1.4
验证
JDK
是否安装成功
1.2.2 选择趁手的 IDE
如果把开发人员比作士兵,那 IDE 就是士兵手中的武器,特别是 Spring Boot 开发过程中对 IDE
的依赖尤为显著。IDE 的选择也是十分丰富,下面列举几款主流的 IDE 供大家选择。
IntelliJ IDEA(以下简称:IDEA)。目前最流行的 Java IDE 乊一,提供诸多功能以提升开収人
员的开収体验。笔者在本书介绍的项目构建都是借助 IDEA 来实现的。IDEA 的索引系统是
IDEA 的特色乊一,该系统提供更智能的提示以及更便捷的操作。这款 IDE 的优点很多,还
需要读者慢慢探索。
Eclipse。曾经是市场占有率最高的 IDE 乊一,具有丰富的揑件支持,同样是一款功能强大的
IDE。Spring 社区还在 Eclipse 的基础上提供了 STS 版本(Spring Tool Suite),与 IDEA 相比
不遑多让。
Visual Studio Code(以下简称 VSCode)。严栺来说,这款工具虽然称不上是 IDE,但丰富的
揑件让它与以上两款 IDE 相比也是毫不逊色。基础的揑件选择 Java Extension Pack 以及 VS
Code 版本的 Spring Tools4 即可开始开収 Spring Boot 应用。
笔者同样以 Windows 平台安装 IDEA 2020.1.3 Community 版本为例,介绍 IDE 的安装及配置
流程:
(1)打开官网下载页面:https://www.jetbrains.com/idea/download/#section=windows,如图 1.5
所示。
剩余95页未读,继续阅读
资源评论
智光工作室
- 粉丝: 874
- 资源: 245
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功