1、@Controller
表示这是控制器Controller对象
name-对象的Bean名字,允许为空
2、@RestController
是@Controller和@ResponseBody的组合注解,直接使用接口方法的返回结果。
3、@RequestMapping
标记类/方法对应接口的配置信息。
常用属性:
path-接口路径。[]数组,可填写多个接口路径
values-同path,是path的别名
method-请求方式,get、post、delete、put等。[]数组,可填写多个请求方式
不常用属性:
name-接口名,一般为空
params-请求参数名,可填写多个参数名。如果为空,则匹配所有方法。
headers-请求头,类似params
consumes-提交内容类型,类似params
produces-请求头Accept可接受类型,类似params
4、@GetMappinp
对应get请求方式的@RequestMapping注解
5、@PostMapping
对应post
6、@PutMapping
对应put
7、@DeleteMapping
对应delete
8、@RequestParams
添加在方法参数前,标记方法参数对应的请求参数
name-请求参数名,可为空,为空则使用方法参数名
value-name的别名
required-参数是否必传,默认true
defaultValue-参数默认值
9、@PathVariable
标记接口路径和方法参数的映射关系。使用这个注解,会造成性能下滑,一般使用@Requestparams
10、@Retention
元注解,标识@Retention下的注解保留方式
source-只保留在源文件,编译成class文件时被遗弃
class-只保留在class文件,jvm加载class文件时被遗弃
runtime-jvm加载后还存在
一般如果需要在运行时去动态获取注解信息,那只能用 RUNTIME 注解;如果要在编译时进行一些预处理操作,比如生成一些辅助代码(如 ButterKnife),就用 CLASS注解;如果只是做一些检查性的操作,比如 @Override 和 @SuppressWarnings,则可选用 SOURCE 注解
11、@Target
注解的作用目标,需要带上@Retention
TYPE-接口、类、枚举、注解
FIELD-字段、枚举的常量
METHOD-方法
PARAMETER-方法参数
CONSTRUCTOR-构造函数
LOCAL_VARIABLE-局部变量
ANNOTATION_TYPE-注解
PACKAGE-包
12、@CrossCors
标记类或方法上
常用属性:
origins-设置允许的请求来源。[]数组,可以填写多个请求来源,默认为*
value-origins的别名
allowCredentials-是否允许客户端请求发送Cookie。默认为false,不允许发送Cookie
maxAge-本次预检请求的有效期,单位为秒,默认为1800秒
不常用属性:
methods-设置允许请求的方法。[]数组,可以填写多个请求方法,默认为Get+Post
allowedHeaders-允许的请求头Header。[]数组,可以填写多个请求来源,默认为*
exposedHeaders-允许的响应头Header。[]数组,k恶意填写多个请求来源,默认为*
13、@ResponseBody
将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象
14、@RequestBody
解析请求体然后映射到参数,一般用于post请求。get请求使用@pathVariable或@requestParam。
15、@Component
保证该配置类可以作为一个 Bean 被扫描到
16、@ConfigurationProperties
读取前缀为prefix = "xxx" 的配置项设置到配置类对应的属性上
17、DO、VO、DTO
DO:
数据库实体对象
VO:
视图对象,常做API接口传输对象
DTO:
传输对象,常做RPC之间传输对象
18、@Order
设置过滤器的顺序
文章评论