自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(414)
  • 资源 (10)
  • 收藏
  • 关注

原创 MySQL分页查询慢的原因及解决方案

我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用 limit 加偏移量:select * from table where column=xxx order by xxx limit 1,20。但是,当数据量大的时候(小编遇到的情况是 500 万数据),如果翻到最后几页,即使加了索引,查询也是非常慢的,这是什么原因导致的呢?但是我们查看前几页的时候,速度并不慢。解决的方法就是尽量使用索引覆盖扫描,就是我们 select 后面检出的是索引列,而不是所有的列,而且这个索引的列最好是 id。

2024-12-17 10:48:55 491

原创 oracle如何查询死锁

3)如果还不能解决:2)kill掉这个死锁的进程:alter system kill session ‘sid,serial#’;Username:死锁语句所用的数据库用户;如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。2)用dba用户执行以下语句,可以查看到被死锁的语句。Lockwait:死锁的状态,如果有内容表示被死锁。Program: 产生死锁的语句主要来自哪个应用程序。Status: 状态,active表示被死锁。Machine: 死锁语句所在的机器。1)用dba用户执行以下语句。

2024-12-17 10:10:54 1537

转载 explain查看sql执行计划

如果此列是NULL,则没有相关的索引。关键字,就能够看到它的执行计划,通过执行计划,我们可以清楚的看到表和索引执行的情况,索引有没有执行、索引执行顺序和索引的类型等。这里建立的是code和name的联合索引,顺序是code在前,name在后,这里直接按name降序,跟之前联合索引的顺序不一样。该字段包含有关MySQL如何解析查询的其他信息,这列还是挺重要的,但是里面包含的值太多,就不一一介绍了,只列举几个常见的。我们看到表t1命中的索引是const(常量),而t2命中的索引是列sue库的t1表的id字段。

2024-12-17 10:07:54 374

转载 Spring事务@Transactional常见的8种失效场景(通俗易懂)

在Spring的Aop代理下,只有目标方法在外部进行调用,目标方法才会由Spring生成的代理对象来进行管理,如果是其他不包含@Transactional注解的方法中调用包含@Transactional注解的方法时候,有@Transactional注解的方法的事务会被忽略,则不会发生回滚。这是因为@Async注解使用的是独立线程和独立的事务,和notice的不处于同一个事务当中,所以notice回滚了,但是history入库了。虽然程序当中抛出了异常,但是数据库还是成功入库了,这样显然是不合理的!

2024-12-17 09:58:31 486

原创 Spring boot 线程池使用——事务处理机制

所以,在spring boot线程池使用时,给@Async方法加@transactional是一种比较方便的处理方式。除此之外,将事务主体作为单独对象调用,也可以保证事务生效。异步方法在没有事务注解的情况下,去调用通过@Autowired注入的有事务注解的其他对象方法时,事务是生效的(即表格第三列倒数第二行结论)。图中表示的是用@Async注解修饰的异步方法,在各种场景下的事务表现。其背后的原理是,AOP的动态代理生成的代理对象和当前对象的区别。异步任务中,事务也是很关键的一部分。

2024-12-17 09:42:43 206

转载 Spring三级缓存解决循环依赖

肯定是有一些缺陷的。比如,可能AService会进行AOP操作,会创建AServiceProxy代理对象,然后将代理对象放入单例池中,但是BService进行属性赋值 依赖注入的时候是把AService的普通对象进行赋值,所以这里是有问题的,应该是赋值AServiceProxy代理对象。可以引入一个map来解决循环依赖问题,在创建AService普通对象的时候,将这个普通对象存入map中,然后在BService创建的生命周期中进行依赖注入时,如果在单例池中没有找到AService对象就去map中找。

2024-12-16 17:15:24 41

转载 java特殊字符转义处理:特殊字符转义及解决方法

需要注意的是,在实际应用程序开发中,我们需要根据具体的需求进行 URL 转义,特别是在进行网络请求时,我们需要将请求参数进行转义,以避免出现解析错误或安全问题。同时,我们还需要注意 URL 编码和 URL 路径编码的区别,前者会对所有的字符进行编码,而后者只会对路径中的字符进行编码。问题:在 HTTP GET 请求中,如果参数中包含特殊字符(如空格、+、&、/、% 等),需要对其进行转义,否则在服务端解析时会出现错误。空格:空格可以使用 %20 或者 + 进行转义,建议使用 %20。

2024-12-16 16:36:31 2713

转载 一文搞懂什么是RESTful API

在具体构建RESTful API的时候,需要对各种请求有更细致的认知,当然,本案例在实现各种请求的时候为了演示的便捷并没有完全遵循RESTful API规范,例如版本号等信息这里就不添加了,案例更侧重于使用SpringBoot实现这个接口。到这里RESTful API的介绍和实战就结束啦,本篇首先从RESTful的一些特点进行介绍,再到SpringBoot实战RESTful API,最后也说了一些RESTful API并不完美的地方,相信睿智的你对RESTful 一定有了很深刻的理解。

2024-12-16 16:31:37 1225

转载 Spring Boot如何在项目启动成功后执行一段初始化逻辑

文章目录背景说明一、入门级:启动main方法中添加初始化逻辑二、黄金级:实现ApplicationRunner或CommandLineRunner接口三、大神级:ApplicationListener监听启动完成事件背景说明在我们使用Spring Boot进行项目开发时,偶尔会遇到在Spring Boot项目启动完成后需要执行一些初始化的逻辑,比如缓存预加载,数据库初始化等。那么这种需求我们需要怎么实现呢?本文将提供3种方法供大家参考。

2024-12-16 16:26:28 57

原创 Mysql出现死锁原因

1)在采用INNODB的MySQL中,更新操作默认会加行级锁,行级锁是基于索引的,在分析死锁之前需要查询一下mysql的执行计划,看看是否用到了索引,用到了哪个索引,对于没有用索引的操作会采用表级锁。在并发度高的应用中,批量更新一定要带上记录的主键,优先获取主键上的锁,这样可以减少死锁的发生。2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。比如A向B转账,不可能A扣了钱,B却没收到。1.生产环境出现以下报错。

2024-12-16 16:14:13 664

原创 问题排查 - MYSQL 事务死锁问题

先 SELECT id WHERE … LIKE … LIMIT N,然后再使用 DELETE / UPDATE … IN (ids) 去做。

2024-12-16 16:06:41 1019

原创 SpringBoot——加载配置文件顺序和类型

可以使用@PropertySource标签指定自定义的配置文件名称和路径;(默认能加载到的配置文件也会先被加载)通常只会用到设置配置文件的名字,并且配置文件的名字可以随便定义,可以叫xxxx.properties、a.txt、b.abc等等,但是内容格式需要跟.properties一致,即kv格式,所以不能直接加载yml格式的配置文件;

2024-12-16 15:28:25 1420

原创 SpringCloud中的bootstrap配置

这节的案例中是配置一个Provider,一个eureka,他们的配置统一在github上获取,实现统一配置分布式管理和多环境变更,这个才比较有实战意义。编写controller,此步骤也比较关键,主要是利用@Value注解赋值,若写错了bootstrap.yml中的配置文件名称而没有获取到配置,启动时这里会抛出异常。先写好provider和Eureka的配置yml文件,这两个文件和平常配置没什么不同,因为这里主要是说config,所以就没有配置集群,上传yml到github。

2024-12-16 15:17:50 1386

原创 Java基础---BigSet

BitSet是位操作的对象,值只有0或1即false和true,内部维护了一个long数组,初始只有一个long,所以BitSet最小的size是64,当随着存储的元素越来越多,BitSet内部会动态扩充,最终内部是由N个long来存储,这些针对操作都是透明的。可以看到,如果指定的bit不存在的话,返回的是false,即没有设置。wordsInUse 是检查当前的long数组中,实际使用的long的个数,即long[wordsInUse-1]是当前最后一个存储有有效bit的long。

2024-12-16 15:05:24 914

原创 springcloud中的LoadBalancerClient 负载策略原理

LoadBalancerClient先从提供的服务中获取某一个实例(默认策略为轮询),比如订单服务需要访问商品服务,商品服务有3个节点,LoadBalancerClient会通过choose(),方法获取到3个节点中的一个服务,拿到服务的信息之后取出服务ip信息,就可以得到完成的想要访问的ip地址和接口,最后通过RestTempate访问商品服务。进入ServiceInstanceChooser接口中,可以看到主要的方法为choose(),这是是用来根据服务的名称,获取来选择其中一个服务实例。

2024-12-16 14:48:03 629

原创 Mysql int(11)和Oracles nubmer(11) 的区别

Mysql int(11)和Oracles nubmer(11) 的区别

2022-12-08 15:17:41 1683

原创 springboot 中注解@Async失效的情况

@Async失效的情况

2022-12-03 17:20:05 1865

原创 文件路径的正斜杠(/)与反斜杠(\)介绍

文件路径的正斜杠(/)与反斜杠(\)介绍

2022-12-03 17:18:03 5229

原创 docker镜像如何下载到本地

docker镜像如何下载到本地

2022-11-30 10:18:48 5813

转载 Invalid bound statement (not found) 解决办法汇总

Invalid bound statement (not found) 解决办法汇总

2022-11-30 10:18:15 3261

转载 java.lang.IllegalArgumentException: invalid comparison: java.time.LocalDateTime and java.lang.String

java.lang.IllegalArgumentException: invalid comparison: java.time.LocalDateTime and java.lang.String 问题解决

2022-11-03 15:44:45 822 1

原创 SpringBoot-内嵌Tomcat源码剖析

Spring Boot 默认支持 Tomcat , Jetty ,和 Undertow 作为底层容器。而 Spring Boot 默认使用 Tomcat ,一旦引入 spring-boot-starter-web 模块,就默认使用 Tomcat 容器。

2022-10-24 17:39:28 736

转载 LocalDateTime之adjustInto的用法及使用场景

LocalDateTime之adjustInto的用法及使用场景

2022-10-13 15:59:27 264

转载 Linux中启动Docker容器报错:Error response from daemon: driver failed programming external connectivity

Linux中启动Docker容器报错:Error response from daemon: driver failed programming external connectivity

2022-10-13 15:59:03 538

转载 Springboot中@RequestParam详解

RequestParam详解

2022-10-13 15:58:46 15215

转载 JRebel插件使用详解

JRebel插件使用详解

2022-10-13 15:58:07 906

原创 Spring Boot-内置的Tomcat服务器配置详解

Spring Boot-内置的Tomcat服务器配置详解

2022-10-13 14:27:51 18827

原创 java.lang.IllegalStateException: getAttribute: Session already invalidated 会话失效 异常解决

java.lang.IllegalStateException: getAttribute: Session already invalidated 会话失效 异常解决

2022-10-13 14:12:51 4530

原创 Nginx配置ssl证书详细步骤

Nginx配置ssl证书详细步骤

2022-10-12 16:14:05 24120

原创 Nginx解决配置SSL证书报错:nginx: [emerg] unknown directive “ssl_certificate1“ in /usr/local/nginx/conf/ngi...

Nginx解决配置SSL证书报错:nginx: [emerg] unknown directive "ssl_certificate1" in /usr/local/nginx/conf/ngi...

2022-10-12 16:09:56 10105 4

原创 Nginx 配置SSL证书

Nginx 配置SSL证书

2022-10-12 16:06:19 4405

原创 深入了解Nginx底层

Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库

2022-10-12 16:03:49 24

转载 Docker安装Nacos详细教程

Docker安装Nacos详细教程

2022-10-11 10:10:51 2199

原创 jprofiler远程监控JVM( spring boot项目)

jprofiler远程监控JVM( spring boot项目)

2022-10-11 10:10:37 4987

转载 tigerVNC的简单使用教程(CentOS的远程桌面连接)

tigerVNC的简单使用教程(CentOS的远程桌面连接)

2022-10-11 10:10:22 3720

原创 Dbeaver导出异常:Utility ‘mysqldump.exe‘ not found in client home

Dbeaver导出异常:Utility 'mysqldump.exe' not found in client home

2022-10-11 10:10:07 2626

转载 Linux 搜索文件和文件夹的 4 种简单方法

Linux 搜索文件和文件夹的 4 种简单方法

2022-10-11 10:09:52 22578

转载 CMS几种GC模式解读

正常情况下触发Backgroud模式的CMS GC,这是并发模式收集,对业务影响很小,你好我好都好。当并发模式搞不定了,就会退化成Foreground模式,这个回收过程业务线程是不可用的,这时候就触发了FullGC。接下来根据上面提到的两个参数决定是否采用MSC算法压缩堆。CMSFullGCsBeforeCompaction决定多少次FullGC后压缩堆,具体配置多大,由你决定,但是不建议太大,否则在采用MSC算法压缩堆之前,由于内存碎片的问题,导致出现promotion failure,总之这是tr

2022-10-11 10:09:17 534

原创 -XX:CMSInitiatingOccupancyFraction

-XX:CMSInitiatingOccupancyFraction=70CMS垃圾收集器,当老年代达到70%时,触发CMS垃圾回收。

2022-10-11 10:09:05 796

原创 GC参数解析 UseSerialGC、UseParNewGC、UseParallelGC、UseConcMarkSweepGC

GC参数解析 UseSerialGC、UseParNewGC、UseParallelGC、UseConcMarkSweepGC

2022-10-11 10:08:49 1404

IBM分析dump文件工具

IBM分析dump文件工具

2022-04-09

Jprofile分析器

分析java内存溢出文件工具

2022-04-09

jmeter-5.4.1.zip

Jmeter压力测试工具

2021-04-02

postman4.8.3版本

Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。

2018-10-18

jquery实现城市三级联动效果

jquery实现城市三级联动效果,demo可以直接使用方便快捷

2018-10-13

jquery-1.7.2.js

jquery-1.7.2.js包含了 主要的js文件还有介绍文档,适合新手学习

2018-10-13

jquery-easyui-1.5版本

jquery-easyui-1.5版本,自带demo可以随时查看,并且包含easyui主要js

2018-10-11

spring3.1.0全部jar包

spring3.1.0全部jar包,里面还有各个jar详细作用,直接下载就可以使用

2018-10-11

学习构建SSM框架(SpringMVC+Spring+Mybatis)需要的jar包

学习构建SSM框架(SpringMVC+Spring+Mybatis)需要的jar包,下载就可以直接使用

2018-10-10

xssProject 所需的三个 jar 包

针对 XSS 攻击的解决方案,个人建议使用 xssProject 来解决这一问题。毕竟 xssProject 已经提供了很完善的过滤、处理方案,你可以通过研究他的代码来进行扩展,如果需要的话。 xssProject 所需的三个 jar 包。

2018-09-26

空空如也

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

TA关注的人

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