- 博客(47)
- 收藏
- 关注
原创 poi报错java.lang.NoClassDefFoundError: org/apache/commons/io/build/AbstractStreamBuilder
解决方法: 把SXSSFWorkbook类型的工作薄改成XSSFWorkbook类型就行了。
2024-12-10 14:35:18
595
原创 Springboot升级2.7.x后swagger报错Failed to start bean ‘documentationPluginsBootstrapper问题
项目升级Springboot2.7.x后, 启动项目报错: Failed to start bean ‘documentationPluginsBootstrapper.
2024-12-06 11:01:45
290
原创 Springboot集成jpa出现class file version 55.0问题
【代码】Springboot集成jpa出现class file version 55.0问题。
2023-02-24 16:17:03
728
1
原创 Springboot中使用RabbitMQ创建一个延时队列
@Beanpublic Queue orderDelayQueue() { /* Queue(String name, 队列名字 boolean durable, 是否持久化 boolean exclusive, 是否排他 boolean autoDelete, 是否自动删除 Map<String, Object> arguments) 属性 */ HashMap<String
2022-01-16 15:44:48
334
1
原创 事务的传播行为
1. PROPAGATION_REQUIRED如果当前没有事务,就去创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。2.PROPAGATION_SUPPORTS支持当前事务,如果当前存在事务,就加入 该事务,如果当前不存在事务,就以非事务执行。3.PROPAGATION_MANDATORY支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。4.PROPAGATION_REQUIRES_NEW创建新事务,无论当前存不存在事务,都创建新事务5.PR
2022-01-15 21:30:19
193
原创 RabbitMQ概念及知识点
使用场景异步处理应用解耦流量控制(削峰)工作流程生产者连接RabbitMQ,建立TCP连接( Connection),开启信道(Channel)生产者声明一个Exchange(交换器),并设置相关属性,比如交换器类型、是否持久化等生产者声明一个队列井设置相关属性,比如是否排他、是否持久化、是否自动删除等生产者通过 bindingKey (绑定Key)将交换器和队列绑定( binding )起来生产者发送消息至RabbitMQ Broker,其中包含 routingKey (路..
2022-01-15 20:10:10
1201
原创 Feign远程/异步调用丢失请求头的问题
Feign远程调用丢失请求头的问题解决方法:加上一个feing远程调用的请求拦截器,在拦截器中给template加上一个客户端传过来的cookie,和客户端发送过来的请求的请求头进行同步。@Bean("requestInterceptor")public RequestInterceptor requestInterceptor() { return new RequestInterceptor() { @Override public void apply(
2022-01-15 20:05:01
658
原创 idea提交git失败
idea终端中执行以下内容,然后重启ideagit config --system --unset credential.helper
2022-01-12 20:05:22
453
原创 Elasticsearch查询快速入门
es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST过去一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。这里有一个地方注意的是官方文档里面给的例子的json结构只是一部分,并不是可以直接黏贴复制进去使用的。一般要在外面加个query为key的机构。match最简单的一个match例子:查询和"我的宝马多少马力"这个查询语句匹配的
2022-01-11 18:36:41
148
原创 Elasticsearchc查询嵌入式属性
Elasticsearchc查询嵌入式属性,不能直接查询,要用"nested"进行查询GET product/_search{ "query": { "bool": { "filter": { "nested": { "path": "attrs", "query": { "bool": { "must": [ {
2022-01-10 21:56:10
271
原创 保证缓存和数据库数据一致性
1. 读写加锁适用于读多写少的场合2. 引入Canal感知到Mysql的更新去更新数据库3. 直接到数据库查询适用于读多写多的场合
2022-01-10 20:06:13
311
原创 SpringCache常用缓存注解
@Cacheable:触发将数据保存到缓存的操作@CacheEvict:触发将数据从缓存删除的操作@CachePut:不影响方法执行更新缓存@Caching:组合以上多个缓存操作@CacheConfig:在类级别共享缓存的相同配置
2022-01-10 18:37:12
138
原创 TCP握手挥手
三次握手当客户端向服务端发起连接的时候,会先发送一包连接请求数据,过去询问一下能否建立连接,这包数据我们称之为SYN包,如果服务端同意连接,则服务端向客户端回复SYM+ACK包,客户端收到后再发送一个ACK包,连接建立为什么三次握手而不是两次握手为了防止已失效的请求报文再传到服务端引起错误四次挥手处于数据连接状态的客户端和服务端都可以发起关闭连接请求,假设客户端主动发起关闭连接请求,它需要向服务端发送一个SYN包,表示要关闭连接,客户端自己则进入中止等待1状态,这是第一次挥手。服务端收到SYN包
2022-01-10 11:18:30
1034
原创 内存泄漏和内存溢出
内存泄漏是指程序在申请内存后,无法释放已申请的内存空间。内存溢出是指程序申请内存时,没有足够的内存供申请者使用;或者说提供一块存储int数据的存储空间,但存储了long数据,则结果是内存不够用,报错OOM。内存泄漏的堆积最终会导致内存溢出。...
2022-01-10 08:51:11
184
原创 Dao 接口和 XML 文件里的 SQL 是如何一一对应的?
MyBatis 会先解析这些 XML 文件,通过 XML 文件里面的命名空间 (namespace)跟 DAO 建立关系;然后 XML 中的每段 SQL 会有一个id 跟 DAO 中的接口进行关联。
2022-01-09 21:55:21
1026
原创 缓存击穿,缓存雪崩,缓存穿透
缓存穿透指查询一个一定不存在的数据,由于缓存时不命中,将去查询数据库,但是数据库也没有这个记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。缓存穿透解决方法将从DB中查询出的null结果添加到缓存,并加入短暂过期时间缓存雪崩缓存雪崩是指在我们设置缓存时key采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。缓存雪崩解决方法原有的失效时间基数上增加一个随机值,比如1-5分钟随机,这样每一个缓
2022-01-08 15:27:59
466
原创 Elasticsearch
_update 更新时会检索原数据,如果数据和原数据一致,则不执行更新操作。如果是索引形式修改文档,则不管原数据是什么,都会进行更新操作。
2021-12-25 10:22:04
789
原创 docker创建elasticsearch和Kibana
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/
2021-12-25 09:22:19
1436
原创 Springboot测试类@RunWith(SpringRunner.class)
在测试类上加注解@RunWith(SpringRunner.class)注解的意义在于Test测试类要使用注入的类,比如@Autowired注入的类,有了@RunWith(SpringRunner.class)这些类才能实例化到spring容器中,自动注入才能生效,
2021-11-29 14:28:40
1154
原创 Nginx和SpringCloud Ribbon的区别
Nginx是网络负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。Ribbon本地负载均衡,在调用微服务接口的时候,会在Eureka注册中心上获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程调用。...
2021-11-29 09:50:57
1868
原创 解决跨域问题
解决跨域问题跨域:指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生非简单请求(PUT、DELETE)等,需要先发送预检请求。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LD3FM9Op-1635855033640)(C:\Users\Lyu\Desktop\屏幕截图 2021-11-02 191940.png)]解决跨域问题使用ngin
2021-11-02 20:10:47
186
原创 Docker安装以及命令
Docker1. Docker安装官方安装文档:https://docs.docker.com/engine/install/centos/卸载老版本sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine安装yum install -y yum-uti
2021-06-03 16:13:56
267
原创 JUC笔记整理(持续更新)
JUC1. 线程的创建和使用1.1 继承Thread类/** * 多线程的创建 方式一: * 1. 继承Thread类 * 2. 重写Thread类run()方法 ---> 将此线程执行的操作声明在run()方法中 * 3. 创建Thread子类的对象 * 4. 通过对象调用start()方法 * * 例子:遍历100以内的偶数 * */public class JavaTest01 extends Thread { @Override publi
2021-06-01 13:44:54
130
原创 foreach遍历集合
public static void main(String[] args) { List<String> list = Arrays.asList("a", "b", "c"); // 方法一: list.forEach(item -> {System.out.println(item);}); // 方法二: list.forEach(System.out :: println); }...
2021-05-28 15:54:07
2159
原创 Lambda表达式 -- java
使用Lambda表达式条件:接口内只有一个方法/** * 举例 */package javatest;interface Foo { public int sum(int x, int y);}public class LambdaTest { public static void main(String[] args) { Foo foo = (int x, int y) -> { System.out.println("******
2021-05-28 09:56:18
49
原创 Java重写方法的规则总结
重写不能破坏父类的访问性和逻辑结构性。重写方法不能比被重写方法限制有更严格的访问级别。参数列表必须与被重写方法的相同。返回类型必须与被重写方法的返回类型相同。重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常。如果一个方法不能被继承,则不能重写它。如private方法...
2021-05-24 14:17:45
235
原创 MySql查询过程
MySQL 整个查询执行过程,总的来说分为 6 个步骤 :SQL执行步骤:请求、缓存、SQL解析、优化SQL查询、调用引擎执行,返回结果1、连接:客户端向 MySQL 服务器发送一条查询请求,与connectors交互:连接池认证相关处理。2、缓存:服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段3、解析:服务器进行SQL解析(词法语法)、预处理。4、优化:再由优化器生成对应的执行计划。5、执行:MySQL 根据执行计划,调用存储引擎的 API来执行查询。6
2021-05-21 10:00:25
481
原创 Mysql索引优化和锁机制
1. mysql的架构存储引擎对比项MyISAMInnoDB主外键不支持支持事务不支持支持行表锁表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作缓存只缓存索引,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响。表空间小大关注点性能事务默认安装YYmysql逻辑架构分四层连接层:与其他语言的链接
2021-05-21 09:48:35
293
原创 MySql事务与隔离级别
MySql事务1. 事务的ACID属性(事务的特点)原子性事务是不可分割的,事务中的操作要么都发生,要么都不发生。一致性事在事务开始之前和事务结束以后,数据库的完整性没有被破坏。隔离性数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Seri
2021-05-20 14:00:12
178
2
原创 mysql中exists和in的区别
mysql中exists和in的区别:in是把外表和内表做hash连接,先查询内表,也就是先查询in括号里面的表;exists是对外表做loop循环,循环后拿外表的每一项对内表进行验证,看看外表的每一项在内表是否存在,也就是说,EXISTS()查询是将主查询的结果集放到子查询中做验证,根据验证结果是true或false来决定主查询数据结果是否得以保存;在外表大的时用in效率更快,内表大用exists更快。...
2021-05-19 09:23:58
329
原创 数据库支持emoji
一,改数据库编码以下两种方案任选一ps: 修改数据库配置可以一劳永逸,直接sql修改当机器重启时新加的设置会被还原1.修改数据库配置文件windows下的为my.ini(linux下的为my.cnf)windows下的my.ini路径:C:\ProgramData\MySQL\MySQL Server 5.6[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]cha
2021-05-17 08:57:18
169
原创 基于git的gitee
Git命令行操作本地库初始化git init设置签名(用户名和邮箱地址)项目级别/仓库级别:仅在当前本地库范围内有效git config user.name lvhang_progit config user.email sdllyux@163.com系统用户级别:登陆当前操作系统的用户范围git config --global user.name lvhang_glbgit config --global user.email sdllyux@163.com级别优
2021-05-12 11:26:44
79
原创 SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder ” 解决办法
pom.xml加入slf4j的前置依赖包即可<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.7.2</version> </dependency>
2021-04-29 14:24:12
108
原创 zookeeper报错问题“KeeperErrorCode = ConnectionLoss”踩坑记录
客户端报错:org.apache.curator.CuratorConnectionLossException: KeeperErrorCode = ConnectionLoss查看服务端zookeeper日志发现:EndOfStreamException: Unable to read additional data from client, it probably closed the socket: address = /175.190.113.233:1688, session = 0x0
2021-04-28 22:34:29
15234
原创 多服务之间频繁调用导致系统接口超时的优化方法
加cache减少频繁调用增加熔断降级限流等措施,保证服务高可用,防止服务雪崩使用MQ进行削峰提升硬件配置以上方法都处理不了,建议辞职跑路
2021-04-27 10:09:34
863
转载 Tomcat执行shutdown时报错:java.net.ConnectException: Connection refused (Connection refused)解决办法
在Linux系统上部署tomcat时,部署完毕启动tomcat后用浏览器访问,发现没有反应,执行shutdown.sh命令时报如下错误:java.net.ConnectException: Connection refused (Connection refused)解决办法:找到$JAVA_HOME/jre/lib/security下的java.security文件(此为该文件jdk8的路径,其他版本jdk该文件路径略有差异),将securerandom.source=file:/dev/rand
2021-04-26 11:24:15
1716
原创 CentOS7中,将tomcat8配置为系统服务配置,可以使用systemctl直接启动
修改tomcat的catalina.sh文件, 在152行左右 添加如下内容:CATALINA_PID="$CATALINA_BASE/tomcat.pid"# Only set CATALINA_HOME if not already set[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`# Copy CATALINA_BASE from CATALINA_HOME if n
2021-04-25 16:53:51
415
原创 Nginx配置文件
nginx配置nginx配置文件共分为三块:全局块,events块,http块全局块:主要设置一些影响nginx服务器整体运行的配置指令events块:涉及的指令主要影响Nginx服务器 与用户的网络连接,常用的设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模式来处理连接请求,每个word process可以同时支持的最大连接数等http块:http全局块配置的指令包括文件引入,MIME-TYPE 定义、日志自定义、连接超时时间、单
2021-04-25 15:01:05
73
原创 Linux(CentOS 7.6)常用命令(持续更新)
whereis nginxps -ef | grep nginxrpm -ql nginxrpm -qa|grep nginxnetstat -tlunp 在CentOS主机上查看当前主机在监听哪些端口firewall-cmd --zone=public --add-port=15672/tcp --permanent 开放端口firewall-cmd --list -all 查看开放的端口...
2021-04-25 14:18:55
504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人