spring项目中常用注解(springBoot,springCloud,lombok等)

一.启动类

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指定仅使用哪些属性
 它默认仅使用该类中定义的属性且不调用父类的方法
 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值