1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00

Update spring-annotations.md

This commit is contained in:
shuang.kou 2020-04-23 15:17:34 +08:00
parent c0da649389
commit 768c2215f8

View File

@ -1,8 +1,8 @@
### 文章目录:
### 文章目录
<!-- TOC -->
- [文章目录](#%e6%96%87%e7%ab%a0%e7%9b%ae%e5%bd%95)
- [文章目录](#%e6%96%87%e7%ab%a0%e7%9b%ae%e5%bd%95)
- [0.前言](#0%e5%89%8d%e8%a8%80)
- [1. `@SpringBootApplication`](#1-springbootapplication)
- [2. Spring Bean 相关](#2-spring-bean-%e7%9b%b8%e5%85%b3)
@ -11,12 +11,12 @@
- [2.3. `@RestController`](#23-restcontroller)
- [2.4. `@Scope`](#24-scope)
- [2.5. `Configuration`](#25-configuration)
- [3. 处理常见的HTTP请求类型](#3-%e5%a4%84%e7%90%86%e5%b8%b8%e8%a7%81%e7%9a%84http%e8%af%b7%e6%b1%82%e7%b1%bb%e5%9e%8b)
- [3.1. GET请求](#31-get%e8%af%b7%e6%b1%82)
- [3.2. POST请求](#32-post%e8%af%b7%e6%b1%82)
- [3.3. PUT请求](#33-put%e8%af%b7%e6%b1%82)
- [3.4. **DELETE请求**](#34-delete%e8%af%b7%e6%b1%82)
- [3.5. **PATCH请求**](#35-patch%e8%af%b7%e6%b1%82)
- [3. 处理常见的 HTTP 请求类型](#3-%e5%a4%84%e7%90%86%e5%b8%b8%e8%a7%81%e7%9a%84-http-%e8%af%b7%e6%b1%82%e7%b1%bb%e5%9e%8b)
- [3.1. GET 请求](#31-get-%e8%af%b7%e6%b1%82)
- [3.2. POST 请求](#32-post-%e8%af%b7%e6%b1%82)
- [3.3. PUT 请求](#33-put-%e8%af%b7%e6%b1%82)
- [3.4. **DELETE 请求**](#34-delete-%e8%af%b7%e6%b1%82)
- [3.5. **PATCH 请求**](#35-patch-%e8%af%b7%e6%b1%82)
- [4. 前后端传值](#4-%e5%89%8d%e5%90%8e%e7%ab%af%e4%bc%a0%e5%80%bc)
- [4.1. `@PathVariable` 和 `@RequestParam`](#41-pathvariable-%e5%92%8c-requestparam)
- [4.2. `@RequestBody`](#42-requestbody)
@ -28,8 +28,8 @@
- [6.1. 一些常用的字段验证的注解](#61-%e4%b8%80%e4%ba%9b%e5%b8%b8%e7%94%a8%e7%9a%84%e5%ad%97%e6%ae%b5%e9%aa%8c%e8%af%81%e7%9a%84%e6%b3%a8%e8%a7%a3)
- [6.2. 验证请求体(RequestBody)](#62-%e9%aa%8c%e8%af%81%e8%af%b7%e6%b1%82%e4%bd%93requestbody)
- [6.3. 验证请求参数(Path Variables 和 Request Parameters)](#63-%e9%aa%8c%e8%af%81%e8%af%b7%e6%b1%82%e5%8f%82%e6%95%b0path-variables-%e5%92%8c-request-parameters)
- [7. 全局处理Controller层异常](#7-%e5%85%a8%e5%b1%80%e5%a4%84%e7%90%86controller%e5%b1%82%e5%bc%82%e5%b8%b8)
- [8. JPA相关](#8-jpa%e7%9b%b8%e5%85%b3)
- [7. 全局处理 Controller 层异常](#7-%e5%85%a8%e5%b1%80%e5%a4%84%e7%90%86-controller-%e5%b1%82%e5%bc%82%e5%b8%b8)
- [8. JPA 相关](#8-jpa-%e7%9b%b8%e5%85%b3)
- [8.1. 创建表](#81-%e5%88%9b%e5%bb%ba%e8%a1%a8)
- [8.2. 创建主键](#82-%e5%88%9b%e5%bb%ba%e4%b8%bb%e9%94%ae)
- [8.3. 设置字段类型](#83-%e8%ae%be%e7%bd%ae%e5%ad%97%e6%ae%b5%e7%b1%bb%e5%9e%8b)
@ -40,17 +40,16 @@
- [8.8. 删除/修改数据](#88-%e5%88%a0%e9%99%a4%e4%bf%ae%e6%94%b9%e6%95%b0%e6%8d%ae)
- [8.9. 关联关系](#89-%e5%85%b3%e8%81%94%e5%85%b3%e7%b3%bb)
- [9. 事务 `@Transactional`](#9-%e4%ba%8b%e5%8a%a1-transactional)
- [10. json数据处理](#10-json%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86)
- [10.1. 过滤json数据](#101-%e8%bf%87%e6%bb%a4json%e6%95%b0%e6%8d%ae)
- [10.2. 格式化json数据](#102-%e6%a0%bc%e5%bc%8f%e5%8c%96json%e6%95%b0%e6%8d%ae)
- [10. json 数据处理](#10-json-%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86)
- [10.1. 过滤 json 数据](#101-%e8%bf%87%e6%bb%a4-json-%e6%95%b0%e6%8d%ae)
- [10.2. 格式化 json 数据](#102-%e6%a0%bc%e5%bc%8f%e5%8c%96-json-%e6%95%b0%e6%8d%ae)
- [10.3. 扁平化对象](#103-%e6%89%81%e5%b9%b3%e5%8c%96%e5%af%b9%e8%b1%a1)
- [11. 测试相关](#11-%e6%b5%8b%e8%af%95%e7%9b%b8%e5%85%b3)
<!-- /TOC -->
### 0.前言
*大家好我是Guide哥这是我的221篇优质原创文章。如需转载请在文首注明地址蟹蟹*
_大家好我是 Guide 哥!这是我的 221 篇优质原创文章。如需转载请在文首注明地址蟹蟹_
本文已经收录进我的 75K Star 的 Java 开源项目 JavaGuide[https://github.com/Snailclimb/JavaGuide](https://github.com/Snailclimb/JavaGuide)。
@ -66,7 +65,7 @@
这里先单独拎出`@SpringBootApplication` 注解说一下,虽然我们一般不会主动去使用它。
*Guide哥这个注解是 Spring Boot项目的基石创建SpringBoot项目之后会默认在主类加上。*
_Guide 哥:这个注解是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。_
```java
@SpringBootApplication
@ -144,7 +143,7 @@ public class UserController {
`@RestController`注解是`@Controller和`@`ResponseBody`的合集,表示这是个控制器 bean,并且是将函数的返回值直 接填入 HTTP 响应体中,是 REST 风格的控制器。
*Guide哥:现在都是前后端分离,说实话我已经很久没有用过`@Controller`。如果你的项目太老了的话,就当我没说。*
_Guide 哥:现在都是前后端分离,说实话我已经很久没有用过`@Controller`。如果你的项目太老了的话,就当我没说。_
单独使用 `@Controller` 不加 `@ResponseBody`的话一般使用在要返回一个视图的情况,这种情况属于比较传统的 Spring MVC 的应用,对应于前后端不分离的情况。`@Controller` +`@ResponseBody` 返回 JSON 或 XML 形式数据
@ -477,7 +476,6 @@ public class PersonController {
}
```
#### 6.3. 验证请求参数(Path Variables 和 Request Parameters)
**一定一定不要忘记在类上加上 `Validated` 注解了,这个参数可以告诉 Spring 去校验方法参数。**
@ -522,6 +520,7 @@ public class GlobalExceptionHandler {
}
}
```
更多关于 Spring Boot 异常处理的内容,请看我的这两篇文章:
1. [SpringBoot 处理异常的几种常见姿势](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485568&idx=2&sn=c5ba880fd0c5d82e39531fa42cb036ac&chksm=cea2474bf9d5ce5dcbc6a5f6580198fdce4bc92ef577579183a729cb5d1430e4994720d59b34&token=2133161636&lang=zh_CN#rd)
@ -564,7 +563,7 @@ private Long id;
JPA 使用枚举定义了 4 中常见的主键生成策略,如下:
*Guide哥枚举替代常量的一种用法*
_Guide 哥枚举替代常量的一种用法_
```java
public enum GenerationType {
@ -1006,8 +1005,6 @@ public abstract class TestBase {
}
```
*暂时总结到这里吧虽然花了挺长时间才写完不过可能还是会一些常用的注解的被漏掉所以我将文章也同步到了Github上去Github地址 欢迎完善!*
_暂时总结到这里吧虽然花了挺长时间才写完不过可能还是会一些常用的注解的被漏掉所以我将文章也同步到了 Github 上去Github 地址: 欢迎完善_
本文已经收录进我的 75K Star 的 Java 开源项目 JavaGuide[https://github.com/Snailclimb/JavaGuide](https://github.com/Snailclimb/JavaGuide)。