首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
【springboot基础语法学与练】第 1 课:从零开始
📅 2026/10/12 2:18:04
✍️ 爱科研究院
👁 阅读 3,247
第 1 课从零开始本课目标先把第一个 Spring Boot 项目跑起来并理解最核心的几个注解。环境准备推荐环境· JDK 17 或以上· Maven 3.6· IDEA / Eclipse / VS Code 都可以· Spring Boot 3.x检查命令java-versionmvn-v注意Spring Boot 3 要求 Java 17。如果你只有 JDK 8可以用 Spring Boot 2.7.x。创建项目最简单的方式是打开https://start.spring.io选择· ProjectMaven· LanguageJava· Spring Boot3.3.x· Groupcom.example· Artifactdemo· PackagingJar· Java17· Dependencies添加 Spring Web点击 Generate下载解压然后用 IDEA 打开。项目结构大致如下demo ├── pom.xml └── src ├── main │ ├── java │ │ └── com/example/demo │ │ ├── DemoApplication.java │ │ └── controller │ │ └── HelloController.java │ └── resources │ └── application.properties └── test └── java/com/example/demo/DemoApplicationTests.java核心依赖pom.xml关键部分如下parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.3.5/versionrelativePath//parentpropertiesjava.version17/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/buildspring-boot-starter-web 会自动引入 Spring MVC、内嵌 Tomcat、JSON 转换等。启动类文件src/main/java/com/example/demo/DemoApplication.javapackagecom.example.demo;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoApplication.class,args);}}SpringBootApplication 是 Spring Boot 最核心的注解它包含· SpringBootConfiguration· EnableAutoConfiguration· ComponentScan所以启动类要放在最外层包Controller 要放在它的同级包或子包中。第一个接口Hello World新建文件src/main/java/com/example/demo/controller/HelloController.javapackagecom.example.demo.controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;RestControllerpublicclassHelloController{GetMapping(/hello)publicStringhello(){returnHello, Spring Boot!;}}解释· RestController表示这是一个返回数据的控制器。· GetMapping(“/hello”)把 HTTP GET 请求 /hello 映射到 hello() 方法。· 返回的字符串会直接写入 HTTP 响应体。配置文件文件src/main/resources/application.propertiesspring.application.namedemo server.port8080server.port8080 表示 Tomcat 启动端口是 8080。如果 8080 被占用可以改成server.port8081运行项目方式一IDEA 中直接运行 DemoApplication 的 main 方法。方式二命令行运行mvn spring-boot:run看到类似日志Tomcat started on port 8080说明启动成功。浏览器访问http://localhost:8080/hello页面显示Hello, Spring Boot!本课必须记住的 3 个注解· SpringBootApplication启动类开启自动配置和组件扫描。· RestController控制器返回 JSON 或字符串。· GetMapping映射 GET 请求。再记住一句话Spring Boot 约定大于配置主类在根包Controller 在子包resources 下的 application.properties 会自动加载。练习练习 1返回中文题目要求把原来的 /hello 接口改成返回中文你好Spring Boot答案packagecom.example.demo.controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;RestControllerpublicclassHelloController{GetMapping(/hello)publicStringhello(){return你好Spring Boot;}}解读GetMapping(“/hello”) 仍然映射 GET 请求 /hello。方法返回 String 时Spring MVC 会把这个字符串直接写入 HTTP 响应体。现代 Spring Boot 默认使用 UTF-8所以返回中文一般不会乱码。访问地址还是http://localhost:8080/hello练习 2新增当前时间接口题目要求新增一个 GET 接口 /time返回当前时间字符串。答案packagecom.example.demo.controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;importjava.time.LocalDateTime;RestControllerpublicclassHelloController{GetMapping(/hello)publicStringhello(){return你好Spring Boot;}GetMapping(/time)publicStringtime(){returnLocalDateTime.now().toString();}}解读新增方法后加上 GetMapping(“/time”)Spring Boot 就会把 /time 请求交给这个方法。LocalDateTime.now() 获取当前系统时间。toString() 把时间对象转换成字符串例如2026-09-15T10:30:45.123访问地址http://localhost:8080/time练习 3接收请求参数题目要求新增一个 GET 接口 /greet接收一个 name 参数。如果请求没有传 name默认使用“世界”。返回你好xxx答案packagecom.example.demo.controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importjava.time.LocalDateTime;RestControllerpublicclassHelloController{GetMapping(/hello)publicStringhello(){return你好Spring Boot;}GetMapping(/time)publicStringtime(){returnLocalDateTime.now().toString();}GetMapping(/greet)publicStringgreet(RequestParam(defaultValue世界)Stringname){return你好name;}}解读RequestParam 用来接收 URL 查询参数。defaultValue “世界” 表示如果请求里没有 name 参数就使用“世界”。访问不带参数http://localhost:8080/greet返回你好世界访问带参数http://localhost:8080/greet?name张三返回你好张三注意如果写成 ?name表示参数存在但值为空这时不会使用默认值。练习 4修改端口题目要求把项目启动端口从 8080 改成 8081。修改后重新启动并通过 8081 访问 /hello。答案打开 src/main/resources/application.properties改成spring.application.namedemo server.port8081然后停止项目重新启动。访问http://localhost:8081/hello解读application.properties 是 Spring Boot 的默认配置文件项目启动时会自动读取。server.port 是 Spring Boot 的标准配置项用来指定内嵌 Tomcat 的端口。修改端口后必须重启项目才会生效。如果 8081 也被占用可以继续改成 8082、8083 等。练习 5打包运行题目要求使用 Maven 把项目打包成可执行 jar然后用 java -jar 启动。答案在项目根目录执行mvn clean package打包成功后执行java-jartarget/demo-0.0.1-SNAPSHOT.jar然后访问http://localhost:8080/hello如果你已经改过端口就访问对应端口例如http://localhost:8081/hello解读mvn clean package 会清理并打包项目。Spring Boot 项目引入了 spring-boot-maven-plugin 后会生成可执行 jar。这个 jar 里面已经包含了项目依赖和内嵌 Tomcat所以不需要额外安装 Tomcat。java -jar 可以直接启动这个 jar。jar 文件名通常由 artifactId 和 version 决定。如果 artifactId 是 demo版本是 0.0.1-SNAPSHOT文件名就是demo-0.0.1-SNAPSHOT.jar常见错误· 404 Not Found多半是 Controller 不在启动类的同级包或子包中。· 端口被占用改 server.port8081或关闭占用 8080 的进程。· 依赖下载失败检查 Maven 配置可以换阿里云镜像。· Java 版本不匹配Spring Boot 3 必须用 JDK 17。本课小结你已经完成第一个 Spring Boot 项目· 创建 Maven 项目· 引入 spring-boot-starter-web· 编写 SpringBootApplication 启动类· 编写 RestController· 使用 GetMapping 提供接口· 通过 application.properties 修改端口· 运行并访问 /hello· 完成 5 个基础练习下一课可以继续学REST 接口、参数传递、JSON 返回、Controller / Service 分层。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/12 2:18:04
Go 解 LeetCode 350《两个数组的交集》:哈希表与双指针双解法详解(interview-go 仓库实战)
2026/10/12 2:18:04
集思广益——多 Agent 投票与结果汇总(用多数人的智慧压住随机性)
2026/10/12 2:18:04
如何给老款 Mac 升级最新 macOS:OCLP 完整三段式安装指南
2026/10/12 3:18:10
ClosedXML 工作表 API 完全指南:深入解析 IXLWorksheet 的每个成员与底层实现
2026/10/12 3:18:10
GoPay 新增支付接口全流程指南:从接口文档分析到提交合入(以微信支付 V3 医保自费混合收款为例)
2026/10/12 3:18:10
G-Helper 单文件硬件控制工具:一个 exe 搞定性能模式与风扇调优
2026/10/12 3:18:10
Tortoise ORM 时区体系完全指南:use_tz 与 timezone 配置的深度解析
2026/10/12 3:18:10
移动端线上作业系统实战:Spring Boot全栈开发与避坑指南
2026/10/12 3:13:10
LangGraph时间旅行机制:Checkpoint与状态恢复实战指南
2026/10/12 0:02:51
你的 AI 编程 CLI 配置管理工具来了:用 TaoToken 统一管理 Claude Code 与 Codex 的 Base URL
2026/10/12 0:02:51
Susi AI API实战指南:susi_alexa_skill如何用Node.js调用chat.json获取智能回答
2026/10/12 0:02:51
换新电脑了?KeyStats 恢复码数据找回完全指南,端到端加密统计一键重建
2026/10/11 0:00:10
流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南
2026/10/11 0:00:10
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别
2026/10/11 0:00:10
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容
2026/10/11 19:13:46
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/11 21:41:11
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/11 23:43:10
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)