Spring 框架入门:从零开始构建你的第一个应用
1. 引言Spring 是 Java 领域最受欢迎的企业级应用开发框架之一。它通过提供全面的编程和配置模型简化了企业级 Java 应用的开发使其更加模块化、可测试和可维护。无论是构建微服务、Web 应用还是数据访问层Spring 都提供了强大的支持。本文将带你从零开始了解 Spring 的核心概念并动手搭建你的第一个 Spring Boot 应用。2. Spring 核心概念在深入代码之前理解 Spring 的几个核心概念至关重要控制反转 (IoC)这是 Spring 的基石。传统上对象自己负责创建和管理其依赖。而在 IoC 模式下这个责任被转移给了“容器”Spring IoC 容器。你只需定义好对象Bean及其依赖关系容器负责实例化、组装和管理它们的生命周期。依赖注入 (DI)这是实现 IoC 的一种具体方式。Spring 容器通过构造函数、Setter 方法或字段直接将依赖对象“注入”到目标对象中而不是让目标对象自己去查找或创建依赖。面向切面编程 (AOP)允许你将跨越应用程序多个模块的横切关注点如日志、事务、安全模块化。AOP 让你能专注于核心业务逻辑而将通用功能切面分离出来。Spring BootSpring 的一个子项目旨在简化 Spring 应用的初始搭建和开发过程。它通过“约定大于配置”的原则提供了自动配置、内嵌 Web 服务器如 Tomcat和“起步依赖”Starter让你能快速创建独立运行的、生产级的 Spring 应用。3. 环境准备开始之前请确保你的开发环境已就绪Java 开发工具包 (JDK)Spring Boot 3.x 需要 JDK 17 或更高版本。推荐使用 JDK 17 或 21。构建工具可以选择 Maven 或 Gradle。本文将以 Maven 为例。集成开发环境 (IDE)推荐使用 IntelliJ IDEA社区版或旗舰版、Spring Tools Suite (STS) 或 VS Code。网络连接用于从 Maven 中央仓库下载依赖。4. 创建第一个 Spring Boot 应用我们将使用 Spring Initializr 来快速生成项目骨架这是 Spring 官方提供的项目初始化工具。步骤 1访问 Spring Initializr打开浏览器访问 https://start.spring.io。步骤 2配置项目在页面上进行如下配置Project: MavenLanguage: JavaSpring Boot: 选择最新的稳定版本如 3.x.xGroup:com.example(你的组织域名可自定义)Artifact:demo(你的项目名可自定义)Name:demoDescription:Demo project for Spring BootPackage name:com.example.demoPackaging: JarJava: 17 或 21步骤 3添加依赖在Dependencies区域点击 “ADD DEPENDENCIES”搜索并添加Spring Web: 用于构建 Web 应用包含 RESTful API 支持。步骤 4生成项目点击页面底部的GENERATE按钮下载生成的demo.zip文件。步骤 5导入项目解压demo.zip文件并用你的 IDE如 IntelliJ IDEA打开解压后的文件夹。5. 项目结构与代码导入项目后你会看到类似如下的目录结构demo/ ├── src/ │ ├── main/ │ │ ├── java/com/example/demo/ │ │ │ ├── DemoApplication.java // 主启动类 │ │ │ └── controller/ // (待创建) 控制器层 │ │ └── resources/ │ │ ├── static/ // 静态资源 │ │ ├── templates/ // 模板文件 │ │ └── application.properties // 配置文件 │ └── test/ // 测试代码 └── pom.xml // Maven 配置文件步骤 6创建 REST 控制器在src/main/java/com/example/demo/目录下新建一个controller包并在其中创建HelloController.java文件packagecom.example.demo.controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;RestController// 声明这是一个 REST 控制器publicclassHelloController{GetMapping(/hello)// 映射 HTTP GET 请求到 /hello 路径publicStringsayHello(){returnHello, Spring Boot!;}}步骤 7运行应用找到src/main/java/com/example/demo/DemoApplication.java文件这是 Spring Boot 应用的入口。直接运行其中的main方法。packagecom.example.demo;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication// 核心注解启用自动配置和组件扫描publicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoApplication.class,args);}}控制台会输出大量日志当你看到类似Tomcat started on port(s): 8080 (http)的信息时说明应用已成功启动。步骤 8测试应用打开浏览器或使用curl命令访问http://localhost:8080/hello。你将看到页面上显示Hello, Spring Boot!恭喜你的第一个 Spring Boot 应用已经成功运行。6. 核心注解解析让我们回顾一下代码中用到的几个关键注解SpringBootApplication这是一个组合注解包含了SpringBootConfiguration、EnableAutoConfiguration和ComponentScan。它标记了主配置类并开启了 Spring Boot 的自动配置和组件扫描。RestController组合了Controller和ResponseBody。它告诉 Spring 这个类是一个控制器并且其所有方法的返回值都应直接写入 HTTP 响应体而不是跳转到视图。GetMapping是RequestMapping(method RequestMethod.GET)的简写。它将 HTTP GET 请求映射到特定的处理方法上。

相关新闻

AI测试智能体来了:APP自动化测试中的弹窗难题终于有解了——爱测智能测试平台 AI 自动化测试智能体 POC 实践案例

AI测试智能体来了:APP自动化测试中的弹窗难题终于有解了——爱测智能测试平台 AI 自动化测试智能体 POC 实践案例

关注 霍格沃兹软件测试开发 公众号,回复「资料」, 领取人工智能测试开发技术合集在移动端自动化测试过程中,有一个长期困扰测试团队的问题:自动化脚本能够执行,但遇到弹窗后,经常失败。例如:首次启动 App 的…

2026/11/1 20:57:32 阅读更多 →
物联网硬件安全防护:SE050与STM32F765ZI实战指南

物联网硬件安全防护:SE050与STM32F765ZI实战指南

1. 为什么物联网设备需要硬件级安全防护在智慧城市、工业4.0等场景中,我们经常看到这样的案例:某智能路灯控制系统被入侵导致城市照明瘫痪,或者工厂传感器数据被篡改引发生产事故。传统基于软件加密的方案存在致命缺陷——密钥存储在Flash中容…

2026/10/31 21:50:38 阅读更多 →
纽扣电池增强方案:提升物联网设备续航与电流能力

纽扣电池增强方案:提升物联网设备续航与电流能力

1. 纽扣电池增强方案的技术背景在物联网设备和便携式电子产品中,CR2032这类纽扣电池因其体积小、能量密度高的特点被广泛使用。但这类电池存在两个固有缺陷:一是内部阻抗较高(通常达10-20Ω),导致大电流输出时电压骤降…

2026/11/3 7:08:18 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/4 1:35:24 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/4 6:23:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/4 19:19:54 阅读更多 →

日新闻

周新闻

月新闻