自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 websocket链接断开服务器报错java.io.EOFException解决办法

websocket链接报错 EOFException

2022-08-10 11:20:30 5820 2

原创 Spring的MimeMessageHelper 邮件发送 附件名乱码

1.在创建对象的时候定义编码格式(utf-8):MimeMessageHelper helper = new MimeMessageHelper(mes, true, "utf-8");2. 其次,在添加附件的时候,附件名是需要定义编码的helper.addAttachment(MimeUtility.encodeWord(附件名,"utf-8","B"), 你的附件对象);...

2022-05-16 16:00:58 823

原创 mongoDB存储因时区不同相差8小时问题

这是由于mongo中的date类型以UTC(Coordinated Universal Time)存储,就等于GMT(格林尼治标准时)时间。而我当前所处的是+8区,所以mongo shell会将当前的GMT+0800时间减去8,存储成GMT时间。如获通过java程序来读取是没有问题的,因为java程序会自动加上八小时。mongoDB中的显示的时间比正常时间早8小时,但是相关的缓存删除等索引不影响,因为都是一个时区,存储时间相同。...

2022-05-16 15:34:02 2960 4

原创 JDK提供的四种线程池

newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个周期线程池,支持定时及周期性任务执行。newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行

2020-12-28 11:32:00 459

原创 WebSocket与Socket的关系

Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,I

2020-12-28 11:26:14 270

原创 SpringBoot整合kafka后配置项含义

首先要明确一点,当SpringBoot整合kafka后,kafka.consumer.enable.auto.commit=false 意思是让spring自动去提交offsetkafka.consumer.enable.auto.commit=true 意识是让kafka去自动提交offsetauto.offset.reset值含义解释earliest当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费latest..

2020-12-23 11:49:15 233

原创 java-循环递归,在某些条件下跳出所有递归结束方法

朋友一个业务场景存在父子关系,需要玄幻递归但是i需要再摸个条件下跳出,直接试过传递一个变量,然后修改,由于java是值传递,下层递归修改了对上层无效,全局静态变量又存在线程安全问题。所以最后采用抛出异常的方式(不要捕获),直接结束掉所有递归。...

2020-09-04 16:41:11 1728

原创 JAVA---根据权重来输出不同结果

由于目前接到一个需求实现权重的AB_TEST功能,根据配置的权重给用户返回结果。话不多说直接上代码:int num1 = 0;int num2 = 0;int num3 = 0;int num4 = 0;for(int i=0;i<100;i++){ Map<Integer, Integer> weightMap = new HashMap(16); weightMap.put(1, 10); weightMap.put(2, 20); wei

2020-08-27 17:10:35 405

原创 springboot 整合kafka实现消息的生产与消费

话不多说直接上代码:1.pom.xml<!--kafka--><dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency>2.application.yml3.创建消费者配置文件 KafkaConsumerConfig:/*

2020-07-27 11:26:39 565

原创 ThreadLocal概述

ThreadLocal 称为线程本地存储,一般作为静态域使用,它为每一个使用它的线程提供一个其值(value)的副本。通常对数据库连接(Connection)和事务(Transaction)使用线程本地存储。Thread类中有两个变量threadLocals和inheritableThreadLocals,二者都是ThreadLocal内部类ThreadLocalMap类型的变量,我们通过查看内部内ThreadLocalMap可以发现实际上它类似于一个HashMap。在默认情况下,每个线程中的这两个变量

2020-06-22 16:34:16 170

原创 java.lang.ArithmeticException: Non-terminating decimal expansion问题处理

发现报错的语句是: 1 BigDecimal b = a.divide(absoluteOld); 原来JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常。解决方法: 1 BigDecimal b = a.divide(absoluteOld,2, BigDecimal.ROUND_HALF_UP);

2020-06-10 17:31:57 1334

原创 Spring Boot---自动配置原理

大家都知道SpringBoot的各项优点,搭建项目快,没有一个个的配置文件,集成插件引入maven包就好了,但是说到原因的时候又都不是很清楚,下面来简单介绍一下。 1、SpringBoot启动的时候加载主配置类(@SpringBootApplication),开启了自动配置功能 @EnableAutoConfiguration。2、@EnableAutoConfiguration 作用: 利用AutoConfigurationImportSelector...

2020-05-21 11:20:19 109

原创 feign.RetryableException: Read timed out executing(feign请求连接超时)

基于SpringCloud分布式解决方案时,微服务之间的调用往往通过Feign来进行。关于feign的介绍我之前的文章上已经有过说明,大家可以参考。feign=restTemplate+ribbon默认最长的请求时间为1s超过一面就会报错可以通过下面的配置来根据自己的需要修改最长连接时间ribbon:ConnectTimeout: 5000 #请求连接的超时时间,默认时间为1秒...

2020-04-26 14:28:04 1391

原创 Feign原理

Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求,可以理解为一个基于http协议的RPC框架。 实现原理:Spring Cloud应用在启动时,Feign会扫描标有@FeignClient注解的接口...

2020-04-15 17:21:59 184

转载 一篇关于java中锁的文章,看完之后茅塞顿开

https://blog.csdn.net/qq_41931837/article/details/82314478常见的锁Synchronized和Lock其实我们真正用到的锁也就那么两三种,只不过依据设计方案和性质对其进行了大量的划分。以下一个锁是原生语义上的实现Synchronized,它就是一个:非公平,悲观,独享,互斥,可重入的重量级锁以下两个锁都在JUC...

2020-03-06 13:56:20 142

原创 tomcat中的AJP和HTTP连接器区别

tomcat的server.xml中的AJP和HTTP连接器区别HTTP协议:连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。  AJP协议:连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP(Apache JServ Pr...

2020-03-03 11:14:20 869

转载 Springboot更改日志输出目录

在application.properties加上如下配置logging.path=D:/data/loglogging.config=classpath:logback-spring.xmllogging.level.root = debug如果要输出mybatis的sql,就加一行配置指定该目录输出为debuglogging.level.mapper所在目录= debug...

2020-03-03 11:12:50 603

原创 YYYY和yyyy区别

2020-01-19 11:27:16 842

原创 commons-logging,log4j,logback,slf4j之间的关系和SpringBoot默认的日志框架

1、commons-loggin,slf4j只是一种日志抽象门面,不是具体的日志框架。2、log4j,logback是具体的日志框架。3、一般首选使用slf4j+logback,或者slf4j+log4j,commons-logging+log4j。SpringBoot 日志配置 默认采用LogBack作为日志输出!...

2020-01-19 11:18:07 424

原创 java.lang.NoClassDefFoundError错误

说到NoClassDefFoundError这个错误,之前那也没有注意过,这次有通知遇到这个错误向我咨询才发现,刚才开始把它与ClassNotFoundException搞混了,后来随着了解才发现不是一回事。NoClassDefFoundError错误发生的原因NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错...

2020-01-19 11:14:57 1174

原创 啥是二八定律

80%的业务访问集中在20%的数据上,这是为了减轻数据库的压力和提高网站的数据访问速度。

2020-01-10 15:10:51 186

原创 redis和memcached对比

一 性能对比:redis是单线程的,在单核和多核的服务器里面运行,是没有多大差别的。就算是在多核服务器,也没有性能提升。memcached不一样,他里面是支持多线程的,在多核服务器环境,性能提升明显。由于 redis 只使用单核,而 memcached 可以使用多核,所以平均每一个核上 redis 在存储小数据时比 memcached 性能更高。而在 100k 以上的数据中,memc...

2020-01-10 15:04:02 140

原创 java中的多线程和cpu的线程区别

这个概念困扰了我很久,一直没有太明白,毕竟名字是一样的,今天这里来描述一下我对这两个线程的理解。(1) 线程是CPU级别的,一个cpu核心支持一个线程(当然也可以虚拟核心)(2) Java多线程并不是由于cpu线程数为多个才称为多线程,当Java线程数大于cpu线程数,操作系统使用时间片机制,采用线程调度算法,频繁的进行线程切换。(3) 线程是操作系统最小的调度单位,...

2020-01-10 15:01:47 2579

原创 在pojo类中的get方法进行运算报错(nullpointexception)

原因:没有数据返回时不报错,有数据返回时,由于将该pojo类按照json格式返回,会调用相应字段的get方法,若从数据库中没有查询到相应字段的数据,运算则会报错。解决:相关逻辑放到逻辑代码中...

2019-12-06 13:59:28 325

原创 JAVA将MP3转为WAV(实现百度语音转译)

近期实现的功能,不多说直接上代码(记得一些必要参数要配成自己的哈):注意:1.本文由于存在语音文件的转换(百度api只支持pcm wav等有限类型,所以其他格式的音频需要自己转换),采用了ffmpeg,这个自己去官网下载就好。 2.本文包含文件服务器整合和上传功能,需要根据自己的需要进行修改和配置(整合了fastdfs客户端,实现文件服务器交互)/**** 语...

2019-11-11 14:23:51 1518

原创 no xxx in java.library.path问题

java一般使用两个path:classpath 和 java.library.pathclasspath是指向jar包的位置java.library.path是非java类包的位置如(dll,so)是由于在tomcat的启动文件catalina.sh中JAVA_OPTS中指定了java.library.path...

2019-11-04 10:04:23 642

原创 nginx报错client_body_temp permission denied

关于client_body_temp目录的作用,简单说就是如果客户端POST一个比较大的文件,长度超过了nginx缓冲区的大小,需要把这个文件的部分或者全部内容暂存到client_body_temp目录下的临时文件。最后,整理一下出现这个问题需要的条件。值得注意的是,目前各种版本的nginx都有这个现象(0.7.68、0.8.54、1.0.2都有)1) client_body_te...

2019-10-09 10:46:07 1331

原创 <finalName>设置作用

展示maven pom配置文件中<build><finalname>XXXX</finalname></build>的作用1.如果设置就会按照你自己设定的名字作为包名2.如果没有设置,打包后的报名-----artifactId与version拼接的结果...

2019-09-26 16:08:02 1598

原创 ORA-01790: 表达式必须具有与对应表达式相同的数据类型

问题的起因是由于需要union all两个查询结果,字段一致但是字段类型不同。出现这种错误,要先看一下是不是sql中有用到连接:union,union all之类的,如果有,需要注意相同名称字段的数据类型一定要相同。select a.time from A a union all select b.time from B b where a.name =b.name;例如上现...

2019-09-20 13:34:21 2443

转载 如何在springboot项目中进行XSS过滤

简单介绍XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。过滤方式:主要通过对html标签进行转义的方式达到过滤的目的...

2019-08-28 17:40:03 279

原创 oracle中查询当天的数据方法

2019-08-23 11:28:00 1461

原创 springBoot中base64与文件的相互转换

这个问题主要是承接上文,上文说到,需要解析前端传递的base64字符串,转成文件并保存到文件服务器中,这就用到了base64转码等操作。刚开始没当回事觉得很常见,但是做的时候才各种坑。后续大家注意以下提到的点。首先是base64Util工具类主要的问题来源于引入jar包的种类,由于虽然本项目依赖于jdk1.8但是也要支持1.7的情况所以jdk1.8类库中的base无法使用。下面上代码。...

2019-08-15 13:55:28 9637

原创 记一次springboot整合fastdfs实现与文件服务器的交互

由于最近有一个需求:要求前端聊天时发送的语音文件(base64)到后端,转换成音频文件,并保存到文件服务器,并且能通过地址直接访问。所以本文优先说一下springboot集成fastdfs客户端并实现文件的上传。1.首先引入客户端jar包(目前失眠岸上引入的jar包大体分成两个,综合考虑维护性和springboot项目特点选取这个)2.配置类3.配置文件(模糊的地方大家填上自己...

2019-08-15 13:46:52 1081

转载 推荐一款阿里开源的 Java 诊断工具,好用到爆!

Arthas是什么鬼?Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系统,命令还支持使用 tab 键对各种信息的自动补全,诊断起来非常利索。这是它的官方网站:https://alibaba.github.io/arthas/in...

2019-08-01 11:04:24 127

转载 redis五大类型用法

redis五大类型用法Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sortedset)五种Controller:@Resource RedisTemplate<String, String> redisTemplate;总括:redisTemplate.opsForValue();//操作字符串r...

2019-07-30 10:58:13 212

原创 mysql中 ' 和 ` 的区别

两者在linux下和windows下不同,linux下不区分,windows下区分。主要区别就是单引号( ' )或双引号主要用于 字符串的引用符号如:mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '/'hello';数据库、表、索引、列和别名用的是引用符是反勾号(‘`’) 注:Esc下面的键如:...

2019-07-29 16:15:21 15802

转载 Jenkins是什么?

http://blog.csdn.net/ffggnfgf/article/details/70770118Jenkins是一个可扩展的持续集成引擎。主要用于:l持续、自动地构建/测试软件项目。l监控一些定时执行的任务。Jenkins拥有的特性包括:l易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。l易于配置-所有配置都是通过...

2019-07-29 16:14:06 292

原创 HTTP GET请求传参最大长度的理解误区

1.HTTP 协议 未规定 GET 和POST的长度限制2.GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度3.不同的浏览器和WEB服务器,限制的最大长度不一样4.要支持IE,则最大长度为2083byte,若只支持Chrome,则最大长度 8182byte一、误解大家都知道http 中 存在 GET 和 POST 这两种最常用的请求方式。(PUT,D...

2019-07-29 16:12:41 3985

转载 mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by

https://blog.csdn.net/u014520745/article/details/76056170mysql(5.7) sql modehttps://blog.csdn.net/kk185800961/article/details/79426041

2019-07-29 16:11:45 195

转载 dependencies与dependencyManagement

一、dependencyManagement 统一多模块的依赖版本如果你的项目有多个子模块,而且每个模块都需要引入依赖,但为了项目的正确运行,必须让所有的子项目(以下子项目即指子模块)使用依赖项的统一版本,才能保证测试的和发布的是相同的结果。那么如何保证模块之间的版本是一致的呢?Maven 使用 dependencyManagement 来统一模块见的依赖版本问题。在父项目的POM文件...

2019-07-29 16:10:42 2644

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除