Spring Boot 应用开发入门

news2025/1/15 20:10:21

一、Spring Boot简介
Spring Boot 是一个基于 Spring 框架的开源 Java 基础框架,它简化了基于 Spring 的应用开发。Spring Boot 提供了一种快速、便捷的方式来创建独立、生产级的基于 Spring 框架的应用程序。它通过提供一系列的“启动器”依赖,帮助开发者避免了繁琐的依赖管理和配置。Spring Boot 还自动配置 Spring 和第三方库,使得开发者可以专注于编写业务代码。

## 二、搭建开发环境
### 1. 安装Java开发工具包(JDK)
Spring Boot 需要 Java 环境的支持,因此首先需要安装 JDK。你可以访问 Oracle 官网下载适合你操作系统的 JDK 版本。安装完成后,需要配置环境变量,使得在命令行中可以使用 `java` 和 `javac` 命令。

### 2. 安装集成开发环境(IDE)
推荐使用 IntelliJ IDEA 或 Eclipse 作为开发工具。这些 IDE 提供了对 Spring Boot 的良好支持,包括项目创建、代码提示、自动补全等功能。例如,在 IntelliJ IDEA 中,你可以直接通过“创建新项目”向导来创建 Spring Boot 项目。

### 3. 安装Maven或Gradle
Maven 和 Gradle 是常用的构建工具,用于管理项目的依赖和构建过程。Spring Boot 官方推荐使用 Maven。你可以访问 Maven 官网下载并安装 Maven,安装完成后,同样需要配置环境变量,使得在命令行中可以使用 `mvn` 命令。

## 三、创建第一个Spring Boot项目
### 1. 使用Spring Initializr创建项目
Spring Initializr 是一个在线工具,可以帮助你快速生成 Spring Boot 项目的初始结构。访问 [Spring Initializr](https://start.spring.io/) 网站,选择以下配置:
- **Project**: Maven Project
- **Language**: Java
- **Spring Boot**: 选择一个合适的版本(例如 2.7.5)
- **Group**: 输入你的组织名,例如 `com.example`
- **Artifact**: 输入项目名,例如 `demo`
- **Name**: 输入项目名称,例如 `demo`
- **Description**: 输入项目描述
- **Packaging**: 选择 Jar
- **Java**: 选择合适的 Java 版本(例如 11)
- **Dependencies**: 添加你需要的依赖,例如“Spring Web”

配置完成后,点击“Generate”按钮,下载生成的项目压缩包,然后解压到本地。

2. 导入项目到IDE
使用你的 IDE 打开刚才下载的项目文件夹。例如,在 IntelliJ IDEA 中,选择“Open”或“Import Project”,然后选择项目文件夹并导入。

 3. 编写简单的Hello World应用
在项目中创建一个新的 Java 类,例如 `HelloController.java`,并添加以下代码:

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!";
    }
}
 

这段代码创建了一个简单的 RESTful 控制器,当访问 `/hello` 路径时,会返回“Hello, Spring Boot!”字符串。

4. 运行应用
在 IDE 中找到项目的主类 `DemoApplication.java`,它通常位于 `src/main/java/com/example/demo` 目录下。运行这个类的 `main` 方法,或者在命令行中使用以下命令启动应用:


mvn spring-boot:run
 

启动成功后,浏览器访问 `http://localhost:8080/hello`,你应该会看到“Hello, Spring Boot!”的输出。

## 四、配置Spring Boot应用
Spring Boot 应用的配置通常放在 `src/main/resources/application.properties` 或 application.yml` 文件中。例如,你可以修改应用的端口号:

properties
# application.properties
server.port=8081
 

或者使用 YAML 格式:

yaml
# application.yml
server:
  port: 8081
 

保存配置文件后,重启应用,应用就会使用新的端口号运行。

五、添加更多功能
1. 添加数据库支持
假设你想让应用连接到一个 MySQL 数据库,首先需要添加数据库驱动依赖。在 `pom.xml` 文件中添加以下依赖:

xml
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
 

然后在 `application.properties` 中配置数据库连接信息:

properties
spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password
 

2. 添加MyBatis框架
如果你使用 MyBatis 作为 ORM 框架,可以添加以下依赖:

xml
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>
 

然后配置 MyBatis:

properties
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.use-generated-keys=true
 

接下来,你可以创建 Mapper 接口和对应的 XML 映射文件,实现数据库操作。

 六、打包和部署
1. 打包应用
使用 Maven 打包应用:


mvn clean package
 

这会在 `target` 目录下生成一个包含所有依赖的 JAR 文件,例如 `demo-0.0.1-SNAPSHOT.jar`。

2. 部署应用
将打包好的 JAR 文件上传到服务器,然后使用以下命令启动应用:

bash
java -jar demo-0.0.1-SNAPSHOT.jar
 

确保服务器上已经安装了相应版本的 JDK。

七、总结
通过本教程,你已经学会了如何创建一个简单的 Spring Boot 应用,包括搭建开发环境、创建项目、编写代码、配置应用、添加功能以及打包和部署。Spring Boot 的强大之处在于它的自动配置和简洁的开发方式,使得开发者可以快速上手并专注于业务逻辑的实现。
 

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

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

相关文章

IoTDB 常见问题 QA 第三期

关于 IoTDB 的 Q & A IoTDB Q&A 第三期持续更新&#xff01;我们将定期汇总我们将定期汇总社区讨论频繁的问题&#xff0c;并展开进行详细回答&#xff0c;通过积累常见问题“小百科”&#xff0c;方便大家使用 IoTDB。 Q1&#xff1a;查询最新值 & null 数据相加方…

MyBatis实现数据库的CRUD

本文主要讲解使用MyBatis框架快速实现数据库中最常用的操作——CRUD。本文讲解的SQL语句都是MyBatis基于注解的方式定义的&#xff0c;相对简单。 Mybatis中#占位符和$拼接符的区别 “#”占位符 在使用MyBatis操作数据库的时候&#xff0c;可以直接使用如下SQL语句删除一条数…

Spring Boot 下的Swagger 3.0 与 Swagger 2.0 的详细对比

先说结论&#xff1a; Swgger 3.0 与Swagger 2.0 区别很大&#xff0c;Swagger3.0用了最新的注释实现更强大的功能&#xff0c;同时使得代码更优雅。 就个人而言&#xff0c;如果新项目推荐使用Swgger 3.0&#xff0c;对于工具而言新的一定比旧的好&#xff1b;对接于旧项目原…

关于2025年智能化招聘管理系统平台发展趋势

2025年&#xff0c;招聘管理领域正站在变革的十字路口&#xff0c;全新的技术浪潮与不断变化的职场生态相互碰撞&#xff0c;促使招聘管理系统成为重塑企业人才战略的关键力量。智能化招聘管理系统平台在这一背景下迅速崛起&#xff0c;其发展趋势不仅影响企业的招聘效率与质量…

go语言的sdk 适合用go原生还是gozero框架开发的判断与总结

在决定是否使用 Go 原生&#xff08;纯 Go&#xff09;开发&#xff0c;还是使用 GoZero 框架开发时&#xff0c;主要取决于项目的需求、规模和开发的复杂性。GoZero 框架提供了一些额外的功能&#xff0c;如微服务架构、RPC 支持、API 网关、任务调度等&#xff0c;这些是基于…

Elasticsearch 批量导入数据(_bluk方法)

官方API&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html 建议先看API POST /<索引名>/_bulk 格式要求&#xff1a; POST _bulk { "index" : { "_index" : "test", "_id" : &q…

Mysql--重点篇--索引(索引分类,Hash和B-tree索引,聚簇和非聚簇索引,回表查询,覆盖索引,索引工作原理,索引失效,索引创建原则等)

索引是数据库中用于加速查询操作的重要机制。通过索引&#xff0c;MySQL可以快速定位到满足查询条件的数据行&#xff0c;而不需要扫描整个表。合理的索引设计可以显著提高查询性能&#xff0c;但不合理的索引可能会导致性能下降和磁盘空间浪费。因此&#xff0c;理解索引的工作…

mybatis-spring @MapperScan走读分析

接上一篇文章&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145100531&#xff0c; 本文注解分析mybatis-spring中的MapperScan注解&#xff0c;则将容易许多。 目录 MapperScan注解定义ConfigurationClassPostProcessor扫描注册beanDefinitionorg.mybatis.s…

【STM32】HAL库USB实现软件升级DFU的功能操作及配置

【STM32】HAL库USB实现软件升级DFU的功能操作及配置 文章目录 DFUHAL库的DFU配置修改代码添加条件判断和跳转代码段DFU烧录附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏…

计算机视觉算法实战——实时车辆检测和分类(主页有相关源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​​​​​​​​​​​​ 1. 领域介绍✨✨ 实时车辆检测和分类是计算机视觉中的一个重要应用领域&#xff0c;旨在从视频流或…

机器学习(1):线性回归概念

1 线性回归基础 1.1 什么是线性 例如&#xff1a;汽车每小时60KM&#xff0c;3小时可以行使多长距离&#xff1f;已知汽车的速度&#xff0c;则汽车的行使距离只与时间唯一相关。在二元的直角坐标系中&#xff0c;描出这一关系的图是一条直线&#xff0c;所以称为线性关系。 线…

ThinkPHP 8的一对一关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里&#xff0c;视觉内容无处不在&#xff0c;而创建和编辑这些内容的能力已经成为许多行业的核心技能…

LabVIEW开发X光图像的边缘检测

在医疗影像处理中&#xff0c;X光图像的分析对于骨折、肿瘤等病变的检测非常重要。X光图像中包含许多关键信息&#xff0c;然而&#xff0c;由于图像噪声的干扰&#xff0c;直接从图像中提取有用的特征&#xff08;如骨折的边缘&#xff09;变得非常困难。边缘检测作为图像处理…

SOLID原则学习,接口隔离原则(Interface Segregation Principle, ISP)

文章目录 1. 定义2. 为什么要遵循接口隔离原则&#xff1f;3. 违反接口隔离原则的例子4. 遵循接口隔离原则的改进5. 总结 1. 定义 接口隔离原则&#xff08;Interface Segregation Principle, ISP&#xff09; 接口隔离原则是面向对象设计中的五大原则&#xff08;SOLID&#…

浅谈云计算12 | KVM虚拟化技术

KVM虚拟化技术 一、KVM虚拟化技术基础1.1 KVM虚拟化技术简介1.2 KVM虚拟化技术架构1.2.1 KVM内核模块1.2.2 用户空间工具&#xff08;QEMU、Libvirt等&#xff09; 二、KVM虚拟化技术原理2.1 硬件辅助虚拟化2.2 VMCS结构与工作机制 三、KVM虚拟化技术面临的挑战与应对策略3.1 性…

unity如何在urp管线下合并spine的渲染批次

对于导入unity的spine来说,他会对每个spine生成独有的材质,虽然他们使用的是同一个shader,但由于附带独有的贴图,这样在项目使用中会由于材质贴图不同而导致无法合批. 而为什么选用urp,因为在built-in管线中,对于GPU-instancing,即使通过使用图集的方式统一了贴图,也会由于spi…

list的迭代器模拟实现和迭代器失效(续)

文章目录 list的迭代器operator->普通迭代器和const迭代器迭代器模版迭代器失效析构拷贝构造赋值重载 initializer_list list的迭代器 对迭代器进行封装&#xff0c;迭代器的指针还是4个字节&#xff0c;在物理上是一样的&#xff0c;但是底层是完全不同的 迭代器是浅拷贝&a…

一文通透OpenVLA及其源码剖析——基于Prismatic VLM(SigLIP、DinoV2、Llama 2)及离散化动作预测

前言 当对机器人动作策略的预测越来越成熟稳定之后(比如ACT、比如扩散策略diffusion policy)&#xff0c;为了让机器人可以拥有更好的泛化能力&#xff0c;比较典型的途径之一便是基于预训练过的大语言模型中的广泛知识&#xff0c;然后加一个policy head(当然&#xff0c;一开…

Easysearch Rollup 使用指南

背景 在现代数据驱动的世界中&#xff0c;时序数据的处理变得越来越重要。无论是监控系统、日志分析&#xff0c;还是物联网设备的数据收集&#xff0c;时序数据都占据了大量的存储空间。随着时间的推移&#xff0c;这些数据的存储成本和管理复杂度也在不断增加。 为了解决这…