分析代码遇到的知识点
Posted 如月之恒-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析代码遇到的知识点相关的知识,希望对你有一定的参考价值。
文章目录
spring参数注解
@Null 被注释的元素必须为null
@NotNull 被注释的元素不能为null
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max,min) 被注释的元素的大小必须在指定的范围内。
@Digits(integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式。
@Email 被注释的元素必须是电子邮件地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串必须非空
@Range 被注释的元素必须在合适的范围内
@Valid Controller层要对实体类进行校验时,需要添加此注解
参数注解实例可参考:
spring后端接收参数注解
@requestparam和@requestbody的区别
参考文章:
@RequestParam与@RequestBody对比
Pagehelper源码理解
mysql执行计划
mySql模糊搜索提高效率
有的博客上说是用mysql的LOCATE来进行模糊搜索效率会比LIKE高。有待测试。
具体真正提高模糊搜索效率的官方说明未找到。
@Transactional
简单掌握 Spring 中@Transactional 的使用
注解@Transactional的propagation属性介绍及代码展示
@Transactional详解(一)
@Transactional详解(二)
int和Integer的区别
- Integer是int的包装类,int则是java的一种基本数据类型
- Integer变量必须实例化后才能使用,而int变量不需要
- Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
- Integer的默认值是null,int的默认值是0
参考文章:
int和Integer的比较
FreeMarker使用
我们项目中用到的freemarker
FreeMarker官方中文手册
FreeMarker基础使用
StringBUffer、StringBuilder
String、StringBuffer与StringBuilder的区别及应用场景
java IO流原理、概念、操作流程学习。
看书,不要看博客。
String.format()的用法
Iterator,for,forEach
Iterator,for,forEach的遍历和效率
经过测试,Iterator不管在1万还是100万数量级下,遍历效率都比其他两种方式都来得低。
for遍历在1万以下元素里最快,如果元素在10万个以上,那么forEach就是最快的。
以上测试是基于博客中给出的例子,在本地进行测试的结果,并非一定正确,因为我们项目中可能数组、集合存储的元素不同,可能会影响到这三种方式遍历的效率。所以在项目中,有遍历到数据量大的数组或集合,还是应该要实地做下测试。
@Data
@Data注解的类,编译后会自动给我们加上下列方法:
- 所有属性的get和set方法
- toString 方法
- hashCode方法
- equals方法
@Controlleradvice
@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。
@ControllerAdvice 拦截异常并统一处理
Spring MVC之@ControllerAdvice详解
Lombok
同步调用转换成异步消息交互的场景和原则
- 比如在买机票系统中,机票支付完成后需要通知出票系统出票、代金券系统发券。如果使用同步调用,那么出票系统、代金券系统宕机是会影响到机票支付系统。如果我们将同步调用替换成异步消息,机票支付系统发送机票支付成功的消息到消息中间件,出票系统、代金券系统从消息中间件订阅消息。这样一来,出票系统、代金券系统的宕机也就不会对机票支付系统造成任何影响了。
- 分清主次,主要的功能,对其他功能有影响的,要同步。对于主要功能没有影响的,就可以异步处理。如上面的机票问题,还有就是电商的支付,也是同一道理。
- 耗时较长的程序。如之前E行销生成保单。就是提交数据后,保存成功即返回,让生成保单的PDF文件异步来生成,因为这个保单生成耗时较长。
注
- 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
- 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。
以上是关于分析代码遇到的知识点的主要内容,如果未能解决你的问题,请参考以下文章