微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

springboot gradle 使用过程中遇到的问题小结4

1. TypeReference

使用fastJson反序列化的时候用到

为什么使用TypeReference

浅谈FastJson的TypeReference用法

2. MoreObjects.firstNonNull

返回第一个不为空的对象

Guava base -- MoreObjects

3. RowBounds

逻辑分页。之前一直没有注意,还以为最后也是limit,结果查资料后发现是逻辑分页,即取出所有满足条件的数据,然后舍弃掉前面offset条数据,然后再取剩下的数据的limit条

mybatis 分页 RowBounds和PageHelper性能评测

Mybatis逻辑分页原理解析RowBounds

4. @ApiOperation

接口文档注解,用于生成对应的接口文档,是swagger注解

spring接口文档注解:@ApiOperation

5. @JsonNaming注解

与PropertyNamingStrategy结合,项目中用到的是PropertyNamingStratgey.SnakeCaseStrategy,之后代码中的驼峰命名会转变为下划线。

Sping Boot返回Json格式自定义

6. pageHelper

项目中使用了pageHelper插件,需要注意的是spring boot项目引用的 版本是不同的

pageHelper-spring-boot-starter

7. @Transactional

该注解只能被用到public方法上。

其他的目前还没有注意到,等后续踩坑。

@Transactional详解

8. @ResponseBody @ResquestBody

@ResponseBody作用在方法上,表示该方法的返回结果直接写入Http response body中,一般在异步获取数据时使用ajax,在使用@RequestMapping之后,返回值会被解析为跳转路径,加入@ResponseBody注解后,返回结果不会被解析为跳转路径,而是直接写入response body中。

@RequestBody将Http请求正常插入到方法中,使用合适的HttpMessageConverter将请求体写入某个对象。

注解@ResponseBody和@RequestBody

@Controller和@RestController的区别?

9. @NoArgsConstructor  @requiredArgsConstructor  @AllArgsConstructor

@requiredArgsConstructor, @AllArgsContructor。使用这三个annotation来完成项目中对于不同构造方法的需求。

@NoArgsConstructor : 生成一个无参数的构造方法,这个annotation在与其他的annotation配合起来使用的时候更加能凸显出他的重要性,例如在使用hibernate这种框架的时候,如果有一个有参数的构造方法的时候,NoArgsConstructor会展示出他的作用。

@requiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量 的构造方法生成的构造方法是private,如何想要对外提供使用可以使用staticName选项生成一个static方法

@AllArgsContructor: 会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验。

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

10. @EnableScheduling

@Scheduled注解配合@EnableScheduling使用,实现定时任务。

Spring @EnableScheduling 注解解析

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐