# 🍃 Spring Boot 学习中心

### 📚 学习模块

#### 👥 用户管理

RESTful API 设计、CRUD 操作、参数绑定

#### 🔪 AOP 切面编程

日志记录、性能监控、限流控制

#### 📡 事件机制

发布/订阅模式、解耦业务逻辑

## 🔗 快速链接

API 接口列表 用户 JSON 健康检查

## 🧪 接口测试

### GET 参数示例

`GET /learn/params?name=xxx&age=18`

### 路径变量示例

`GET /learn/path/{id}`

### POST JSON 示例

`POST /learn/body`

## 📖 学习路径

### 1. IOC 容器

- `@Component`, `@Service`, `@Repository`, `@Controller`
- `@Autowired` 依赖注入
- `@Configuration` + `@Bean` 配置类

### 2. Web 开发

- `@RestController` = `@Controller` + `@ResponseBody`
- `@RequestMapping`, `@GetMapping`, `@PostMapping`
- `@PathVariable`, `@RequestParam`, `@RequestBody`

### 3. AOP 切面编程

    @Aspect
    @Component
    public class LoggingAspect {
        @Before("execution(* com.example.*.*(..))")
        public void logBefore(JoinPoint jp) {
            System.out.println("方法调用: " + jp.getSignature());
        }
    }

### 4. 事件机制

    // 发布事件
    @Autowired
    ApplicationEventPublisher publisher;
    publisher.publishEvent(new UserEvent(...));

    // 监听事件
    @EventListener
    public void onEvent(UserEvent event) {
        // 处理事件
    }

## 📁 项目结构

    ├── src/main/java/com/example/demo/
    │   ├── DemoApplication.java       # 启动类
    │   ├── controller/                # 控制器层
    │   │   ├── LearnController.java   # 学习示例
    │   │   ├── UserController.java    # 用户 API
    │   │   └── AopEventController.java
    │   ├── service/                   # 业务逻辑层
    │   ├── model/                     # 实体类
    │   ├── aop/                       # AOP 切面
    │   │   ├── LoggingAspect.java
    │   │   ├── PerformanceAspect.java
    │   │   └── RateLimitAspect.java
    │   └── event/                     # 事件机制
    │       ├── UserEventPublisher.java
    │       └── UserEventListener.java
    ├── src/main/resources/
    │   ├── static/                    # 静态资源
    │   │   ├── index.html
    │   │   ├── users.html
    │   │   ├── aop.html
    │   │   └── events.html
    │   └── application.properties     # 配置文件
    └── pom.xml                        # Maven 配置