一.启动类
1.@EnableDiscoveryClient&@EnableEurekaServer
把服务注册到Eureka注册中心
2.@EnableSwagger2
@EnableSwagger2是springfox提供的一个注解,代表swagger2相关技术开启。会扫描当前类所在包,及子包中所有类型的swagger相关注解,一般配合@ApiOperation使用
3.@SpringBootApplication(@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan)
标记说明类是springboot的主配置类,springboot可以运行这个类里面的main()方法来启动程序。
二.controller层中常用注解
1.@RestController
@RestController注解相当于@ResponseBody(返回值自动转换为json格式) + @Controller(标记controller类)合在一起的作用。
返回json数据不需要在方法前面加@ResponseBody注解了
但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面(需要使用@ResponseBody + @Controller)
2.@Validated &@Valid
区别:@Validated不能用于成员属性,@Valid都可以
@Validated有分组功能,@Valid不具备分组功能
一个待验证的pojo类,其中还包含了待验证的对象,需要在待验证对象上注解@Valid,才能验证待验证对象中的成员属性,这里不能使用@Validated。
可搭配以下注解使用
@Range 范围check
@Null 限制只能为null
@NotNull 限制必须不为null
@MAX(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Pattern(value) 限制必须符合指定的正则表达式
3.@PathVariable
接收请求路径中占位符的值。
例:
请求路径:http://localhost:8080/user/1/james
@RequestMapping(value=”user/{id}/{name}”)
public ModelAndView test5(@PathVariable("id") Long ids ,@PathVariable("name") String names){
ModelAndView mv = new ModelAndView();
mv.addObject("msg","占位符映射:id:"+ids+";name:"+names);
mv.setViewName("hello2");
return mv;
}
4.@RequestParam
将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
5.@RequestBody
用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)。
GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
ps.@RequestBody的构造体中有两个注解@JsonProperty注解和@JsonAlias注解
@JsonProperty注解用于定义属性或字段在序列化和反序列化过程中的名称
@JsonAlias注解,实现:json转模型时,使json中的特定key能转化为特定的模型属性;但是模型转json时对应的转换后的key仍然与属性名一致
6.@RequestMapping
用于建立请求的URL 和 处理请求方法之间的对应关系(请求映射)。
7.@ApiOperation
@ApiOperation是Swagger包中的一种注解 使用@ApiOperation注解用来描述接口作用等信息。
三.service层
1.@Service
标记service类,当 Spring 应用启动时,该 Bean 会被自动创建并加入到 Spring service中
2.@Slf4j
@Slf4j注解是log4j2依赖提供的,@Slf4j是用作日志输出的。如果不想创建Logger对象,并且想用log.info( ) 打印日志,就可以使用该注解。
在类上添加了@Slf4j注解之后,就可以在代码中直接饮用log.info( ) 打印日志了。
3.@RequiredArgsConstructor
@RequiredArgsConstructor是Lombok的一个注解,简化了我们对@Autowired书写,我们在写Controller层或者Service层的时候,总是需要注入很多mapper接口或者service接口,如果每个接口都写上@Autowired,这样看起来就会很繁琐,@RequiredArgsConstructor注解可以代替@Autowired注解,但是使用@RequiredArgsConstructor时声明的变量必须加上final修饰
ps.@AllArgsConstructor和@RequiredArgsConstructor区别
@AllArgsConstructor和@RequiredArgsConstructor都可以用来替代@Autowired写法,区别在于@RequiredArgsConstructor必须要有final修饰,如果有@Value注解,@RequiredArgsConstructor修饰可以成功注入,@AllArgsConstructor修饰会注入失败
4.@Autowired
对类成员变量、方法及构造函数进行标注,完成自动注入的工作。
5.@Transactional
该类的所有public方法都配置相同的事务属性信息,开启事物。
6.@Override&@Overload
重写和重载
7.@ApiModel
用来对使用该注解的接口相关的实体类添加额外的描述信息
四.DAO层
1.@Entity&@Table(JAP)
@Entity表明该类是一个实体类
@Table标注与 @Entity 注解并列使用,用于指明数据库的表名和设置表所属的数据库目录或模式。
2.@Data
自动为类生成常用的方法,包括 getter、setter、equals、hashCode 和 toString 等。
3.@EqualsAndHashCode
此注解会生成equals(Object other) 和 hashCode()方法
它默认使用非静态,非瞬态的属性
可通过参数exclude排除一些属性
可通过参数of指定仅使用哪些属性
它默认仅使用该类中定义的属性且不调用父类的方法