注解
注解
分类 --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) {
。。。
}
浙公网安备 33010602011771号