实践环境

Spring Boot 3.2.1

Maven 3.8.8

JDK 1.8.0_331

创建项目

通过http://start.spring.io/网站创建包含Spring Boot的项目,具体如下:

点击 GENERATE 按钮后,会自动生成并下载 SpringBootQuickStartDemo.zip

导入项目

解压述下载的项目压缩包,解压后的项目文件结构如下:

E:codeProjects\SpringBootQuickStartDemo>tree /f
.
│ .gitignore
│ HELP.md
│ mvnw
│ mvnw.cmd
│ pom.xml

├─.mvn
│ └─wrapper
│ maven-wrapper.jar
│ maven-wrapper.properties

└─src
├─main
│ ├─java
│ │ └─org
│ │ └─example
│ │ └─SpringBootQuickStartDemo
│ │ SpringBootQuickStartDemoApplication.java
│ │
│ └─resources
│ │ application.properties
│ │
│ ├─static
│ └─templates
└─test
└─java
└─org
└─example
└─SpringBootQuickStartDemo
SpringBootQuickStartDemoApplicationTests.java

其中,pom.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.example</groupId>
<artifactId>SpringBootQuickStartDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringBootQuickStartDemo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

注意:不同版本的Spring Boot对JAVA JDK有不同的要求,所以需要根据实际配置考虑是否修改上述pom.xml,具体有哪些系统要求,可以参考以下链接

https://docs.spring.io/spring-boot/docs/{SpringBootVersion}/reference/html/getting-started.html#getting-started.system-requirements

访问上述链接之前,修改 {SpringBootVersion}为具体版本号,比如 2.7.9

修改Spring Boot版本为2.7.9

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

修改JAVA版本

<java.version>8</java.version>

说明:笔者本机安装JDK1.8,如果不修改pom.xml配置,运行时会报类似如下错误:

Error:(2, 32) java: 无法访问org.springframework.boot.SpringApplication
错误的类文件: /D:/maven-repo/org/springframework/boot/spring-boot/3.2.1/spring-boot-3.2.1.jar!/org/springframework/boot/SpringApplication.class
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。

接着,使用IDEA打开该项目

添加代码

修改SpringBootQuickStartDemoApplication.java,该文件默认生成的内容如下

package org.example.SpringBootQuickStartDemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class SpringBootQuickStartDemoApplication { public static void main(String[] args) {
SpringApplication.run(SpringBootQuickStartDemoApplication.class, args);
} }

修改文件内容为如下:

package org.example.SpringBootQuickStartDemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; @SpringBootApplication
@RestController
public class SpringBootQuickStartDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootQuickStartDemoApplication.class, args);
} @GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}

这就是在Spring Boot中创建一个简单的“Hello World”web服务所需的所有代码。

添加的hello()方法接收一个名为name的String参数,返回"Hello " 与name参数的字符串拼接。这意味着,如果在请求中将name参数值设置为“Amy”,则响应将为“Hello Amy”。

@RestController注释告诉Spring,这段代码描述了一个应该可通过web访问的端点(endpoint)。@GetMapping("/hello")告诉Spring使用我们的hello()方法来响应访问http://localhost:8080/hello的请求。最后@RequestParam告诉Spring请求需要提供一个name值,如果未提供的话,它将默认使用单词World

测试

IDEA中打开SpringBootQuickStartDemoApplication.java文件,右键 -> Run 'SpringBookQuic....main()' ,控制台输出类似如下内容:

...略
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.9) 2024-01-02 00:14:28.051 INFO 19408 --- [ main] .e.S.SpringBootQuickStartDemoApplication : Starting SpringBootQuickStartDemoApplication using Java 1.8.0_331 on SF0001420551A with PID 19408 (E:\codeProjects\SpringBootQuickStartDemo\target\classes started by 01367599 in E:\codeProjects\SpringBootQuickStartDemo)
2024-01-02 00:14:28.055 INFO 19408 --- [ main] .e.S.SpringBootQuickStartDemoApplication : No active profile set, falling back to 1 default profile: "default"
2024-01-02 00:14:29.778 INFO 19408 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2024-01-02 00:14:29.792 INFO 19408 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2024-01-02 00:14:29.792 INFO 19408 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.71]
2024-01-02 00:14:30.146 INFO 19408 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2024-01-02 00:14:30.146 INFO 19408 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2034 ms
2024-01-02 00:14:30.573 INFO 19408 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2024-01-02 00:14:30.583 INFO 19408 --- [ main] .e.S.SpringBootQuickStartDemoApplication : Started SpringBootQuickStartDemoApplication in 3.071 seconds (JVM running for 3.784)

最后两行告诉我们Spring Boot已启动。Spring Boot的内置Apache Tomcat服务器充当Web服务器,监听本地8080端口。

浏览地址栏中输入并访问http://localhost:8080/hello

输入并访问http://localhost:8080/hello?name=shouke

参考连接

https://spring.io/quickstart/

https://docs.spring.io/spring-boot/docs/

JAVA Spring Boot快速开始的更多相关文章

  1. 使用 Spring Boot 快速构建 Spring 框架应用--转

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/ Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2 ...

  2. Spring Boot 快速入门

    Spring Boot 快速入门 http://blog.csdn.net/xiaoyu411502/article/details/47864969 今天给大家介绍一下Spring Boot MVC ...

  3. 使用 Spring Boot 快速构建 Spring 框架应用,PropertyPlaceholderConfigurer

    Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2002 年发布以来,Spring 框架已经成为企业应用开发领域非常流行的基础框架.有大量的企业应用基于 Spring 框架来开发.S ...

  4. Spring Boot快速入门(二):http请求

    原文地址:https://lierabbit.cn/articles/4 一.准备 postman:一个接口测试工具 创建一个新工程 选择web 不会的请看Spring Boot快速入门(一):Hel ...

  5. spring boot入门教程——Spring Boot快速入门指南

    Spring Boot已成为当今最流行的微服务开发框架,本文是如何使用Spring Boot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat)的可运 ...

  6. Spring Boot 快速入门(IDEA)

    从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架:SpringBoot帮助开发者快速启动一个Web容器:SpringBoot继承了原有Spring框架的优秀 ...

  7. Spring Boot 快速入门 史上最简单

    1.Spring Boot 概述 Spring Boot 是所有基于 Spring 开发的项目的起点.Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的 ...

  8. Spring Boot快速集成kaptcha生成验证码

    Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码,以图片的形式显示,从而无法进行复制粘贴:下面将详细介绍下Spring Boot快速集成kaptcha生成验证码的过程. 本 ...

  9. 笔记61 Spring Boot快速入门(一)

    IDEA+Spring Boot快速搭建 一.IDEA创建项目 略 项目创建成功后在resources包下,属性文件application.properties中,把数据库连接属性加上,同时可以设置服 ...

  10. 10个Spring Boot快速开发的项目,接私活利器(快速、高效)

    本文为大家精选了 码云 上优秀的 Spring Boot 语言开源项目,涵盖了企业级系统框架.文件文档系统.秒杀系统.微服务化系统.后台管理系统等,希望能够给大家带来一点帮助:) 1.项目名称:分布式 ...

随机推荐

  1. 深入理解Vue 3:计算属性与侦听器的艺术

    title: 深入理解Vue 3:计算属性与侦听器的艺术 date: 2024/5/30 下午3:53:47 updated: 2024/5/30 下午3:53:47 categories: 前端开发 ...

  2. nginx分流配置

    user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; eve ...

  3. insert into select [SQL]

    insert into `d_mx_think`.`su_article` (id,catid,title,url) select id,catid,title,url from d_mx_phpcm ...

  4. 7.14考试总结(NOIP模拟15)[夜莺与玫瑰·影子·玫瑰花精]

    梦总是有会醒来的时候,不会醒的梦总有一天会变成悲伤. 前言 这次考试的思维含量有一点大(此时距离考试还有 7min 而我的总结还没写完..) 但是对于以前的考试来讲还是有所进步的,毕竟在考试的时候还是 ...

  5. Linux驱动--IOCTL实现

    参考:[Linux]实现设备驱动的ioctl函数_哔哩哔哩_bilibili.<Linux设备驱动程序(中文第三版).pdf> 1 用户空间ioctl 用户空间的ioctl函数原型,参数是 ...

  6. vue-cli 单文件组件 工具安装

    https://cli.vuejs.org/zh/ 在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) ...

  7. P7448

    problem & 双倍经验 & blog 低配版本 没有 Ynoi 标志性算法卡常,这点差评. 拆解问题 定义 \(lst_i\) 为上一个和 \(i\) 号点相同的位置. 由于几个 ...

  8. http的响应码200,404,302,500表示的含义分别是?

    200 - 确定.客户端请求已成功 302 - 临时移动转移,请求的内容已临时移动新的位置 404 - 未找到文件或目录 500 - 服务器内部错误

  9. 【原创】EtherCAT主站IgH解析(二)-- Linux/Windows/RTOS等多操作系统IgH EtherCAT主站移植指南

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 前言 目前,EtherCAT商用主站有:Aconti ...

  10. 2020-2021 ICPC, NERC, Northern Eurasia Onsite BEIJ 题解

    B. Button lock 题意:有 \(d\) 个 01 按键以及一个 reset 按键,你需要把所有题目给定的 \(n\) 个密码全部表示一遍.只有按下 reset 按键后才能使所有 01 按键 ...