注解缘起
从开始接触java时起,就被Spring这个名词所环绕;当时天真的认为难道这个工作和“春天”有关?一晃现在已经工作快8年了,四季变换,这个“春天”原来是我一直未放下的痛...
注解功效
你可以把他理解为学习语文时用到的“修饰符”:通过不同的修饰符可以解释不同的语句。让开发变得更加简洁!
注解名单
由于之前工作中对注解没有仔细的研究过,因此本文会在实际开发过程中进行随时补充,慢慢将之前丢弃的知识进行补漏。
Spring boot 特有注解
前提: Spring boot 抛弃XML配置文件,可以自动扫描包路径装载并注入对象,并能做到根据 classpath 下的 jar 包自动配置。
1) @Configuration:
通过该注解名字的翻译就可以很直观的理解就是之前Spring框架中的配置文件的意思。此注解为Spring 3.0时代产物,用来替代applicationContext.xml配置文件。
2)@EnableAutoConfiguration:
Spring boot自动配置的注解,通过此注解Spring boot能够根据当前类路径下的包或者类来配置 Spring Bean。
3)@ComponentScan:
自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。用来替代配置文件中的 component-scan 配置。
4)@SpringBootApplication:
Spring boot最核心的注解!!!用于标记Spring boot应用,作用于主类上,用于启动框架各项功能。该注解其实为上述三个注解合体。
Spring MVC常用注解
1) @Controller:
作用于类上,标识该类为控制器。在Spring MVC整体运作流程中controller负责处理DispactherServlet分发的请求。通常该注解会结合@RequestMapping同时使用,@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。
2)@RequestMapping:
建立请求URL和处理方法之间的对应关系。通常作用于方法上,也可作用于类上。
当作用于类上时: 第一级访问目录;
当作用于方法上时: 第二级访问目录;
注解涉及的属性:
path-指定请求路径的URL
value属性和path属性是一样的
mthod 指定该方法的请求方式
params 指定限制请求参数的条件
headers 发送的请求中必须包含的请求头
3)@Autowired:
注入属性,通过此注解可省去set和get方法。
未完待续.....
Swagger常用注解
1) @API
作用在类上,表明是swagger资源,@API拥有两个属性:value、tags;
生成的api文档会根据tags分类,直白的说就是这个controller中的所有接口生成的接口文档都会在tags这个list下;
tags如果有多个值,会生成多个list,每个list都显示所有接口;
例如: @Api(tags="列表1"); @Api(tags={"列表1","列表2"});
2)@ApiOperation
作用于在方法上,表示一个http请求的操作;主要用于描述接口。
例如:@ApiOperation(value = "获取问题概要列表(条件分页)")
3) @ApiParam
使用在方法上或者参数上,字段说明;表示对参数的添加元数据(说明或是否必填等);
name–参数名
value–参数说明
required–是否必填
4) @ApiModel()
使用在类上,表示对类进行说明,用于参数用实体类接收;
value–表示对象名
description–描述
5) @ApiModelProperty()
使用在方法,字段上,表示对model属性的说明或者数据操作更改;
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏
lombok常用注解
1) @Data
该注解通常用在实体bean上,不需要写出set和get方法,但是具备实体bean所具备的方法,简化编程提高变成速度;
@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集;
例如:
@Data
@ApiModel(value = "问题列表对象,对应前端")
public class IssuesListVo {...}