Spring Boot 应用开发入门

一、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 的强大之处在于它的自动配置和简洁的开发方式,使得开发者可以快速上手并专注于业务逻辑的实现。
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 笔记 数据链路层 2

1,信道划分&#xff1a; (1)时分复用TDM 将时间等分为“TDM帧”&#xff0c;每个TDM帧内部等分为m个时隙&#xff0c;m个用户对应m个时隙 缺点&#xff1a;每个节点只分到了总带宽的1/m,如果有部分的1节点不发出数据&#xff0c;那么就会在这个时间信道被闲置&#xff0c;利用…

ElasticSearch在Windows环境搭建测试

引子 也持续关注大数据相关内容一段时间&#xff0c;大数据内容很多。想了下还是从目前项目需求侧出发&#xff0c;进行相关学习。Elasticsearch&#xff08;ES&#xff09;是位于 Elastic Stack&#xff08;ELK stack&#xff09; 核心的分布式搜索和分析引擎。Logstash 和 B…

计算机网络 笔记 网络层1

网络层功能概述 主要的任务是把分组从源端传输到目的端&#xff0c;为分组交换网上的不同主句提供通信服务&#xff0c;网络层的传输单位是数据报。 主要的功能&#xff1b; 1&#xff0c;路由选择&#xff1a;路由选择指网络层根据特定算法&#xff0c;为数据包从源节点到目…

Rubyer-WPF:打造优雅、精致的 WPF 用户界面

在桌面应用开发领域&#xff0c;WPF&#xff08;Windows Presentation Foundation&#xff09;凭借其强大的 UI 设计能力和丰富的功能&#xff0c;始终是开发者们青睐的工具之一。今天&#xff0c;我将为大家介绍一款专注于 WPF UI 设计的优秀项目——Rubyer-WPF&#xff0c;它…

设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析

访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你在不改变元素类的前提下定义作用于这些元素的新操作。这种模式将算法与对象结构分离&#xff0c;使得可以独立地变化那些保存在复杂对象结构中的元素的操作。 假设我们有一个复杂的对…

继承多态语法糖

抽象类(通用) 子类继承父类方法后&#xff0c;这个子类对象如果执行方法的话&#xff0c;只要子类重写了就执行子类的&#xff0c;不执行父类的。 /*** 功能&#xff1a;* 作者&#xff1a;IT伟* 日期&#xff1a;2025/1/13 19:20*/ // 抽象类 A abstract class A {// 构造函…

MarS:一个由生成基础模型驱动的金融市场模拟引擎

“MARS: A FINANCIAL MARKET SIMULATION ENGINE POWERED BY GENERATIVE FOUNDATION MODEL” 项目主页&#xff1a;https://mars-lmm.github.io/ 论文地址&#xff1a;https://arxiv.org/pdf/2409.07486 Github地址&#xff1a;https://github.com/microsoft/MarS/ 摘要 生成…

macOS 使用 FreeRDP 远程访问 Windows:完整指南20250109

&#x1f5a5;️ macOS 使用 FreeRDP 远程访问 Windows&#xff1a;完整指南 引言 随着远程办公需求的快速增长&#xff0c;跨平台远程管理已经成为不可或缺的技能之一。作为一款开源轻量的远程桌面协议实现工具&#xff0c;FreeRDP 为 macOS 用户提供了一个简单、高效的解决…

两分钟解决 :![rejected] master -> master (fetch first) , 无法正常push到远端库

目录 分析问题的原因解决 分析问题的原因 在git push的时候莫名遇到这种情况 若你在git上修改了如README.md的文件。由于本地是没有README.md文件的&#xff0c;所以导致 远端仓库git和本地不同步。 将远端、本地进行合并就可以很好的解决这个问题 注意&#xff1a;直接git pu…

计算机图形学【绘制立方体和正六边形】

工具介绍 OpenGL&#xff1a;一个跨语言的图形API&#xff0c;用于渲染2D和3D图形。它提供了绘制图形所需的底层功能。 GLUT&#xff1a;OpenGL的一个工具库&#xff0c;简化了窗口创建、输入处理和其他与图形环境相关的任务。 使用的函数 1. glClear(GL_COLOR_BUFFER_BIT |…

springboot高校教室资源管理平台

Spring Boot高校教室资源管理平台是一个基于Spring Boot框架开发的高校教室资源管理系统。 一、平台背景与意义 随着高校规模的不断扩大&#xff0c;教室资源的管理变得日益复杂。传统的管理方式往往依赖于人工记录和纸质文件&#xff0c;不仅效率低下&#xff0c;而且容易出…

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器&#xff0c;为开发者提供了一个强大的平台来实施这些实践。然而…

正点原子STM32F103战舰版电容触摸键学习

一、tpad.h代码 #ifndef __TPAD_H #define __TPAD_H#include "./SYSTEM/sys/sys.h"/******************************************************************************************/ /* TPAD 引脚 及 定时器 定义 *//* 我们使用定时器的输入捕获功能, 对TPAD进行检…

JVM:ZGC详解(染色指针,内存管理,算法流程,分代ZGC)

1&#xff0c;ZGC&#xff08;JDK21之前&#xff09; ZGC 的核心是一个并发垃圾收集器&#xff0c;所有繁重的工作都在Java 线程继续执行的同时完成。这极大地降低了垃圾收集对应用程序响应时间的影响。 ZGC为了支持太字节&#xff08;TB&#xff09;级内存&#xff0c;设计了基…

zerox - 使用视觉模型将 PDF 转换为 Markdown

7900 Stars 478 Forks 39 Issues 17 贡献者 MIT License Python 语言 代码: https://github.com/getomni-ai/zerox 主页: OmniAI. Automate document workflows 更多AI开源软件&#xff1a;AI开源 - 小众AI zerox基于视觉模型 API 服务&#xff0c;提供了将 PDF 文档转化为 Mar…

JAVA:Spring Boot 集成 JWT 实现身份验证的技术指南

1、简述 在现代Web开发中&#xff0c;安全性尤为重要。为了确保用户的身份&#xff0c;JSON Web Token&#xff08;JWT&#xff09;作为一种轻量级且无状态的身份验证方案&#xff0c;广泛应用于微服务和分布式系统中。本篇博客将讲解如何在Spring Boot 中集成JWT实现身份验证…

[论文阅读] (35)TIFS24 MEGR-APT:基于攻击表示学习的高效内存APT猎杀系统

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

目标检测中的Bounding Box(边界框)介绍:定义以及不同表示方式

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

openEuler22.03系统使用Kolla-ansible搭建OpenStack

Kolla-ansible 是一个利用 Ansible 自动化工具来搭建 OpenStack 云平台的开源项目&#xff0c;它通过容器化的方式部署 OpenStack 服务&#xff0c;能够简化安装过程、提高部署效率并增强系统的可维护性。 前置环境准备&#xff1a; 系统:openEuler-22.03-LTS-SP4 配置&…

Leecode刷题C语言之统计重新排列后包含另一个字符串的子字符串数目②

执行结果:通过 执行用时和内存消耗如下&#xff1a; void update(int *diff, int c, int add, int *cnt) {diff[c] add;if (add 1 && diff[c] 0) {// 表明 diff[c] 由 -1 变为 0(*cnt)--;} else if (add -1 && diff[c] -1) {// 表明 diff[c] 由 0 变为 -…