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

news2024/12/23 18:31:38

前言

本文将讨论以下主题:

  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")
    @ResponseBody
    public 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.coloradmin.cn/o/1153189.html

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

相关文章

使用logback按天生成日志并按等级进行分类

先看效果---->>>> 按照&#xff1a;error、info、warn进行分类&#xff1a; 每个文件里面按日期进行分类&#xff1a; 其中对应的Maven如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven…

微服务框架SpringcloudAlibaba+Nacos集成RabbiMQ

目前公司使用jeepluscloud版本&#xff0c;这个版本没有集成消息队列&#xff0c;这里记录一下&#xff0c;集成的过程&#xff1b;这个框架跟ruoyi的那个微服务版本结构一模一样&#xff0c;所以也可以快速上手。 1.项目结构图&#xff1a; 配置类的东西做成一个公共的模块 …

Java学习 8.方法习题

1.递归求 N 的阶乘的和 思路 循环递归先从1到N相乘&#xff0c;求出每一项的阶乘&#xff0c;在定义变量将它们相加 代码实现 public static int rec(int N){int i1;int sum0;int num1;for(i1;i<N;i){num*i;sumnum;}return sum;} 运行结果 2.递归求和 求12...10 思路 …

react项目入门,创建项目

react项目入门&#xff0c;创建项目 // react-ts项目入门&#xff0c;创建项目 // https://juejin.cn/post/6844904184597184519第零步&#xff0c;检查版本 node -v npm -v 1a69c3036bc3aea6d29d2b66fe46602f.jpg 第一步&#xff0c;新建个文件夹&#xff0c;不能中午命名&a…

AI时代:ChatGPT让程序员插上翅膀

程序员开发新模式&#xff1a;一本专注于帮助程序员在AI时代实现晋级、提高效率的图书。书中介绍了如何使用 ChatGPT 来完成高质量代码编写、文档编写、软件设计等各个环节&#xff0c;并通过实战案例展示了 ChatGPT在实际项目开发中的应用方法。 1.开发新模式&#xff1a;让程…

Linux安装pinpoint监控保姆级安装攻略没有之一

Linux安装pinpoint监控&#xff0c;保姆级安装攻略&#xff0c;没有之一 pinpoint介绍 Pinpoint是一个开源的 APM (Application Performance Management/应用性能管理)工具&#xff0c;用于基于java的大规模分布式系统&#xff0c;基于Google Dapper论文。 架构组成 Pinpoin…

Flask Shell 操作 SQLite

一、前言 这段时间在玩Flask Web&#xff0c;发现用Flask Shell去操作SQLite还是比较方便的。今天简单地介绍一下。 二、SQLite SQLite是一种嵌入式数据库&#xff0c;它的数据库就是一个文件&#xff0c;处理速度快&#xff0c;经常被集成在各种应用程序中&#xff0c;在IO…

5分钟搞定深度学习中间特征可视化

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 今天跟大家分享一个可视化CNN/ViT中间特征的库&#xff1a;pytorch-grad-cam 下载地址&#xff1a;https://github.com/jacobgil/pytorch-grad-cam pytorch-grad-cam支持多种可视化方法&#…

接口测试之jmeter基本归结

一、接口测试 二、jmeter脚本开发 三、Jmeter参数化技术

云帆培训考试系统更新说明:v6.9.0

1、增加群组功能 -- 增加群组功能&#xff0c;一个用户可以存在于多个小组中&#xff1b; -- 在线考试、课程学习、活动报名、题库训练、知识竞赛增加群组权限设置&#xff1b; 2、增加线下考试功能 -- 增加线下考试功能&#xff0c;可批量导入线下成绩&#xff0c;管理线下…

Spring Web MVC练习

一&#xff1a;开发程序常见问题 (1)学会定位前后端问题 &#x1f497;通过看日志&#xff0c;查看到底是前端问题还是后端问题 ①前端&#xff1a;F12查看网页的控制台 ②后端&#xff1a;测试后端接口参数&#xff1b;查看IDEA的控制台 (测试后端接口参数&#xff0c;即去访…

java中包的概念

内容仅供复习 java中包是把一些类进行打包&#xff0c;在一个包中所有public的类可以直接使用。如果在别的包中要使用一个类就必须import这个包。friendly类型的方法在同个包中可以使用&#xff0c;在不同包里面不可以访问这个类型的方法。 创建一个java项目&#xff0c;在src…

【Http协议】 二

实际开发中&#xff0c;经常需要能够手动的构造出Http协议的请求 一般是通过以下几种方式&#xff1a; 1.通过html中的form表单 2.通过js的ajax 3.Java代码&#xff08;其他各种语言&#xff09; 4.借助一些第三方工具 1.通过html的form标签/表单构造http请求 >对于编写html…

SpringBoot通过注解形式实现系统操作日志

介绍 我们在日常开发工作中&#xff0c;肯定逃不开与日志接触&#xff0c;一些比较严谨的后台管理系统里面会涉及到一些比较重要的资料&#xff0c;有些公司为了知道有哪些人登录了系统&#xff0c;是谁在什么时候修改了用户信息或者资料&#xff0c;所以就有了操作日志这么个…

MySQL 基础学习笔记(一)

目录 1 SQL简介2 MySQL基本语法2.1 语法规则2.2 数据类型 3 DDL3.1 操作数据库3.2 操作表 4 DML4.1 添加数据4.2 修改数据4.3 删除数据 5 DQL5.1 基础查询5.2 条件查询5.3 排序查询5.4 聚合查询5.5 分组查询5.6 分页查询 1 SQL简介 SQL &#xff1a;Structured Query Language&…

基于 MySQL 多通道主主复制的机房容灾方案

文章中介绍了多种 MySQL 高可用技术&#xff0c;并介绍了根据自身需求选择多通道主主复制技术的过程和注意事项。 作者&#xff1a;徐良&#xff0c;现任中国移动智慧家庭运营中心数据库高级经理&#xff0c;多年数据库运维优化经验&#xff0c;历任华为、一线互联网公司高级 D…

使用Nokogiri和OpenURI库进行HTTP爬虫

目录 一、Nokogiri库 二、OpenURI库 三、结合Nokogiri和OpenURI进行爬虫编程 四、高级爬虫编程 1、并发爬取 2、错误处理和异常处理 3、深度爬取 总结 在当今的数字化时代&#xff0c;网络爬虫已经成为收集和处理大量信息的重要工具。其中&#xff0c;Nokogiri和OpenUR…

softmax的高效CUDA编程和oneflow实现初步解析

本文参考了添加链接描述,其中oneflow实现softmax的CUDA编程源代码参考链接添加链接描述 关于softmax的解读以及CUDA代码实现可以参考本人之前编写的几篇文章添加链接描述,添加链接描述,添加链接描述 下面这个图片是之前本人实现的softmax.cu经过接入python接口,最终和pytor…

Javascript基础-BOM

文章目录 BOM——Browser Object Model定时器--延时函数 JS执行机制具体流程 三个常见对象location对象navigator对象history对象 本地存储介绍sessionStoragesessionStorage 存储复杂数据类型字符串拼接 正则表达式元字符 BOM——Browser Object Model 浏览器对象模型&#x…

【LeetCode:26. 删除有序数组中的重复项 | 双指针】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…