Spring Boot:筑基

发布于:2024-04-19 ⋅ 阅读:(25) ⋅ 点赞:(0)

在这里插入图片描述

前言

在学习 Spring 、SpringMVC 、MyBatis 和 JPA 框架的过程中,了解到 SSM 框架为 Java Web 开发提供了强大的后端支持,JPA 框架则简化了数据库的操作。然而,SSM 框架需要手动配置大量 XML 文件,JPA 框架也需要处理繁琐的配置和整合工作。

Spring Boot 框架继承了 SSM 框架和 JPA 框架的优点,并在此基础上进行了优化和扩展。其可以通过自动配置和起步依赖,极大地简化了配置工作。同时,Spring Boot 整合了 Servlet 容器,无需额外配置即可运行 Web 应用程序,还提供了丰富的命令行界面和监控管理功能,方便开发者对应用程序进行测试、调试和监控。总体来说,Spring Boot 的生态系统是非常完善的,与各种技术和框架都能很好地集成。

简而言之,Spring Boot 能够进一步简化开发过程,提高开发效率,同时提供了强大的功能和生态系统支持。对于希望快速构建稳定可靠系统的开发者来说,Spring Boot 无疑是一个不可多得的好工具。在完成 SSM 和 JPA 框架的学习后,再学习 Spring Boot 框架是一个自然而然的进阶过程。下面简单介绍 Spring Boot 框架的基础知识。

概述

Spring Boot,是基于 Spring 框架的延伸,是一个旨在简化 Spring 应用程序初始搭建以及开发过程的工具。其设计目标是让开发者能够尽可能快速地搭建 Spring 应用程序,并尽可能减少配置文件的使用,使得开发者能够更专注于业务逻辑的实现。

在这里插入图片描述

Spring Boot 主要功能

  • 自动配置:Spring Boot 的核心特性之一,其可以根据项目中的 jar 包、类和其他依赖项,自动为 Spring 应用程序中的组件进行配置,极大地减少了手动配置的工作量。
  • 起步依赖:Spring Boot 提供了大量的起步依赖( starter ),这些起步依赖预装了常用的库和框架,使得开发者能够快速地集成所需的功能,而无需手动添加大量的依赖项。
  • 内嵌 Servlet 容器:Spring Boot 可以内嵌 Servlet 容器(如 Tomcat 、Jetty 或 Undertow 等),这使得开发者无需部署到外部的 Servlet 容器中,而是可以直接运行 Spring Boot 应用程序。
  • 简化数据库操作:Spring Boot 可以方便地集成各种 SQL 和 NoSQL 数据库(如 MySQL 、Oracle 、MongoDB 和 Redis 等)。通过集成 Spring Data JPA 或 MyBatis 等持久层框架,可以简化数据库操作。
  • 缓存支持:Spring Boot 提供了对各种缓存技术的支持(如 Ehcache 、Redis 、Memcached 和 Hazelcast 等),这些技术可以用来提高应用程序的性能。
  • 日志管理:Spring Boot 提供了强大的日志框架,可以方便地进行日志的管理和记录,帮助开发者更好地追踪和调试应用程序中的问题。
  • 任务调度:Spring Boot 支持使用 Spring Task 和 Quartz 等任务调度框架,实现定时任务和异步任务。
  • 邮件发送:Spring Boot 内置了邮件发送的支持,可以方便地实现邮件发送功能。
  • 页面渲染:Spring Boot 支持多种页面渲染技术(如 Thymeleaf 、FreeMarker 和 JSP 等),使得开发者可以轻松地创建和展示动态页面。
  • 模块化开发:在 Spring Boot 项目中,通常会有多个模块,如 Entity(实体层)、Dao(数据访问层)、Service(服务层)、Controller(控制层)和 Utils(工具层) 等,这些模块各司其职,使得开发过程更加清晰和模块化。

使用 Intellij idea 快速创建 Spring Boot 项目

在项目开发中,通常使用 Intellij idea 来快速创建一个 Spring Boot 项目(以 Intellij idea 2023.3.3 、JDK 20.0.2 、Maven 3.8.1 、Spring Boot 3.0.2 为例)。

注:如果自身的 IntelliJ IDEA 版本过低,建议安装新版本的 IntelliJ IDEA ,否则可能出现比较难解决且不必要的麻烦。

简单示例:

1. 打开 Intellij idea ,点击 New Project ,创建新项目
在这里插入图片描述

2. 根据自身偏好设置项目的信息

注:
Server URL 设置为 https://start.aliyun.com ,可选择更低版本的 Java .
Type 设置为 Maven .
JDK 中可以选择下载 1.8 以上版本的 JDK .

在这里插入图片描述

3. 选择 Spring Boot 3.0.2 ,并勾选 Web 中的 Spring Web ,以其为例,点击 Create

注:
这个是 Spring Boot 起步依赖的功能
勾选的为启动器( Starter ),是一组预定义的依赖集合,会为项目提供了一系列的自动配置。

常见的 Spring Boot 启动器:

  • spring-boot-starter-web:用于构建 Web 应用,包括 Spring MVC 和 Tomcat 。
  • spring-boot-starter-data-jpa:用于使用 JPA 进行数据库操作。
  • spring-boot-starter-thymeleaf:用于使用 Thymeleaf 模板引擎。
  • spring-boot-starter-security:用于添加 Spring Security 安全功能。
  • spring-boot-starter-amqp:用于添加 AMQP 消息代理支持。
  • spring-boot-starter-cloud-connectors:用于与 Spring Cloud Connectors 集成。

每个启动器都包含了一系列与特定功能相关的库,以及必要的自动配置代码。

在这里插入图片描述

4. 创建完成后,可以将部分文件删除,并创建项目可能所需要的文件
项目目录结构如图:

注:
resources 目录结构中,static 用于存放静态资源文件;templates 用于存放视图模板;application.properties 为 Spring Boot 全局配置文件,可修改配置,但文件名不可修改

5. 最后启动
在这里插入图片描述

结果如图:
在这里插入图片描述

注意事项

开始使用的是 IntelliJ IDEA 2018.3.6 x64 版本,出现了如下问题:

  1. Artifact contains illegal characters
    原因:该版本中 Artifact 内容需要为小写,大写会报错。

  2. Error: Request failed with status code 500
    在这里插入图片描述
    原因:Type 选项中没有选择 Maven 。

  3. 项目创建完成后,但 pom.xml 中部分标签内容会报红,没有成功创建(尝试多种方法,暂无法解决,建议安装新版本的 IntelliJ IDEA )
    在这里插入图片描述

  4. 如果在旧版本 idea 中重新创建项目,将 Initializr Service URL 选择为 https://start.aliyun.com/ ,也会报错,暂无法成功创建 Spring Boot 项目。
    在这里插入图片描述
    原因:可能是 IntelliJ IDEA 2018 版本比较旧,不支持当前阿里云 Spring Initializr 服务的某些特性或格式。还是建议安装新版本的 IntelliJ IDEA 。新版本的 IDEA 可能已经修复了与当前 Spring Initializr 服务兼容性的问题。