原生注解
- @Retention: 定义注解的保留策略
@Retention(RetentionPolicy.CLASS) // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
@Retention(RetentionPolicy.SOURCE) // 注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
- @Target: 定义注解的作用目标
@Target(ElementType.TYPE) //接口、类、枚举、注解
@Target(ElementType.FIELD) //字段(类成员变量)、枚举的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法参数
@Target(ElementType.CONSTRUCTOR) //构造函数
@Target(ElementType.LOCAL_VARIABLE) //局部变量
@Target(ElementType.ANNOTATION_TYPE) //注解
@Target(ElementType.PACKAGE) ///包
- @Document: 说明该注解将被包含在javadoc中
- @Inherited: 说明子类可以继承父类中的该注解
Controller层相关注解
- @RequestMapping
value: 指定请求的实际地址;
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params: 指定request中必须包含某些参数值时,才允许该方法处理;
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
- @RequestHeader
读取Request请求中的header部分数据
- @RequestParam
获取Request中提交的参数
- @RequestBody
用于读取Request请求的body部分数据
需要 Content-Type: application/json
传递参数为json格式
- @PathVariable
取出URL路径中的参数
- @ResponseBody
用于将Controller的方法返回的对象
通过适当的HttpMessageConverter转换为指定格式后
写入到Response对象的body数据区
其他常用注解
@order: 使用注解方式使bean的加载顺序得到控制
@order(value=1) @order(value=2) 值越小,越先被加载。
@Repository: 持久层
@Service: 服务层
@Controller: 控制层
@Component:不推荐使用
@Value: 缺省参数
网友评论