注解

注解

分类 --jdk提供的五个注解,常用的@Override

--元注解五个,常用的是@Target / @Retention

--通常配合元注解完成自定义注解

@Target

--用来指定 注解可以出现的位置

--比如出现在: 类上,方法上,成员变量上,局部变量上...

--值被维护在了工具类 ElementType.class

@Retention

--用来指定 注解的生命周期

--比如: .java文件中 .class文件中 runtime时

--值被维护在了工具类 RetentionPolicy.class

 

自定义注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//测试 注解
public class Test4 {
}
//第一步,@interface定义注解 -- 语法和java不太一样
//1,@Target--描述注解可以出现的位置--ElementType
//2,@Retention--描述注解的生命周期--RetentionPolicy
//@Target( ElementType.FIELD } )//FIELD表示可以出现在成员变量上
@Target({ ElementType.FIELD , ElementType.METHOD })//可以 同时出现在 多个位置上
@Retention(RetentionPolicy.SOURCE)//SOURCE表示可以在.java文件中存在
@interface Controller{
//3,给注解添加功能--属性
// String name() default ""; //4,给属性设置默认值
String name();//5,属性没有默认值, 就要求使用时必须赋值了...
}
//第二步,使用注解 @Controller
//@Controller//1, 报错,出现在了错误的位置
class Hello{
@Controller(name="name属性要用")//6,给name属性赋值
String name;
@Controller(name="show()")
public void show(int a){
System.out.println(a);
}
}

@RequestBody 一般都是post请求,参数前面的注解

@RequestParam 可以和 @RequestBody一起使用。但是一个方法只能有一个body,可以有多个param。
param 注释参数时候,前端请求该方法需要有这个参数。可以通过required = ture/false 控制,不然如果不穿这个参会报错。

@PathVariable 映射 URL 绑定的占位符 通过

@PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过 @PathVariable(“xxx”) 绑定到操作方法的入参中。

1、若方法参数名称和需要绑定的url中变量名称一致时,可以简写:

@DeleteMapping(value = "/{id}")
public Result<FdcSbbysQdcbfy> delete(@PathVariable(required=true) String id) {
。。。
}

2、若方法参数名称和需要绑定的url中变量名称不一致时,写成:

@DeleteMapping(value = "/{id}")
public Result<FdcSbbysQdcbfy> delete(@PathVariable(name="id",required=true) String userid) {
。。。
}


posted @ 2020-10-27 23:29  Liang-shi  阅读(112)  评论(0)    收藏  举报