Spring Boot 3.x 项目搭建 (一)

以下是一个基础 Spring Boot 项目的创建指南,整合了官方推荐方式和实用配置,帮助您快速搭建可运行的项目骨架。


🌟 一、项目创建方式

1. 在线工具 Spring Initializr(推荐)
  • 步骤
    1. 访问 Spring Initializr 。
    2. 配置参数:
      • Project: Maven/Gradle(选Maven更通用)
      • Language: Java
      • Spring Boot: 最新稳定版(如3.x)
      • Group: com.example(组织标识)
      • Artifact: demo(项目名)
      • Dependencies: 添加 Spring Web(基础Web支持)。
    3. 点击 Generate 下载ZIP包,解压后导入IDE(如IntelliJ IDEA)。
2. IDE 直接创建(IntelliJ IDEA)
  • 步骤
    1. File → New → Project → Spring Initializr
    2. 填写 GroupArtifact,勾选依赖(如 Spring Web)。
    3. 完成创建,IDE 自动生成项目结构和配置文件。

📂 二、项目结构解析

生成的项目包含以下核心文件:

src/
├── main/
│   ├── java/
│   │   └── com/example/demo/
│   │       ├── DemoApplication.java   # 主启动类
│   │       ├── controller/            # 控制器层(示例:HelloWorldController)
│   ├── resources/
│       ├── application.properties      # 配置文件
│       ├── static/                     # 静态资源(CSS/JS)
│       └── templates/                  # 模板文件(HTML)
└── test/                               # 单元测试目录
pom.xml                                 # Maven依赖管理

⚙️ 三、添加基础代码

1. 示例控制器

controller 包下创建 HelloWorldController.java

package com.example.demo.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloWorldController {@GetMapping("/hello")public String hello() {return "Hello, Spring Boot!";}
}
2. 单元测试

test 目录下添加控制器测试:

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;@SpringBootTest
@AutoConfigureMockMvc
public class HelloWorldControllerTest {@Autowiredprivate MockMvc mockMvc;@Testpublic void testHello() throws Exception {mockMvc.perform(get("/hello")).andExpect(content().string("Hello, Spring Boot!"));}
}

🚀 四、运行与验证

  1. 启动项目

    • 运行 DemoApplication.java 中的 main() 方法。
    • 控制台输出 Tomcat started on port 8080 表示成功。
  2. 访问接口

    • 浏览器打开 http://localhost:8080/hello,显示 Hello, Spring Boot!
  3. 打包部署

    • 命令行执行 mvn clean package 生成 target/demo-0.0.1-SNAPSHOT.jar
    • 通过 java -jar demo-0.0.1-SNAPSHOT.jar 独立运行。

🔧 五、可选增强配置

  • 日志配置
    resources 下创建 logback-spring.xml,定制日志格式和输出路径。
  • 数据库支持
    添加依赖 spring-boot-starter-data-jpa + mysql-connector-java,配置 application.properties
    spring.datasource.url=jdbc:mysql://localhost:3306/demo
    spring.datasource.username=root
    spring.datasource.password=root
    

提示:以上项目已包含基础Web功能,如需扩展(如数据库、安全等),在 pom.xml 添加对应依赖即可。

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

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

相关文章

《天行数据查询系统项目介绍》

一、项目概述 天行数据查询系统是一款功能丰富的 Android 应用程序,旨在为用户提供便捷的信息查询服务。该系统集成了多个实用的查询功能,包括空气质量查询、天气预报查询、垃圾分类查询、新闻资讯浏览以及身份证信息查询等,方便用户一站式获…

对于服务器企业该如何进行搭建?

企业搭建服务器能够实现网络服务、数据存储和管理等功能,选择大家服务器不仅能够实现高效的资源管理和对数据信息进行安全保护,还可以满足网站运行的需求,下面,小编就主要来为大家介绍一下企业该如何进行服务器搭建? 搭…

重定向攻击与防御

一、重定向攻击的主要类型与技术原理 ICMP重定向攻击 原理:攻击者伪造网关身份发送虚假ICMP重定向报文,诱导主机修改路由表,将流量导向攻击者控制的节点。 利用工具:如netwox 86可构造恶意重定向包,源IP伪装为网关地…

SAP/S4 MM模块之主数据管理

目录 一、主要功能 1. 主数据管理 2.采购管理 3. 库存管理 二、业务价值 三、主数据常见问题 3.1. 物料主数据维护错误 3.2. 供应商数据不完整或错误 3.3. 数据录入延迟或遗漏 四、最佳实践 1. 物料主数据标准化 2. 供应商主数据优化 3.库存管控精细化 SAP MM&…

Flink Oracle CDC 总结

官方文档 https://nightlies.apache.org/flink/flink-cdc-docs-release-3.3/zh/docs/connectors/flink-sources/oracle-cdc/ 版本 Flink 1.15.3CDC 2.3.0Oracle 11G 12C (官网说支持19,未测试) Jar包 https://repo1.maven.org/maven2/co…

django request.data.get 判断有没有 某个参数

在 Django 的视图函数中,当你想要判断请求(request)中是否包含某个特定的参数,你可以使用 request.data.get() 方法。这种方法不仅适用于 POST 请求(例如,在创建资源时),也适用于任何…

SD-WAN在可扩展性与未来发展灵活性方面的优势探讨

在企业数字化转型的浪潮中,网络基础设施的灵活性和扩展性成为企业关注的核心议题之一。SD-WAN(Software-Defined Wide Area Network)作为一种新兴的网络技术,因其灵活、智能、高效的特性,逐渐取代传统WAN,成…

4.9. 环境和分布偏移

目录 4.9. 环境和分布偏移1)分布偏移的类型 4.9. 环境和分布偏移 机器学习应用常被忽视数据来源和模型输出处理。许多模型在测试集上表现好,但数据分布改变时会部署失败,甚至模型决策本身可能破坏数据分布(如贷款模型基于“穿牛津…

UI前端与数字孪生融合:打造智能工厂的可视化监控平台

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在工业 4.0 与智能制造的浪潮中,数字孪生技术正从概念走向大规模落地。据麦肯锡报…

【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集

目录 一、数据集介绍:《3D-GloBFP:全球首个三维建筑轮廓数据集》主要数据来源:模型方法:📥 二、数据下载方式方式1:Figshare方式2:下载亚洲建筑高度数据(完整版)参考🧾 数据集概述: 3D-GloBFP 是全球首个在单体建筑层面估算建筑高度的三维建筑轮廓数据集,基于 20…

python基于协同过滤的动漫推荐系统

目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中&#xf…

MySQL 中 DATE、DATETIME 和 TIMESTAMP 的区别

MySQL 中 DATE、DATETIME 和 TIMESTAMP 的区别 在 MySQL 中,DATE、DATETIME 和 TIMESTAMP 都是用于存储日期和时间的数据类型,但它们在格式、范围、存储大小、时区处理和功能上存在显著差异。以下将逐步对比这些区别,帮助您根据实际需求选择…

面试 — 预进行 — 面试前准备

好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受. 书接上回,虽然我已经阐述过一下,详见面试 — 预准备 — 面试前准备攻略,但是我还是想再说一次,毕…

“易问易视”——让数据分析像聊天一样简单

一、项目简介 “易问易视”通过自然语言理解和大语言模型技术,将用户的中文查询自动转化为数据处理指令,实现无代码的数据检索与图表生成。你只要在大屏上输入一句话,比如“2024年每月有多少人出境”,它就能自动看懂你要查的时间…

【入门级-基础知识与编程环境:9、使用图形界面新建、复制、删除、移动文件或目录】

在图形界面(GUI)中操作文件或目录(新建、复制、删除、移动)是最直观的方式,不同操作系统(Windows、macOS、Linux)的操作类似但略有差异。以下是详细步骤: Windows 系统 新建文件/目…

百度中年危机:一场艰难的突围战

自互联网萌芽阶段起,搜索引擎便在数字世界中扮演着“指南针”的角色,引领用户在海量信息洪流中精准定位所需内容。传统搜索引擎依托关键词匹配技术,构建起大规模的信息索引系统,这一模式曾助力百度等企业攀上行业高峰。 然而&…

Vue3解析Spring Boot ResponseEntity

在 Vue 3 中解析 Spring Boot 返回的 ResponseEntity 主要涉及处理 HTTP 响应。Spring Boot 的 ResponseEntity 通常包含状态码、响应头和响应体(JSON 数据为主)。以下是详细步骤和代码示例: 解决方案步骤: 发送 HTTP 请求&#x…

深入掌握MyBatis:核心解析

一、MyBatis核心架构解析 1. 什么是MyBatis? MyBatis是一款半自动ORM框架,它通过XML或注解将SQL与Java对象映射,提供比Hibernate更灵活的SQL控制能力,同时消除了传统JDBC的样板代码。 2. 核心组件关系图 3. 核心组件职责 组件…

通达信 超级趋势强悍 幅图指标公式

指标用法说明 核心逻辑 该指标通过结合价格趋势、波动率和支撑阻力分析来识别潜在的买入机会和趋势转折点。 主要组成部分 趋势判断: 使用19日和7日EMA的交叉判断趋势方向 股道_Q_3:19日EMA上穿7日EMA(看涨信号) 股道_Q_4:7日EMA上穿19日EMA(看跌信号) 支撑阻力线: …

knowledge-vue2项目(Electron)打包为PC桌面应用程序

1.使用nvm管理node版本 不同的项目开发需要的node版本环境不一样,所以需要使用nvm进行版本管理。 关键命令: (1)检查nvm版本号是否安装成功 nvm -v (2)检查所有node版本号 nvm ls (3)安装指定node版…