Spring Boot【官网介绍】-- 001
Introduction
TODO: Spring Boot简化Java企业级开发
特征
- 创建独立的Spring App
- 内嵌Tomcat、Jetty、Undertow(无需部署任何WAR文件)
- 提供启动配置依赖项,简化构建配置
- 自动配置Spring和第三方依赖库
- 可用于生产的功能,eg: 指标、运行状况检查和外部化配置
- 没有任何代码生成,不需要XML配置
第一个HelloWorld
构建RESTful Web服务
构建一个接收HTTP GET请求的服务,以JSON形式来响应用户的请求
{"id":1,"content":"Hello, World!"} // 此时响应默认不带参数的默认请求
在查询字符串中使用可选参数来定义
name的参数将覆盖的默认值World并如下进行响应:
{"id":1,"content":"Hello, User!"}
- 创建资源表示形式类
服务交互过程:
该服务将处理http://localhost:8080/greeting (GET请求)并使用可选name来查询参数,该GET请求应200 OK
在正文中返回表示JSON的响应。
eg:
{ "id": 1, "content": "Hello, World" }
id
是实例greeting的唯一标识符,content
是响应的问候语文本表示形式
- Greeting实体构建(简单Java类)
public class Greeting { private final long id; private final String content; public Greeting(long id, String content){ this.id = id; this.content = content; } public long getId(){ return id; } public String getContent(){ return content; } }
Spring Boot App将默认使用spring-starter-web下的默认Jackson JSON库来自动将类型的实例Greeting封装为JSON。网络启动器默认包含Jackson
- 创建要给资源控制器
在Spring构建RESTful Web服务的方法中,HTTP请求由控制器处理。
@RestController public class GreetingController { private static final String template = "Hello, %s"; //响应文本 private static final AtomicLong counter = new AtomicLong(); @GetMapping("/greeting") public Greeting greeting(@RequestParam(name="name",defaultValue = "World")String name){ return new Greeting(counter.incrementAndGet(), String.format(template, name)); } } // @GetMapping注解确保 HTTP GET请求将 http://localhost:8080/greeting 映射到 greeting()方法中
注解 | 等价注解 |
---|---|
@RequestMapping(method=GET) | @GetMapping |
@RequestMapping(method=POST) | @PostMapping |
小结:
-
-
public Greeting getinfo(@RequestParam(value="name",defaultValue="world")String name){}
@ReqeustParam将请求中的name(key)的值(Value)绑定到name上 -
传统的MVC控制器和RESTful Web服务器之间的主要区别在于:创建HTTP响应主体的方式不同(RESTful Web服务控制器填充并返回一个Greeting对象并不会依赖于任何视图技术而是将对象数据包装为JSON直接写入HTTP响应中)
-
【@RestController = @Controller + @ResponseBody】该注解将类标记为控制器,其中每个方法均返回域对象而不是视图
-
【@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan】
- @Configuration: 自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,将这些bean定义加载到IoC容器中.
- @EnableAutoConfiguration: 程序启动时,自动加载springboot默认的配置.
- @ComponentScan: 程序启动时自动扫描当前包及子包下所有类.
- 打包:
java -jar target / gs-rest-service-0.1.0.jar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具