GET /learn/params?name=xxx&age=18
GET /learn/path/{id}
POST /learn/body
@Component, @Service, @Repository, @Controller@Autowired 依赖注入@Configuration + @Bean 配置类@RestController = @Controller + @ResponseBody@RequestMapping, @GetMapping, @PostMapping@PathVariable, @RequestParam, @RequestBody@Aspect
@Component
public class LoggingAspect {
@Before("execution(* com.example.*.*(..))")
public void logBefore(JoinPoint jp) {
System.out.println("方法调用: " + jp.getSignature());
}
}
// 发布事件
@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 配置