---
slug: /getting-started
sidebar_position: 2
title: 快速开始
---
# 快速开始
本页带你在 5 分钟内把 Coco Framework 接入一个 Spring Boot 应用。
## 前置要求
- JDK 17 及以上
- Maven 3.8.9 及以上
## 1. 引入依赖
业务应用使用 `coco-parent` 作为父 POM,并引入一个 starter:
```xml
io.github.patton174
coco-parent
${coco.version}
io.github.patton174
coco-spring-boot-starter
```
:::info[版本]
在 [Maven Central](https://central.sonatype.com/artifact/io.github.patton174/coco-framework) 查看最新发布版本,替换 `${coco.version}`。
:::
如果不想使用 `coco-parent` 作为父 POM,也可以通过 BOM 管理版本:
```xml
io.github.patton174
coco-dependencies
${coco.version}
pom
import
```
## 2. 编写业务 Controller
业务 Controller 仍然是普通 Spring 代码——框架不引入新的编程模型:
```java
@RestController
@RequestMapping("/orders")
class OrderController {
private final OrderService orderService;
OrderController(OrderService orderService) {
this.orderService = orderService;
}
@GetMapping("/{id}")
OrderResponse get(@PathVariable String id) {
return this.orderService.get(id);
}
}
```
返回值会被框架的统一响应封装自动包裹为:
```json
{
"success": true,
"code": 0,
"message": "",
"data": { "id": "1", "amount": 100 }
}
```
## 3. 启动应用
```bash
mvn spring-boot:run
```
启动时控制台会打印 Coco 启动横幅,并列出已启用的功能。此时你已经获得:
- 统一响应封装
- 全局异常处理 + TraceId
- 一整套可通过配置启停的基础设施
## 4. 按需开启功能
大部分功能默认关闭或按依赖存在与否条件装配。通过 YAML 声明式开启,例如启用幂等:
```yaml
coco:
idempotency:
enabled: true
```
```java
@PostMapping
@CocoIdempotent(namespace = "orders")
OrderResponse create(@RequestBody CreateOrderRequest request) {
return this.orderService.create(request);
}
```
## 下一步
- [特性开关](/feature-toggles) — 全局启停功能的两种方式
- [Web 运行时](/features/web-runtime) — 统一响应、异常处理、TraceId 的细节
- 按左侧目录浏览每个功能模块的接入方式