快速入门:使用 Spring Boot 构建 Web 应用程序

前言

本文将讨论以下主题:

  1. 安装 Java JDK、Gradle 或 Maven 和 Eclipse 或 IntelliJ IDEA
  2. 创建一个新的 Spring Boot 项目
  3. 运行 Spring Boot 应用程序
  4. 编写一个简单的 Web 应用程序
  5. 打包应用程序以用于生产环境

通过这些主题,您将能够开始使用 Spring Boot 并创建自己的 Web 应用程序。

文章目录

    • 前言
    • 介绍
      • Spring Boot简介
      • 为什么选择Spring Boot
    • 准备工作
      • 安装Java JDK
      • 安装Gradle或Maven
        • 安装Gradle
        • 安装Maven
      • 安装Eclipse或IntelliJ IDEA
        • 安装Eclipse
        • 安装IntelliJ IDEA
    • 创建Spring Boot项目
      • 使用 Maven 构建 Spring Boot 项目
        • 分析项目结构
        • 运行应用程序
        • Whitelabel
      • 使用 Gradle 构建 Spring Boot 项目
        • 分析项目结构
        • 运行应用程序
    • 编写第一个Web应用程序
      • 使用 Maven
      • 使用 Gradle
      • 打包成可执行jar包
      • 实现热部署
        • spring-boot-devtools
      • Maven的常用命令:
    • 总结

介绍

Spring Boot是一个用于构建基于Spring的应用程序的框架。它通过提供一些默认配置和约定来简化开发过程,使得构建可独立运行的、生产级别的应用程序变得更加容易。

Spring Boot简介

Spring Boot是Spring框架的扩展版本,可以帮助开发者更快地创建基于Spring的应用程序。与传统的Spring开发相比,Spring Boot采用了自动配置机制,可以省去大量繁琐的配置,同时还提供了很多常用功能的依赖库,例如Web、JPA、数据源等。

为什么选择Spring Boot

相对于其他Java开发框架,Spring Boot有以下优点:

  • 快速开发:使用Spring Boot可以快速搭建一个Web应用程序,并具有一些默认的配置,例如自动配置数据源、日志、信息视图等。
  • 易于部署:Spring Boot应用程序可以打成jar包或war包并独立运行,这样就不需要安装Tomcat或其他Web服务器。
  • 社区活跃:Spring Boot拥有庞大的社区支持,提供了丰富的文档和示例代码,方便开发者学习和使用。

非常感谢您的反馈,以下是更加详细的安装步骤:

准备工作

在开始创建Spring Boot项目之前,需要安装并配置好以下软件:

  • Java JDK:Java开发环境
  • Gradle或Maven:构建工具,用于管理项目依赖项和构建过程
  • Eclipse或IntelliJ IDEA:集成开发环境,用于编写和调试代码

安装Java JDK

首先需要安装Java JDK,可以从官方网站下载对应版本的JDK进行安装。建议选择最新的稳定版JDK。
JAVA8
在这里插入图片描述

你可以根据大多数教程先配置JAVA_HOME,然后再去系统变量path中添加%JAVA_HOME%\bin
在这里插入图片描述
也可以直接添加bin完整目录
在这里插入图片描述
查看版本

java -version

安装Gradle或Maven

接下来需要安装Gradle或Maven。Gradle是一种基于Groovy语言的构建工具,而Maven是一种基于XML的构建工具。两者都可以用于管理项目依赖项和构建过程,这里介绍其中一种。

安装Gradle

Gradle是一个构建工具,面向开发者的脚本语言是Groovy和Kotlin这里不做过多介绍

  1. 下载Gradle二进制文件:访问Gradle官网,下载最新的Gradle二进制文件。
  2. 解压缩Gradle二进制文件:将下载的Gradle二进制文件解压缩到任意目录中。
  3. 配置环境变量:将Gradle的bin目录添加到系统的环境变量PATH中,确保可以在命令行中使用Gradle。
  4. 通过 gradle -v 来查看版本。
安装Maven
  1. 下载Maven二进制文件:访问Maven官网,下载最新的Maven二进制文件。
  2. 解压缩Maven二进制文件:将下载的Maven二进制文件解压缩到任意目录中。
  3. 配置环境变量:将Maven的bin目录添加到系统的环境变量PATH中,确保可以在命令行中使用Maven。
  4. 通过 mvn -v 来查看版本。

安装Eclipse或IntelliJ IDEA

最后需要安装一个集成开发环境(IDE),如Eclipse或IntelliJ IDEA。

安装Eclipse
  1. 下载Eclipse:访问Eclipse官网,下载最新的Eclipse IDE for Java Developers。
  2. 解压缩Eclipse:将下载的Eclipse压缩包解压缩到任意目录中。
  3. 启动Eclipse:执行Eclipse根目录下的eclipse.exe文件,启动Eclipse。

以上就是安装Java JDK、Gradle或Maven、Eclipse或IntelliJ IDEA的具体步骤。如果您已经完成了上述步骤,就可以开始创建Spring Boot项目了。
非常感谢您的反馈,以下是对IntelliJ IDEA的安装教程和如何通过cmd查看Java JDK、Gradle、Maven版本的介绍:

安装IntelliJ IDEA

IntelliJ IDEA是一种常用的Java开发IDE,可以从官方网站JetBrains官网下载适合自己电脑的版本进行安装。根据操作系统选择对应的版本进行下载,然后按照向导进行安装即可。

创建Spring Boot项目

Spring Initializr是一个web应用程序,用于生成基于Spring Boot的新项目,我们可以直接访问它的网站Spring Initializr进行使用。下面将演示如何使用Spring Initializr创建一个新项目。

  1. 打开Spring Initializr网站
  2. 选择“Project”页面,选择构建工具和Spring Boot版本
  3. 选择“Dependencies”页面,添加所需依赖项
  4. 点击“Generate”按钮以生成项目框架
.
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/demo/
│   │   │       └── DemoApplication.java
│   │   └── resources/
│   │       ├── application.properties
│   │       └── static/
│   └── test/
│       ├── java/
│       │   └── com/example/demo/
│       │       └── DemoApplicationTests.java
│       └── resources/
│           └── application_test.properties
├── pom.xml
└── README.md

使用 Maven 构建 Spring Boot 项目

在这里插入图片描述

分析项目结构

使用Maven构建Spring Boot项目时,它将使用标准的Maven目录结构:

├── src
│   ├── main
│   │   ├── java            # Java源代码
│   │   └── resources       # 配置文件、资源文件等
│   └── test
│       ├── java            # 测试代码
│       └── resources       # 测试配置文件、资源文件等
└── pom.xml                  # Maven项目描述文件

pom.xml中添加spring-boot-starter-parent作为父依赖项,这将提供Spring Boot所需的所有默认设置。还可以添加其他任何需要的依赖项。例如,在本例中,我们将添加Web依赖项。

<project xmlns="http://maven.apache.org/POM/4.0.0"<!--...--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>{spring-boot-version}</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
</project>
运行应用程序

使用Maven运行Spring Boot应用程序很容易。只需要执行以下命令即可:

mvn spring-boot:run

IntelliJ IDEA maven配置
在这里插入图片描述

Whitelabel

这将启动应用程序并在控制台中输出应用程序的日志信息。当应用程序启动后,可以在Web浏览器中访问localhost:8080查看结果。
在这里插入图片描述

因为应用程序没有正确处理Web请求而导致了Whitelabel错误。按照以下步骤可以解决该问题:

  1. 确认404页面是Spring Boot的默认错误页面,表示我们的请求在Web服务中不存在。

  2. 创建一个新的控制器类,并添加相应的方法来处理Web请求。例如,在您的项目中创建一个名为HelloController的类,实现以下功能:

    • 响应/hello请求。
    • 返回“hello, springboot”。
  3. 修改HelloController类并导入所需的依赖项,如下所示:

package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class HelloController {@GetMapping("/hello")@ResponseBodypublic String hello() {return "hello, springboot";}}

在这里插入图片描述

  1. 重新启动应用程序并访问http://localhost:8080/hello,您应该会看到类似于“hello, springboot”的消息。如果能正常响应,则说明问题已经解决了。

在这里插入图片描述

使用 Gradle 构建 Spring Boot 项目

Gradle是一个构建工具,面向开发者的脚本语言是Groovy和Kotlin这里不做过多介绍

分析项目结构

使用Gradle构建Spring Boot项目时,它将使用标准的Gradle目录结构:

├── build.gradle      # Gradle项目描述文件
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── settings.gradle   # Gradle项目设置文件
├── src
│   ├── main
│   │   ├── java      # Java源代码
│   │   └── resources # 配置文件、资源文件等
│   └── test
│       ├── java      # 测试代码
│       └── resources # 测试配置文件、资源文件等

build.gradle中添加spring-boot-starter作为依赖项,这将提供Spring Boot所需的所有默认设置。还可以添加其他任何需要的依赖项。例如,在本例中,我们将添加Web依赖项。

plugins {id 'java'id 'org.springframework.boot' version '{spring-boot-version}'
}dependencies {implementation 'org.springframework.boot:spring-boot-starter-web'
}
运行应用程序

使用Gradle运行Spring Boot应用程序很容易。只需要执行以下命令即可:

./gradlew bootRun

这将启动应用程序并在控制台中输出应用程序的日志信息。当应用程序启动后,可以在Web浏览器中访问localhost:8080查看结果。

编写第一个Web应用程序

使用 Maven

创建一个名为DemoController的类,它将处理来自Web浏览器的HTTP请求,并返回一条消息。

@RestController
public class DemoController {@GetMapping("/hello")public String hello() {return "Hello World";}
}

与使用Gradle时相同,@RestController注解表示这个类将处理HTTP请求,并且@GetMapping注解表示这个方法将处理HTTP GET请求。在这种情况下,当用户访问/hello时,将调用hello()方法并返回一个字符串。

现在,重新启动应用程序并在Web浏览器中访问localhost:8080/hello,您应该看到一个包含"Hello World"消息的响应。

使用 Gradle

创建一个名为DemoController的类,它将处理来自Web浏览器的HTTP请求,并返回一条消息。

@RestController
public class DemoController {@GetMapping("/hello")public String hello() {return "Hello World";}
}

@RestController注解表示这个类将处理HTTP请求,并且@GetMapping注解表示这个方法将处理HTTP GET请求。在这种情况下,当用户访问/hello时,将调用hello()方法并返回一个字符串。

现在,重新启动应用程序并在Web浏览器中访问localhost:8080/hello,您应该看到一个包含"Hello World"消息的响应。

打包成可执行jar包

我们还可以将Spring Boot应用程序打包成可执行的jar文件。在pom.xml或build.gradle文件中添加以下插件依赖:

使用Maven:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

使用Gradle:

plugins {id 'org.springframework.boot' version '2.5.1'
}bootJar {enabled = true
}

然后执行以下命令进行打包:

  • 使用Maven:
mvn package

mvn packagemvn clean package都是Maven命令,用于构建项目并生成可执行的JAR或WAR文件。

mvn package会执行以下步骤:

  1. 编译源代码
  2. 运行单元测试
  3. 打包编译后的代码到JAR或WAR文件中

mvn clean package则会在执行以上步骤之前先执行清理操作,即删除已经生成的目标文件夹以及其他编译产生的临时文件。然后再执行上述步骤。

因此,mvn clean packagemvn package更加彻底,可以确保您得到最新的编译结果。如果您在编译过程中遇到了问题,并且认为这些问题可能与缓存数据有关,则可以尝试使用mvn clean package来解决这些问题。

总之,mvn clean package相对于mvn package会花费更多的时间,但通常会更安全、更可靠,可以防止一些不必要的错误。

  • 使用Gradle:
gradlew build

打包完成后,可以在target/目录下找到生成的可执行jar文件。要运行jar文件,请使用以下命令:

java -jar target\demo-0.0.1-SNAPSHOT.jar 

实现热部署

对于开发人员而言,热部署是一个非常有用的功能,可以避免频繁重启应用程序。Spring Boot提供了两种方式实现热部署:使用spring-boot-devtools和JRebel插件。

spring-boot-devtools

spring-boot-devtools是一个内置的开发者工具,可以自动检测代码更改并重新加载应用程序。要使用spring-boot-devtools,只需在pom.xml或build.gradle中添加以下依赖项:

使用Maven:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>
</dependencies>

使用Gradle:

dependencies {developmentOnly 'org.springframework.boot:spring-boot-devtools'
}

启用IDEA的“Make Project Automatically”选项。在IDEA中,可以通过选中菜单栏的"File -> Settings -> Build, Execution, Deployment -> Compiler"来启用自动构建。

在IDE中启动应用程序并进行调试时,任何更改都会自动重新加载应用程序。
你需要先打开自动构建项目
在这里插入图片描述
在这里插入图片描述
Debug模式在这里插入图片描述启动后,在这里插入图片描述即可自动检测代码更改并重新加载应用程序

在这里插入图片描述

Maven的常用命令:

  1. mvn dependency:purge-local-repository:该命令将从本地存储库中删除所有已解析的依赖项和插件。这对于解决依赖项版本冲突或清理本地存储库非常有用。

  2. mvn dependency:tree:该命令将以树形结构显示项目依赖项及其传递依赖项。这对于检查依赖项版本、冲突或排除不需要的依赖项非常有用。

  3. mvn dependency:list:该命令将列出当前项目的所有依赖项。它与 mvn dependency:tree 不同之处在于,它只列出直接依赖项而不显示传递依赖项。

  4. mvn dependency:resolve:该命令将解析并下载所有项目依赖项,但不会将它们复制到本地存储库中。

  5. mvn dependency:analyze:该命令将分析项目依赖项并生成报告,其中包含未使用的依赖项和可能产生潜在问题的依赖项。

这些命令可以帮助你管理项目依赖项,解决依赖项相关问题,并确保项目的稳定性和可靠性。

总结

通过本文,您已经了解了如何使用Spring Boot创建Web应用程序。我们首先讨论了Spring Boot的基础知识,然后介绍了如何设置您的开发环境。接下来,我们演示了如何使用Maven和Gradle构建Spring Boot项目,并分析了项目的结构。最后,我们编写了一个简单的Web应用程序,并演示了如何打包成可执行jar包和实现热部署。

我们希望本文对您有所帮助,使您能够以更快、更轻松的方式创建优秀的Spring Boot Web应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle (9)Storage Relationship Strut

Storage & Relationship Strut 存储和关系支柱 目标&#xff1a; 描述数据库的逻辑结构列出段类型其用途列出控制块空间使用的关键字获取存储结构信息 一、基础知识 1、数据库逻辑结构图 2、Types of Segments 段的类型 3、Storage Clause Precedence 存储条款的优先顺序 …

Spring Cloud之Docker的学习【详细】

目录 Docker 项目部署问题 总结 镜像与容器 Docker的安装 Docker基本操作 镜像相关命令 拉取镜像 镜像保存 删除镜像 镜像加载 容器相关命令 删除容器 数据卷 数据卷命令 数据挂载 自定义镜像 Dockerfile 案例 Docker-Compose Compose文件 Docker-Compos…

Termux SFTP如何实现远程文件传输

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP&#xff08;SSH File Transfer Protocol&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;安全协议的文件传输协议。与FTP协议相比&#xff0c;SFTP使用了…

CN考研真题知识点二轮归纳(3)

持续更新&#xff0c;上期目录&#xff1a; CN考研真题知识点二轮归纳&#xff08;2&#xff09;https://blog.csdn.net/jsl123x/article/details/134111760?spm1001.2014.3001.5501 1.TCP/IP 名称&#xff1a;传输控制协议/网络协议&#xff0c;是一个协议族&#xff0c;主…

管网智慧化建设能为管网提供哪些优势?第3点特别值得注意!

关键词&#xff1a;智能管网、智慧管网、智慧管网建设、智慧燃气、气管网压力监测解决方案 随着信息技术的不断发展&#xff0c;数字城市的发展正在快速向智慧城市推进&#xff0c;而管网智慧化建设是目前智慧城市建设中不可或缺的一个重要举措。 因为早期铺设使用的排水管道…

MathType2024破解版激活序列号

MathType序列号是一款针对该软件而制作的激活工具&#xff0c;大家都知道这款软件在官方是需要花钱购买的&#xff0c;不然得话就只能试用。有很多功能都无法正常使用&#xff01;而本序列号却可以完美的解决这一难题&#xff0c;因为它可以破解并激活“MathType”&#xff0c;…

jenkins、ant、selenium、testng搭建自动化测试框架

如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入&#xff0c;然后写一些测试脚本&#xff0c;这就是你所说的自动化测试&#xff0c;其实这个还不能算是真正的自动化测试&#xff0c;你见过每次需要运行的时候还需要打开eclipse然后去选择运行文件吗&#xff…

一条 SQL 是如何在 MyBatis 中执行的

前言 MyBatis 执行 SQL 的核心接口为 SqlSession 接口&#xff0c;该接口提供了一些 CURD 及控制事务的方法&#xff0c;另外还可以通过 SqlSession 先获取 Mapper 接口的实例&#xff0c;然后通过 Mapper 接口执行 SQL&#xff0c;Mapper 接口方法的执行最终还是委托到 SqlSe…

Linux学习第25天:Linux 阻塞和非阻塞 IO 实验(二): 挂起

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 为方便和上一节的衔接&#xff0c;在正式开始学习前&#xff0c;先把本节的思维导图引入&#xff1a; 二、阻塞IO实验 1.硬件原理图分析 2.实验程序 #define I…

数字时代新趋势:TikTok算法与海外网红营销的融合策略

在当今数字化时代&#xff0c;社交媒体已经成为品牌推广和市场营销的重要渠道。TikTok作为全球范围内最受欢迎的短视频平台之一&#xff0c;以其独特的算法和用户参与度&#xff0c;正日益成为海外网红营销的热门选择。本文Nox聚星将和大家探讨TikTok算法和海外网红营销之间的融…

全平台七合一万能DIY小程序源码系统 带完整搭建教程

近年来互联网技术的飞速发展&#xff0c;尤其是移动互联网的普及。随着微信、支付宝、百度、抖音、头条等平台的迅速崛起&#xff0c;小程序成为了这些平台上重要的应用形态。这些小程序的应用范围广泛&#xff0c;包括电商、教育、娱乐、生活服务等各个领域。然而&#xff0c;…

【二叉树经典题目】

根据二叉树创建字符串 本题的关键在于什么情况要省略括号&#xff0c;什么情况不能省略&#xff1a; 左右为空可以省略括号 左不为空&#xff0c;右为空可以省略括号左为空,右不为空不能省略括号 class Solution { public://1.左右为空可以省略括号//2.左不为空&#xff0c;右…

基于SSM的高校疫情防控出入信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

提高微星笔记本Linux下散热性能,MSI-EC 驱动新补丁发布

导读近日消息&#xff0c;今年早些时候&#xff0c;Linux 6.4 中添加了 MSI-EC 驱动程序&#xff0c;允许对 Linux 系统微星笔记本电脑进行更多控制。 MSI-EC 驱动程序近日迎来新补丁&#xff0c;为微星笔记本带来 Cooler Boost 功能。该功能允许提高笔记本电脑的风扇转速&…

从云到AI到大模型,阿里云始终和谁站在了一起?

引言&#xff1a;云的创新没有减缓 而且在加速深入百行百业 【科技明说 &#xff5c; 热点关注】 【全球云观察 | 每日看点】作为中国最大的云计算厂商&#xff0c;阿里云的产品矩阵覆盖越来越全面&#xff0c;越来越细致&#xff0c;越来越到位。 ​ 在2023杭州云栖大会现场…

java项目之医院病历管理系统(ssm框架)

项目简介 医院病历管理系统实现了以下功能&#xff1a; 管理员&#xff1a;个人中心、医院公告管理、用户管理、科室信息管理、医生管理、出诊信息管理、预约时间段管理、预约挂号管理、门诊病历管理、就诊评价管理、系统管理。医生&#xff1a;个人中心、出诊信息管理、预约…

企业计算机电脑中了locked勒索病毒怎么办,勒索病毒解密,数据恢复

网络技术的不断发展&#xff0c;为我们的企业带来了很大的便利&#xff0c;大部分企业都会选择合适的办公软件系统&#xff0c;方便自身的生产与运营。近期&#xff0c;网络上的locked勒索病毒又开始攻击企业的计算机服务器了&#xff0c;经过10月份云天数据恢复中心对企业数据…

02【Git分支的使用、Git回退、还原】

上一篇&#xff1a;01【Git的基本命令、底层命令、命令原理】 下一篇&#xff1a;03【Git的协同开发、TortoiseGit、IDEA的操作Git】 文章目录 02【Git分支的使用、Git回退、还原】一、分支1.1 分支概述1.1.1 Git分支简介1.1.2 Git分支原理 1.2 创建分支1.2.1 创建普通分支1.…

GPT做SQL查询引擎的自然语言

目录 面向企业查询的生成式人工智能 步骤1&#xff1a;将示例数据转换为单字符字符串 步骤2&#xff1a;为大型语言模型&#xff08;LM&#xff09;创建提示符 步骤3&#xff1a;将数据发送到OpenAI的API 步骤4&#xff1a;执行GPT返回的SQL代码的结果 步骤5(可选)&#…

iPhone没有信号无法付钱?这样的损友要远离

近段时间以来&#xff0c;网络频传iPhone的信号差&#xff0c;导致朋友外出吃饭&#xff0c;用iPhone的朋友无法付钱&#xff0c;而只好拿国产手机的自己付钱&#xff0c;如果遇上这样的朋友只能说你被骗了&#xff0c;那是朋友在坑你&#xff0c;这样的朋友绝对是损友&#xf…