首页 > 其他分享 >Spring Boot 初学者教程:创建第一个 Web 应用

Spring Boot 初学者教程:创建第一个 Web 应用

时间:2024-09-24 16:19:53浏览次数:10  
标签:Web Spring Boot example import com public

Spring Boot 面向初学者教程

Spring Boot 是构建 Java Web 应用程序的强大工具,简化了 Spring 框架的配置和部署。通过 Spring Boot,开发者可以在短时间内快速启动一个 Web 应用程序,而无需处理繁琐的 XML 配置或手动部署服务器。本文将为初学者详细介绍如何使用 Spring Boot,逐步实现一个简单的 Web 应用。

什么是 Spring Boot?

Spring Boot 是基于 Spring 框架的扩展,它的主要目的是简化 Spring 应用的开发和部署。它通过约定优于配置的方式,内置了常用的配置选项和依赖管理,极大地简化了开发过程。其主要特性包括:

  • 自动配置:Spring Boot 能够根据你引入的依赖自动配置 Spring 应用,无需大量的配置文件。
  • 内嵌服务器:默认支持内嵌的 Tomcat、Jetty 等 Web 服务器,应用程序可以直接运行。
  • 简化的依赖管理:Spring Boot 提供了精简的依赖集,帮助开发者快速添加需要的库。

1. 开发环境准备

在开始编写 Spring Boot 项目之前,确保你的开发环境已经准备好,以下是必要的工具:

  • JDK:Java Development Kit 11 或更高版本。可以从 Oracle 下载。
  • MavenGradle:项目构建工具。Spring Boot 支持这两种构建工具。
  • IDE:推荐使用 IntelliJ IDEA 或 Eclipse。

2. 使用 Spring Initializr 创建项目

Spring Initializr 是 Spring 官方提供的项目生成器,能够根据开发者选择的依赖自动生成项目结构。你可以通过浏览器访问 Spring Initializr 或通过 IDE 使用内置的 Spring Boot 项目向导。

在 Spring Initializr 上创建项目的步骤:
  1. 访问 Spring Initializr
  2. 选择项目类型为 Maven Project
  3. 选择语言为 Java
  4. 选择 Spring Boot 版本(建议使用稳定的最新版本)。
  5. 在依赖项中,选择 Spring Web,它允许你构建 Web 应用并创建 REST API。
  6. 点击 “Generate” 生成项目,下载并解压缩。

3. 项目结构

解压后,你的项目结构大致如下:

├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── demo
│   │   │               └── DemoApplication.java
│   ├── resources
│   │   ├── application.properties
│   └── test
  • DemoApplication.java 是项目的入口类。
  • application.properties 用于配置项目属性。

4. 编写你的第一个控制器

现在让我们编写一个简单的 REST API,返回 “Hello, Spring Boot!”。

4.1 创建控制器类

src/main/java/com/example/demo 目录下创建一个新的 HelloController.java 类,代码如下:

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}
4.2 解释
  • @RestController 注解告诉 Spring Boot 这是一个控制器,它会处理 HTTP 请求并返回数据,而不是视图。
  • @GetMapping("/hello") 注解用于映射 HTTP GET 请求,当访问 /hello 时,返回 “Hello, Spring Boot!”。

5. 启动应用程序

现在,我们来启动 Spring Boot 应用。在 DemoApplication.java 中,Spring Boot 会自动为你配置 Web 服务器并运行。

DemoApplication.java
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

运行 DemoApplication,你会看到控制台输出类似如下内容:

Tomcat started on port(s): 8080 (http)
Started DemoApplication in 2.34 seconds (JVM running for 3.123)

这意味着应用程序已经成功启动了。Spring Boot 默认会在 8080 端口上启动一个内嵌的 Tomcat 服务器。

6. 测试 API

现在,打开浏览器并访问 http://localhost:8080/hello,你应该会看到以下输出:

Hello, Spring Boot!

恭喜你,你已经成功构建了一个简单的 Spring Boot Web 应用程序!

7. 配置文件详解

Spring Boot 提供了简单的配置方式,你可以在 src/main/resources/application.properties 文件中进行配置。例如,如果你想要修改服务器的默认端口,可以在这个文件中添加以下行:

server.port=8081

再次启动应用,应用会在 8081 端口运行。你可以通过访问 http://localhost:8081/hello 来验证修改是否成功。

8. 添加更多功能

8.1 集成数据库

Spring Boot 提供了对多种数据库的集成支持。你可以通过添加依赖项来轻松连接到 MySQL 或 H2(嵌入式数据库)。让我们来看一下如何使用 H2 数据库。

  • 首先,在 pom.xml 文件中添加 H2 依赖:
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>
  • 然后,在 application.properties 文件中添加数据库配置:
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password

通过访问 http://localhost:8080/h2-console,你可以查看嵌入式数据库的内容。

8.2 创建一个任务管理功能

让我们增加一个任务管理的功能,使用 Spring Data JPA 实现增删改查操作。首先,创建一个 Task 实体类:

package com.example.demo.model;

import javax.persistence.*;

@Entity
public class Task {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String description;

    private boolean completed;

    public Task() {
    }

    // Getters and Setters
}

接着,创建一个 TaskRepository 接口,用于数据访问:

package com.example.demo.repository;

import com.example.demo.model.Task;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface TaskRepository extends JpaRepository<Task, Long> {
}

最后,编写控制器 TaskController,实现增删改查功能:

package com.example.demo.controller;

import com.example.demo.model.Task;
import com.example.demo.repository.TaskRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/tasks")
public class TaskController {

    @Autowired
    private TaskRepository taskRepository;

    @GetMapping
    public List<Task> getAllTasks() {
        return taskRepository.findAll();
    }

    @PostMapping
    public Task createTask(@RequestBody Task task) {
        return taskRepository.save(task);
    }

    @PutMapping("/{id}")
    public Task updateTask(@PathVariable Long id, @RequestBody Task taskDetails) {
        Task task = taskRepository.findById(id).orElseThrow();
        task.setDescription(taskDetails.getDescription());
        task.setCompleted(taskDetails.isCompleted());
        return taskRepository.save(task);
    }

    @DeleteMapping("/{id}")
    public void deleteTask(@PathVariable Long id) {
        taskRepository.deleteById(id);
    }
}

9. 总结

通过这篇博客,我们从零开始创建了一个 Spring Boot 应用,并实现了一个简单的任务管理功能。我们展示了如何使用 Spring Boot 创建 RESTful API,并引入了 H2 数据库用于存储任务信息。Spring Boot 的强大之处在于它能够快速启动并简化配置,使开发者可以专注于业务逻辑的实现。

如果你想要继续学习,可以尝试为项目添加更多的功能,比如用户认证、任务优先级等。希望这篇初学者教程能帮助你快速上手 Spring Boot!


如果有任何问题或需要进一步的帮助,欢迎在评论区留言讨论。

标签:Web,Spring,Boot,example,import,com,public
From: https://blog.csdn.net/2401_87264786/article/details/142492435

相关文章

  • 利用IDEA创建Web Service服务端和客户端的详细过程
    创建服务端一、file–>new–>project 二、点击next后输入服务端名,点击finish,生成目录如下三、在HelloWorld.Java文件中右击,选WebServices,再选GenerateWsdlFromJavaCode,确定点击ok会自动给我们生成HelloWorld.wsdl,画红线处注意四、配置tomcat,此处不多说,主要......
  • 【SpringBoot】@Validated @Valid 参数校验概述以及使用方式
    1 前言最近在思考SpringBoot中的参数校验,比如我们写一段业务代码,首要的就是校验参数,单据编码空不空,数量空不空,客户空不空等,最简单的就是单独抽个方法逐个进行ifelse校验,高级点的整个校验工厂,当需要校验某种业务的时候,拿到校验器来校验,可以是简单工厂或者工厂方法都可以实......
  • springboot藏区特产销售平台系统的设计与实现
    大家好,我是永钊,一个混迹在java圈的码农,今天要和大家聊的是一款基于springboot的藏区特产销售平台系统,项目源码请联系永钊,目前有各类成品毕设javawebsshssmspringboot等等项目框架,源码丰富。专业团队,咨询就送开题报告,活动限时免费,有需要的朋友可以来留言咨询。本网站系......
  • 告别页面卡顿:Web Worker 助你解决前端性能瓶颈
    背景随着现代前端开发的复杂度不断提升,网页应用变得越来越丰富,用户期望更加流畅的交互体验。然而,JavaScript是单线程的,意味着它不能同时处理多个任务。一旦有耗时的任务执行,例如大量数据处理、复杂算法的计算、或是繁重的文件解析,页面的主线程很容易被阻塞,导致界面卡顿或无响应,严......
  • springboot车辆充电桩系统的设计与实现
    大家好,我是永钊,一个混迹在java圈的码农,今天要和大家聊的是一款基于springboot的车辆充电桩系统,项目源码请联系永钊,目前有各类成品毕设javawebsshssmspringboot等等项目框架,源码丰富。专业团队,咨询就送开题报告,活动限时免费,有需要的朋友可以来留言咨询。本网站以springb......
  • 实例展示Spring的作用以及如何使用
    Spring是一个广泛应用于Java开发的开源框架,它主要有以下几个重要作用:一、依赖注入(DependencyInjection)作用:解耦组件之间的依赖关系,使得代码更易于维护和测试。比如在一个Web应用中,不同的业务逻辑层和数据访问层之间如果直接相互创建对象,会导致代码紧密耦合,一旦其中......
  • WebRTC中的维纳滤波器实现详解:基于决策导向的SNR估计
    目录1.维纳滤波器的基本原理2.WebRTC中的维纳滤波器实现3.代码逐步剖析4.总结在WebRTC的噪声抑制模块中,维纳滤波器(WienerFilter)是一种非常常见且重要的滤波器,用于提高语音信号的清晰度并抑制背景噪声。本文将详细解释维纳滤波器在WebRTC中的实现逻辑,并结合代码......
  • springcloud中sentient整合openfeign组件
    openfeign作为微服务各个模块之间调用的组件,如果服务提供方出现异常,会将错误返回给服务消费方,消费方可以通过sentinel的服务降级方法,对如果调用异常的情况进行处理以下介绍下具体做法:一、服务消费方必须整合openfeign,方法可以参考:https://www.cnblogs.com/qwg-/p/18007449pom.x......
  • pbootcms网站是使用sqlite数据库好还是使用mysql数据库好
    选择在PbootCMS网站上使用SQLite数据库还是MySQL数据库取决于几个因素,包括但不限于网站规模、预期的访问量、并发需求以及维护成本等。以下是两者的对比:SQLite架构:SQLite是一种嵌入式的关系型数据库管理系统,它不需要单独的服务器进程或系统。适用场景:适用于小型应用程序,访问量......
  • Pbootcms数据库转换教程(sqlite转mysql详细教程)
    一、准备工作下载转换所需工具:确保你有SQLiteStudio和phpMyAdmin等工具。备份现有数据:在进行任何操作之前,请确保备份现有的SQLite数据库文件。二、教程1.导出SQLite数据库打开SQLiteStudio:启动SQLiteStudio软件。定位数据库文件:找到PbootCMS的data文件夹下的.db文件。......