1. Spring Boot 是什么
从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在 Java EE 开发中真正意义上的标准,但是随着 技术的发展,Java EE 使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合 第三方框架的配置问题,导致了开发和部署效率的降低。
2012 年 10 月 Mike Youngstrom 在 Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web应用程序体系结构。他谈到了在主容器引导 spring 容器内配置 Web 容器服务。这是 jira 请求的摘录:我认为Spring 的 Web 应用体系结构可以大大简化,如果它提供了从上到下利用 Spring 组件和配置模型的工具和参考 体系结构。在简单的 main()方法引导的 Spring 容器内嵌入和统一这些常用 Web 容器服务的配置。 这一要求促使了 2013 年初开始的 Spring Boot 项目的研发,到今天 Spring Boot 的版本已经到了 3.2.0。Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。 它集成了大量常用的第三方库配置,Spring Boot 应用中这些第三方库几乎可以是零配置的开箱即用 out of the box,大部分的 Spring Boot 应用都只需要非常少量的 Java 配置代码,开发者能够更加专注于业务逻辑。
2. 为什么学习 Spring Boot
2.1 从 Spring 官方来看
打开Spring 的官方网站 http://spring.io/。可以看到官方对 Spring Boot 的定位:Build Anything,Build 任何东 西。Spring Boot 旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置。同时也可以看到官方两个的 定位:
1、SpringCloud:Coordinate Anything 协调任何事情;
2、SpringCloud Data Flow:Connect everything 连接任何东西。
Spring 官网对 Spring Boot、SpringCloud 和 SpringCloud Data Flow 三者定位的措辞非常有味道,同时也可以 看出,Spring 官方对这三个技术非常重视,是现在以及今后学习的重点。
2.2 从 Spring Boot 的优点来看
1.简化配置:Spring Boot 使用自动配置机制,大大简化了开发人员的配置工作。它根据应用程序的依赖和约定,自动配置各种组件、库和功能,减少了繁琐的手动配置步骤。开发者可以更专注于业务逻辑的编写,而不是花费大量时间和精力在配置上。
2.快速开发:Spring Boot 提供了快速开发的环境和工具,使得开发人员能够更高效地构建应用程序。它支持热部署,可以在修改代码后快速重新启动应用程序,加快了开发周期。此外,Spring Boot 还内置了许多常见的功能模块和开发工具,如 Web 开发、数据库访问、安全性等,可以极大地加速应用程序的开发过程。
3.微服务支持:Spring Boot 对微服务架构提供了良好的支持。它可以帮助开发者快速构建和管理多个独立的、松耦合的微服务。Spring Boot 集成了 Spring Cloud 组件,提供了诸如服务注册与发现、负载均衡、断路器等功能,简化了微服务架构的开发和部署。
4.强大的生态系统:Spring Boot 基于 Spring 框架构建,继承了 Spring 的丰富生态系统。开发者可以直接利用 Spring 的各种功能和组件,如依赖注入、AOP、数据访问、事务管理等,进行应用程序的开发。此外,Spring Boot 还支持许多第三方库和工具,如 Thymeleaf、JUnit、Swagger 等,进一步增强了开发者的选择和灵活性。
5.优秀的社区支持:Spring Boot 拥有庞大而活跃的社区。在社区中,开发者可以获取到大量的文档、教程、示例代码和解决方案。社区经验丰富,对各种问题和需求都有相应的讨论和解决方案。这为学习和使用 Spring Boot 提供了宝贵的资源和支持。
2.3 从未来发展的趋势来看
微服务是未来发展的趋势,项目会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小 范围的工作职责、使用独立的技术、更安全更频繁地部署。而继承了 Spring 的优良特性,与 Spring 一脉相承, 而且支持各种 REST API 的实现方式。Spring Boot 也是官方大力推荐的技术,可以看出,Spring Boot 是未来 发展的一个大趋势。
3.Spring Boot 开发环境
1. jdk 的配置
使用 IDEA 进行开发,在 IDEA 中配置 jdk 的方式很简单,打开 File->Project Structure
1. 选择 SDKs
2. 在 JDK home path 中选择本地 jdk 的安装目录
3. 在 Name 中为 jdk 自定义名字 通过以上三步骤,即可导入本地安装的 jdk。如果是使用 STS 或者 eclipse 可以通过两步骤添加:
1、window->preference->java->Instralled JRES 来添加本地 jdk。
2、window-->preference-->java-->Compiler 选择 jre,和 jdk 保持一致。
2. Spring Boot 工程的构建
2.1 IDEA 快速构建
IDEA 中可以通过 File->New->Project 来快速构建 Spring Boot 工程。选择 Spring Initializr,在 Project SDK 中 选择刚刚导入的 jdk,点击 Next,到了项目的配置信息。
Group:填企业域名,一般采用域名反装的方式定义,例如使用 com.xxx
Artifact:填项目名称,例如工程名 demo,如果项目规模较大这里可能会采用模块名称
Dependencies:可以添加项目中所需要的依赖信息,根据实际情况来添加,这里只需要选择 Web 即可。
2.2 官方构建
第二种方式可以通过官方构建,步骤如下:
1、访问 http://start.spring.io/或者 http://start.aliyun.com/。
2、在页面上输入相应的 Spring Boot 版本、Group 和 Artifact 信息以及项目依赖,然后创建项目。
3、下载解压后,使用 IDEA 导入该 maven 工程:File->New->Model from Existing Source,然后选择解 压后的项目文件夹即可。如果是使用 eclipse 可以通过 Import->Existing Maven Projects->Next,然后选择解 压后的项目文件夹即可。
2.3maven配置
创建 Spring Boot 项目后需要进行 maven 配置。打开 File->settings,搜索 maven,配置一下本地的 maven 信 息。 在 Maven home directory 中选择本地 Maven 的安装路径;在 User settings file 中选择本地 Maven 的配置文件 所在路径。在配置文件中配置一下国内阿里的镜像,这样在下载 maven 依赖时,速度很快。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
如果是使用 eclipse 可以通过 window-->preference-->Maven-->User Settings 来配置,配置方式和上面一致。
2.4 编码配置
同样地新建项目后,一般都需要配置编码,这点非常重要,很多初学者都会忘记这一步,所以要养成良好的习惯。
IDEA 中仍然是打开 File->settings,搜索 encoding,配置一下本地的编码信息。 如果是使用 eclipse 有两个地方需要设置一下编码:
1、window--> perferences-->General-->Workspace,将 Text file encoding 改成 utf-8
2、window-->perferences-->General-->content types,选中 Text,将 Default encoding 填入 utf-8
这样编码设置完成即可启动项目工程了。
3. Spring Boot 项目工程结构
Spring Boot 项目总共有三个模块
src/main/java 路径:主要编写业务程序
src/main/resources 路径:存放静态文件和配置文件
src/test/java 路径:主要编写测试程序
默认情况下会创建一个启动类 Demo01Application,该类上面有个@SpringBootApplication 注解,该启动类中 有个 main 方法,Spring Boot 启动只要运行该 main 方法即可,非常方便。另外 Spring Boot 内部集成了 tomcat, 不需要人为手动去配置 tomcat,开发者只需要关注具体的业务逻辑即可。