44、Spring Boot 详细讲义(一)

Spring Boot 详细讲义

目录

  1. Spring Boot 简介
  2. Spring Boot 快速入门
  3. Spring Boot 核心功能
  4. Spring Boot 技术栈与集成
  5. Spring Boot 高级主题
  6. Spring Boot 项目实战
  7. Spring Boot 最佳实践
  8. 总结

一、Spring Boot 简介

1. Spring Boot 概念和核心特点

1.1、什么是 Spring Boot?

Spring Boot 是一个基于 Spring Framework 的延申项目,旨在通过简化配置和设置,帮助开发人员更快地构建、配置和部署基于 Spring 的应用程序。它通过自动配置和内嵌服务器的特性,大大减少了传统 Spring 应用的配置复杂度。

1.2、 Spring Boot 的主要特点

  • 简化配置
    Spring Boot 通过内嵌的配置文件(如 application.propertiesapplication.yml)和自动配置特性,减少了传统 Spring 项目中大量的 XML 或注解配置。
  • 自动配置
    Spring Boot 根据项目依赖自动配置 Bean 和环境。例如,添加了 spring-boot-starter-web 依赖后,Spring Boot 会自动配置嵌入式 Tomcat 服务器和 Web 应用的基础设施。
  • 内嵌服务器
    Spring Boot 内置了像 Tomcat、Jetty 和 Undertow 等常见的 Web 服务器,无需额外安装服务器即可运行 Web 应用。
  • 无需代码生成
    Spring Boot 不需要任何代码生成过程,开发者只需编写业务逻辑代码即可。
  • 生产环境友好
    Spring Boot 提供了强大的生产环境支持,包括监控、健康检查、外部化配置等功能,方便应用在生产环境中部署和管理。

2. Spring Boot 的优势

2.1、 与传统 Spring 的对比

特性 传统 Spring Spring Boot
配置复杂度 高,需要大量 XML 或注解配置 低,简化配置,自动配置为主
启动速度 较慢,需要手动配置服务器 快速,内嵌服务器
依赖管理 需要手动管理依赖版本 通过 Starter 依赖自动管理
生产环境支持 需要额外配置监控和日志 内置监控和日志功能
开发效率 较低,需要更多的配置和搭建工作 更高,快速开发和部署

2.2、 适用场景

  • 快速开发
    适合快速搭建和验证想法的开发场景。
  • 微服务
    Spring Boot 是构建微服务的首选工具,结合 Spring Cloud 可以轻松实现微服务架构。
  • API 展现
    适合快速构建 RESTful API 服务。
  • 嵌入式应用
    适合需要内嵌 Web 服务器的桌面或移动应用。

3. Spring Boot 的版本和生态

3.1、Spring Boot 与 Spring Framework 的关系

Spring Boot 是 Spring Framework 的一个扩展,两者共享相同的核心功能,但 Spring Boot 提供了更简化的配置和更高效的开发体验。

  • Spring Framework:专注于核心框架功能,如 IOC、AOP 等。
  • Spring Boot:在 Spring Framework 基础上增加了自动配置、内嵌服务器等特性,简化了应用的开发和部署。

3.2 常见的组件和工具集

  • Spring Data
    提供对数据库的简化操作,支持 JPA、MongoDB、Redis 等。
  • Spring Security
    提供安全认证和授权功能,支持 OAuth2、JWT 等。
  • Spring Cloud
    提供微服务相关的组件,如服务注册、断路器、API 网关等。
  • Spring Actuator
    提供生产环境监控和管理功能。
  • Spring Initializr
    Spring Boot 项目模板生成工具,支持 Maven 和 Gradle 项目。

3.3、 Spring Boot 的版本说明

二、Spring Boot 快速入门

1、 Spring Boot 环境搭建

1.1 Java 8 或更高版本的安装与配置

  • 安装 Java
    Spring Boot 2.x 版本要求 Java 8 或更高版本。访问 Oracle Java 官方网站,下载并安装适合的版本。
  • 配置环境变量
    安装完成后,配置 JAVA_HOMEPATH 环境变量,确保系统可以识别 Java。
    • 验证安装 :在命令行输入 java -version,查看 Java 版本。

1.2 Maven 的安装与配置

1.什么是maven

Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具.

通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。

2.Maven安装

【检查】确认已经安装jdk,已经环境变量中配置JAVA_HOME,已经修改Path

【下载】从http://maven.apache.org/download.cgi下载所需要的版本。

【解压】解压maven到某一指定目录,例如:D:\apache-maven-3.5.2,目录下会有bin、conf、lib等文件夹。

3.配置环境变量

1.右键我的电脑(或者计算机)-属性-高级系统设置-高级-环境变量-系统变量-新建MAVEN_HOME,添加maven的安装目录

2.把%MAVEN_HOME%\bin;追加到Path变量的值后面

3.检验是否成功

cmd中输入 mvn -v,会显示版本信息

4 配置仓库

maven安装好以后,我们需要配置仓库用来加载项目需要的依赖包

maven存储jar包的仓库有3种 :本地仓库,远程仓库(私服),中央仓库, 检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库 .

我们需要配置本地仓库和私服。

1.配置本地仓库

maven安装目录/conf文件夹下找到settings.xml,修改本地仓库路径(之前有仓库的设置为之前仓库的路径,没有的会自动创建文件夹,以后从私服下载下来的jar包会保存到本地仓库中)

2.配置远程仓库

一般都使用国内镜像或者公司自己搭建私服, 目的是加快下载速度

在settings.xml文件中添加远程仓库的路径

复制代码
<mirror>  
    <id>nexus-aliyun</id>  
    <mirrorOf>central</mirrorOf>    
    <name>Nexus aliyun</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
</mirror>

1.3 IDE 安装与配置

  • Eclipse

    下载并安装 Eclipse。安装完成后,需要额外安装 Spring Tools 插件以支持 Spring Boot 开发。

  • IntelliJ IDEA

    推荐使用 IntelliJ IDEA,它对 Spring Boot 有更好的支持。

    • 下载社区版(免费)或ultimate版。
    • 安装完成后,确保 Maven 或 Gradle 插件已启用。




1.4 Idea环境配置

1.idea中配置jdk

点Add New SDK,然后选择jdk的安装目录即可添加JDK。

2.idea中配置maven

idea中打开"File"-->"settings",搜索"maven",如图,配置maven目录,settings文件目录,本地仓库目录

3.idea中设置编码和代码风格

file->settings中搜索File Encoding,可以设置编码

还可以设置代码风格

如图所示,可以选择不同的代码风格,默认是Dark(黑底白字),也可以选择其它风格,白底黑字等


2、 第一个 Spring Boot 应用

2.1 使用云脚手架创建第一个项目

通过云原生脚手架创建

云原生脚手架地址:https://start.aliyun.com

1、打开云原生脚手架,在线创建springboot项目。

将下载的项目解压后在idea中打开(注意解压后多两层bootdemo目录,打开里层的)

file->open->选择项目所在的位置

项目结构如下:

  1. src/main/java/ :存放Java源代码文件
    • com.example.bootdemo:Java包名,根据实际情况可以自定义
      • BootdemoApplication.java:Spring Boot应用程序的入口类,包含main方法。
  2. src/main/resources/ :存放资源文件(脚手架没有生成,后续我们可以自己手动创建)
    • static/:存放静态资源文件,如CSS、JavaScript等
    • templates/:存放模板文件,如Thymeleaf模板文件
    • application.propertiesapplication.yml:Spring Boot应用的配置文件,包括数据库连接、端口等配置信息
  3. src/test/java/:存放测试代码
  4. pom.xml:Maven项目的配置文件,管理项目的依赖和构建等信息

默认pom中添加了springboot,test包,我们可以在pom文件中添加项目需要的其它依赖包,比如mybatis,mysql驱动,springweb等(需要的时候再加)

复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

2.2创建一个简单的 HelloWorld 控制器

在com.example.bootdemo包下创建HelloWorldController.java文件

java 复制代码
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
} 

2.3 运行和测试

通过 Maven命令运行

项目打包

项目运行:

访问测试

在浏览器中输入 http://localhost:8080/hello,查看是否返回 "Hello, Spring Boot!"。

相关推荐
我命由我123451 小时前
35.Java线程池(线程池概述、线程池的架构、线程池的种类与创建、线程池的底层原理、线程池的工作流程、线程池的拒绝策略、自定义线程池)
java·服务器·开发语言·jvm·后端·架构·java-ee
CopyLower2 小时前
分布式ID生成方案的深度解析与Java实现
java·开发语言·分布式
whoarethenext4 小时前
qt的基本使用
开发语言·c++·后端·qt
m0_684598535 小时前
如何开发英语在线训练小程序:从0到1的详细步骤
java·微信小程序·小程序·小程序开发
ml130185288745 小时前
开发一个环保回收小程序需要哪些功能?环保回收小程序
java·大数据·微信小程序·小程序·开源软件
zybishe6 小时前
免费送源码:Java+ssm+MySQL 酒店预订管理系统的设计与实现 计算机毕业设计原创定制
java·大数据·python·mysql·微信小程序·php·课程设计
anlogic7 小时前
Java基础 4.12
java·开发语言
weisian1517 小时前
Java常用工具算法-7--秘钥托管云服务2(阿里云 KMS)
java·安全·阿里云
草捏子8 小时前
主从延迟导致数据读不到?手把手教你架构级解决方案
后端
橘猫云计算机设计8 小时前
基于Python电影数据的实时分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
数据库·后端·python·信息可视化·小程序·毕业设计