![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
项目问题积累
JavaBoy_XJ
万般皆苦,唯有自渡!
展开
-
jdk8使用okhttp发送http2请求
在早期,原生的JDK8是不支持HTTP/2协议的,所以,要想使用这个特性,需要有web服务器和应用环境的支持,但是从8u252开始,ALPN层已经从Java 11向后移植到了Java 8。意味着,只要使用Java。重点来了:一定要先检查自己的jdk版本是否大于8u252,然后就可以在项目中集成okhttp。8u252或更新版本,不再要求使用Conscrypt和Jetty就可以使用HTTP/2了。本文主要用于工作记录,在项目中遇到了就记录一下。简单封装获取http2client请求。原创 2023-07-28 10:34:07 · 1669 阅读 · 0 评论 -
28个Java开发常用规范技巧总结
常用的规范技巧总结(参考自:华山版《Java开发手册》)1、类的命名使用驼峰式命名的规范。例如:UserService,但是以下情景例外:DO / BO / PO / DTO / VO。例如说:UserPO,StudentPO(PO,VO,DTO,等这类名词需要全大写)@Data@Builderpublic class CustomBodyDTO { private S...转载 2020-03-02 10:29:49 · 352 阅读 · 0 评论 -
413 Request Entity Too Large
解决413 Request Entity Too Large问题产生这种原因是因为服务器限制了返回数据大小nginx服务器的解决办法进入服务器,找到nginx下面的conf文件夹,vi nginx.confclient_max_body_size 50M;可以选择在http{ }中设置:client_max_body_size 50m;也可以选择在server{ }中设置:cli...原创 2019-11-19 14:10:06 · 214 阅读 · 0 评论 -
Long数据传递到前端精度丢失问题解决
后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况。例如:201511200001722239这样一个Long类型的整数,传给前端后会变成201511200001722340。其实解决方案有两种:第一种:将Long类型更改为String类型,但是不建议。第二种:自定义解析方法/** * 解决Jackson导致Long型数据精度丢失问题 * * @...原创 2019-10-30 19:54:55 · 1594 阅读 · 0 评论 -
Maven 手动添加 JAR 包到本地仓库
以 spring-context-support-3.1.0.RELEASE.jar 为例,已经给出这个 jar 包的 groupId,artifactId,version信息,手动安装的时候这些信息不要改,否则 Maven 项目移植的话,jar 包下载就会失败。顺便把这信息帖下面,方便对照:<dependency> <groupId>org.springfra...原创 2019-04-29 09:33:04 · 174 阅读 · 0 评论 -
maven的三大生命周期
一、Maven的生命周期Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。二、三套生命周期Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周...转载 2019-05-22 08:05:44 · 2129 阅读 · 0 评论 -
mongodb 删除数据 释放空间
后续再更原创 2019-05-24 09:13:34 · 570 阅读 · 0 评论 -
Spring Boot中Multipartfile遇到的坑
场景还原:根据业务部分的需求,需要前端上传Excel文件,后端读取其中数据,存入数据库中。需求其实挺简单的,感觉也没啥难度,然后就一顿撸码,本地测试ok,测试人员测试也ok,然后就交付上线使用。上线一段时间后,问题发生了,报错代码如下:Caused by: java.io.IOException: The temporary upload location [/tmp/tomcat.290...原创 2019-07-25 10:56:14 · 5080 阅读 · 0 评论 -
Websocket原理
一、websocket与httpWebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,但是 Websocket 其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已...转载 2019-04-17 08:58:58 · 104 阅读 · 0 评论 -
大o表示法
下面是一些常用的时间复杂度以及简单的定义O(1)— 常量时间:给定一个大小为n的输入,概算法只需要一步就可以完成任务。O(log n)— 对数时间:给定大小为n的输入,该算法每执行一步,它完成任务所需要的步骤数目会以一定的因子减少。O(n)— 线性时间:给定大小为n的输入,该算法完成任务所需要的步骤直接和n相关(1对1的关系)。O(n²)—二次方时间:给定大小为n的输入,完成任务所需要的...原创 2019-04-08 19:26:37 · 1213 阅读 · 0 评论 -
SpringCloud中@EnableScheduling踩坑
项目中会用到@Scheduled(cron = “0 30 0 * * ?”)作为定时器触发,cron里面的表达式是设置具体的定时触发时间,有一次在本地测试的时候,先修改了本地时间,然后再启动项目,定时器死活触发不了,后来经过log日志的观察发现,程序在启动的时候,获取的时间已经超过触发时间了,虽然更改了本地时间,也不能触发,所以得先更改时间,再启动程序,这样就可以避免该问题。...原创 2018-12-19 15:58:33 · 4358 阅读 · 0 评论 -
idea下远程debug配置
一. 背景:在测试工作中,为方便发现代码中的逻辑问题,尝试使用远程debug模式,在测试过程中走查代码,不仅可以辅助测试减少与开发的沟通成本,更便于了解业务提升测试深度。二. 配置方式:调试的配置方式主要为设置JVM的参数,使之工作在debug模式下,常用参数为:-Xdebug -Xrunjdwp:transport=dt_socket,address=8012,server=y,su...原创 2019-01-24 11:05:46 · 249 阅读 · 0 评论 -
str.trim()去除空格
数据库取出来的空格ASCII码值是160(由&nbsp;产生的),普通手动输入的空格ASCII值是32。可以使用str.replace("\u00A0", “”)来移除它原创 2019-01-30 17:05:29 · 2038 阅读 · 0 评论 -
让异常处理代码更健壮
像冠军一样处理异常。哦,请不要这样写……// 写一句注释跳过异常try { throw new IOException("Made up");} catch (IOException e) { // 跳过}// 记到日志里,继续处理try { throw new IOException("Made up");} catch (IOException e) {...转载 2019-02-22 11:39:34 · 435 阅读 · 0 评论 -
分布式、高并发、多线程,到底有什么区别?
当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。什么是分布式?分布式更多...原创 2019-02-22 11:44:06 · 176 阅读 · 0 评论 -
SpringBoot 2.0 文件上传踩坑
踩坑经历:在项目中,有个需求是前端传递Excel文件到后端,后端读取Excel文件中的数据,保存到数据库中,刚开始Exccel中存在少量的几十条数据,上传读取没有问题,后来需求方说文件中可能会有10W+条数据,当我再次测试的时候发现后端报错了:The field file exceeds its maximum permitted size of 1048576 bytes后来才想起因为Spr...原创 2019-02-22 16:02:10 · 809 阅读 · 0 评论 -
SSO单点登录
原文链接:mp.weixin.qq.com概念SSO 英文全称 Single Sign On,单点登录。在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。比如:淘宝网(www.taobao.com),天猫网(www.tmall.com),聚划算(ju.taobao.com),飞猪网(www.fliggy.com)等,这些都是阿里巴巴集团的网站。在这些网站中,我们在其中一个...转载 2019-03-01 10:18:06 · 280 阅读 · 0 评论 -
Mock和Mockito简单理解和使用
什么是Mock?1.Mockito是mocking框架,它让你用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。2.在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象。3.程序员通常创造模拟对象来测试其他对象的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为。@Mock与@Inj...原创 2019-02-26 12:15:21 · 2136 阅读 · 0 评论 -
内存级缓存>Redis缓存>数据库
情况描述: 有以下几张表,单据表(t_bill)、货物表(t_cargo)、原料表(t_raw_material)、配置表(t_configure),表关系如下: 一张单据对应多个货物信息,每种货物都有自己对应的原料信息,货物和原料都有属于自己的配置信息。需求如下:当我查询一个单据信息的时候,会展示该单据下的所有货物信息,以及货物所属原料名称和配置信息,不是单纯的对象,是需要通过DTO...原创 2018-03-14 21:00:49 · 2727 阅读 · 2 评论