2 萝卜-青菜

尚未进行身份认证

好人半自苦中来,莫图便益;世事多因忙里错,且更从容。

等级
TA的排名 5w+

HandlerInterceptor拦截器的使用 (4)—— 防重复提交

看本篇博客前应当先看完前面三篇,这一篇是基于前面三篇的知识点的整合。所以很多重复的代码这里就不写出了后台通过拦截器和redis实现防重复提交,避免因为网络原因导致多次请求同时进入业务系统,导致数据错乱,也可以防止对外暴露给第三方的接口在业务尚未处理完的情况下重复调用。首先引入fastjson<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId&g

2020-05-16 15:03:50

HandlerInterceptor拦截器的使用 (3)——多次获取请求参数body中的信息

现在开发的项目是基于SpringBoot的maven项目,拦截器的使用很多时候是必不可少的,当有需要需要你对body中的值进行校验,例如加密验签、防重复提交、内容校验等等。当你开开心心的在拦截器中通过request.getInputStream();获取到body中的信息后,你会发现你在controller中使用了@RequestBody注解获取参数报如下错误I/O error while reading input message; nested exception is java.io.IOExce

2020-05-16 14:57:38

HandlerInterceptor拦截器的使用(2)—— 自定义注解

功能简介拦截所有添加了我们自定义的注解的方法,并将userId和userMobile放入HttpServletRequest,之后通过对应的注解取值。首先我们来先定义三个注解根据需求其实UserId和UserMobile可以不要,不影响拦截器的使用import javax.ws.rs.NameBinding;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang

2020-05-16 14:52:39

HandlerInterceptor拦截器的使用(1)

HandlerInterceptor简介拦截器我想大家都并不陌生,最常用的登录拦截、或是权限校验、或是防重复提交、或是根据业务像12306去校验购票时间,总之可以去做很多的事情。1、定义实现类定义一个Interceptor 非常简单方式也有几种,我这里简单列举两种1、类要实现Spring 的HandlerInterceptor 接口2、类继承实现了HandlerInterceptor 接口的类,例如 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerIntercept

2020-05-16 14:42:49

idea中git的冲突解决

1.什么是冲突冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致。读起来有点绕,结合下面的案例理解。从上面对冲突的定义来看,冲突时发生在同一个文件上的。2.生产上冲突的场景常见冲突的生产场景如下更新代码提交代码多个分支代码合并到一个分支时多个分支向同一个远端分支推送代码时  git的合并中产生冲突的具体情况:  <1>两个开发者(分支中)修改了同一个文件(不管什么地方)  <2>两个开发者(分支中)修改了同一个文件的名称  注意:两个分支中分别修改了

2020-05-13 16:05:57

Java面试题

包含的模块本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM ,如下图所示:共包含 208 道面试题,本文的宗旨是为读者朋友...

2020-04-23 18:54:15

List流式操作,排序、最大、最小值等各种操作工具类(java8 )

不废话直接上代码,亲测有效。import java.util.*;import java.util.stream.Collectors;import static java.util.stream.Collectors.*;public class listTest { public static void main(String[] args) { List...

2020-03-30 20:58:31

普通索引和联合索引区别

通俗理解:利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引 不同于使用两个单独的索引。复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不姓,电话簿将没有用处。所以说创建复合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对...

2020-03-13 21:18:12

日期按、天、月、季度计算及格式化

最近开发的项目平凡用到时间的各种计算及转化,虽然没多少技术含量但也记录一下。直接上代码拿走不谢。import org.apache.http.client.utils.DateUtils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;public class...

2020-03-03 09:21:06

2020年计划

时间2020年2月5号,在家办公的第三天。一场新型冠状肺炎疫情打破了全国多少人的计划。武汉封城,全国大部分人都躲在家不敢出门。从没有写过年度计划的我也想在这个特殊的年份开始过有计划的生活。每当回老家过完年之后自己的想法都会发生较大的改变,这样的改变我想应该无关对错但也会影响自己的生活轨迹。去年也就是19年回家过完年之后自己就产生一个比较强烈的想法——尽快回老家(昆明发展),后来应为工作职业...

2020-02-08 21:31:52

BigDecimal运用总结

一、BigDecimal概述​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Fl...

2020-01-06 14:16:08

mysql 向下无限递归(父级子级之间的关系)

新建测试数据表create table menu( id int auto_increment, name VARCHAR(255), parent_id int, PRIMARY KEY(id)) ENGINE=INNODB auto_increment=1 default charset = "utf8";插入测试数据insert into menu(...

2020-01-03 10:19:38

Redis五大数据类型的常用操作

String(字符串)String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。String类型是Redis最基本的数据类型,一个键最大能存储512MB。Demo在以上Demo中我们使用了 Redis 的 SET 和...

2019-12-20 16:06:56

java.lang.IllegalArgumentException:(springboot项目请求出现非法字符问题)

最近使用springboot搭建了一个后台服务的项目,开发接口的时候在本机使用postman工具做请求测试报如下错误:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986...

2019-11-05 17:58:29

springboot+redis

1. springboot中redis相关配置在pom中配置redis的相关依赖包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <ve...

2019-10-24 14:24:49

linux 日志查看 常用命令

tail常用命令:tail -f filename (默认最后10行,相当于增加参数 -n 10)tail -100f test.log 实时监控100行日志tail -n 20 filename (显示filename最后20行)tail -n +5 filename (从第5行开始显示文件)head常用命令:跟tail是相反的,tail是看后多少行日志;例子如下:he...

2019-10-14 16:50:57

SpringBoot整合ElasticSearch搜索引擎

准备工作安装ElasticSearch及ElasticSearch-head 可视化工具;具体过不做阐述程网上教程很多。Spring工程创建创建常规的springboot项目就行。注意在新建项目时记得勾选web和NoSQL中的Elasticsearch依赖,入下图项目自动生成以后pom.xml中会自动添加spring-boot-starter-data-elasticsearch的依赖...

2019-09-29 15:27:30

Could not autowire. No beans of 'xxxx' type found

1.问题描述在Idea的spring工程里,经常会遇到Could not autowire. No beans of ‘xxxx’ type found的错误提示。但程序的编译和运行都是没有问题的,这个错误提示并不会产生影响。但红色的错误提示在有些有强迫症的程序员眼里,多多少少有些不太舒服。2. 原因原因可能有两个,第一个是IntellijIDEA本身工具的问题。第二个便是我们导入@Se...

2019-09-24 10:45:09

URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)

经常会遇到xml报错的情况,xmlns变红色,虽然不影响项目运行但看着难受,这时我们可以根据如下来解决这个问题。1,问题如图2,解决办法3,结果就解决了...

2019-09-24 10:36:00

springboot使用redistemplate操作redis

概述关于spring-redis关于redis的key设计redis的基本数据结构介绍redis与springboot的整合sringboot中的redistemplate的使用之前看了很多博客,大都都只是粗略的介绍,这里想要记录的全面一些,也算是一个学习的过程首发于我的个人博客:janti的个人博客关于spring-redisspring-data-redis针对jedis提供...

2019-09-18 18:33:20

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。