自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql 5.7分组报错问题 Expression #1 of ORDER BY clause is not in GROUP BY clause

建议遵循 ONLY_FULL_GROUP_BY 规则,以确保查询的准确性和可维护性

2024-04-19 17:23:17 199

原创 解决navicat远程连接mysql 很慢(首次)

skip-name-resolve 解决navicat远程连接mysql 很慢(首次)

2024-04-19 14:43:58 58

原创 mysql 删除数据的四种方法

在MySQL数据库中,删除数据是一个常见的操作,它允许从表中移除不再需要的数据。在执行删除操作时,需要谨慎,以免误删重要数据。DELETE语句DROP TABLE语句使用外键约束这些是MySQL中删除数据的主要方法。在执行删除操作时,请确保备份重要数据,以免意外删除。此外,根据您的需求选择适当的删除方法,以确保数据库的完整性和性能。如果不确定如何执行删除操作,建议在测试环境中进行测试,以避免在生产环境中发生意外。

2024-04-18 17:42:53 581

原创 Spring WebFlux Mono 未按预期执行

当调用 subscribe() 时,不会立即执行 Mono 中的逻辑,而是注册了一个订阅者,实际的处理将在后台线程(如 Reactor 的调度线程)中异步进行。如果代码中仅创建了 Mono 实例而未显式或隐式调用 subscribe() 或其他触发订阅的方法(如 block()、flatMap()、thenReturn() 等),则 Mono 内部的逻辑将不会执行。代码执行顺序: 在某些复杂的异步场景中,可能由于代码逻辑安排不当,导致 subscribe() 调用发生在 Mono 创建或填充之后。

2024-04-17 16:39:51 593

原创 spring webflux 小结

一个简单的处理请求和响应的抽象,用来适配不同HTTP服务容器的API。关于Spring MVC 和Spring WebFlux 测评很多,本文引用下做简单说明。参考:《基本依赖-- r2dbc 连接池 -->--r2dbc mysql 库-->--自动配置需要引入一个嵌入式数据库类型对象-->-- 反应方程式 web 框架 webflux-->相同数据下效果如下;Spring MVC + JDBC 在低并发下表现最好,但 WebFlux + R2DBC 在高并发下每个处理请求使用的内存最少。

2024-04-16 16:07:11 1078

原创 Mysql5.7 yum 简单/快速安装

mysql yum 快速简单安装

2024-04-01 19:48:09 1351

原创 linux yum install jdk如何查找安装目录并配置环境变量

所以openJDK11的安装路径是:/usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64/,下面可以编辑profile文件配置环境变量了。Linux服务已安装jdk1.8,此时需要在该服务器部署的应用要求依赖openJDK11,可按照以下命令进行安装openJDK11。,输出的是openjdk11,说明默认运行的是openjdk11,如果应用环境需要依赖jdk1.8需要指定jdk1.8路径。如果能查找到安装包,执行以下安装命令进行安装。

2024-03-31 09:50:15 467

原创 linux redis 快速安装

/保护模式下,仅本机可以访问。//设置所有ip可以访问。

2024-03-31 09:29:18 259

原创 @EnableWebMvc 导致自定义序列化器失效

在使用Swagger的时候用 到了@EnableWebMvc,发现之前为了解决Long类型、日期类型等自定义序列化器失效了@Bean.select().build();Swagger3/2+Spring boot 使用小结_spring boot3 + swagger3-CSDN博客我们有时候,可能需要自定义一个序列化器来满足自己的需要,但是如果项目中不正确使用了注解,可能会导致这个自定义的序列化器失效。首先我们应该看下这个注解是拿来干啥的吧。项目中,如果我们希望自定义一些MVC。

2024-03-27 15:15:50 1270

原创 Swagger3/2+Spring boot 使用小结

Swagger 是一个 RESTful API 的开源框架,它的主要目的是帮助开发者设计、构建、文档化和测试 Web API。Swagger 的核心思想是通过定义和描述 API 的规范、结构和交互方式,以提高 API 的可读性、可靠性和易用性,同时降低 API 开发的难度和开发者之间的沟通成本。其实OpenAPI规范(也称为 Swagger 3.x 规范)是一种用于描述RESTful API的标准化格式,它定义了如何描述API的基本信息、结构、参数、响应等方面的规范。

2024-03-20 11:11:35 768

原创 通过spring boot/redis/aspect 防止表单重复提交【防抖】

所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。滚动加载类接口:比如下拉刷新、上拉加载更多等,用户可能在滚动过程中频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户停止滚动一段时间后再发送请求。用户输入类接口:比如搜索框输入、表单输入等,用户输入往往会频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户完成输入一段时间后再发送请求。

2024-03-15 20:05:40 448

原创 微服务超大Excel文件导出方案优化

微服务超大Excel文件导出方案优化(异步/拆分/压缩)

2024-03-08 17:26:11 482

原创 spring.factories 和@ComponentScan的使用小结

是一种基于SPI(Service Provider Interface)的机制,用于自动配置和加载组件。SPI是一种Java扩展机制,允许应用程序在运行时动态加载实现特定接口的组件。在Spring Boot项目中,文件中,可以配置各种自动配置类、扩展点和插件,Spring Boot在启动时会通过这个文件自动加载这些组件,实现自动配置和扩展功能。这种基于SPI的机制可以帮助简化应用程序的配置和扩展,提高开发效率和灵活性。文件通常用于定义各种自动配置类、扩展点和插件,以实现自动配置和加载功能。

2024-02-23 19:42:40 365

原创 通过闭包表解决无限极代理分销

无限极分销,关系表

2024-02-20 14:34:16 388

原创 通过Spring @Validated 更优雅的实现参数校验

通过Spring @Validated 更优雅的实现参数校验

2024-02-08 00:50:32 329

原创 Spring Cloud+SkyWalking全链路监控部署及使用分享

Spring Cloud+SkyWalking全链路监控部署及使用分享

2024-01-25 11:06:15 882 1

原创 rocketmq 集群环境部署及与spring cloud 集成

rocketmq 集群环境部署及与spring cloud 集成

2023-11-29 11:24:47 1043

原创 MySQL 案例:update set 和 and 的坑

由此可见,MySQL 在语法上,并不认为 and 这个用法是错误的,那么说明 MySQL 用另外的方式“解读”了这个语句。最容易想到的,就是 MySQL 是不是在 set 的时候,把 and 解释成了逻辑运算符,而不是英文意义上的“和”?可以看到这两个语句确实都不会报错,且带 and 的 update 语句匹配到了具体的行(Rows matched: 1),但是没有修改数据(Changed: 0),标准语法下的 update 语句倒是正常修改了数据。,实际构造一个简单的场景,尝试复现一下这个问题。

2023-11-06 10:49:59 521

原创 JAVA 实现加权轮询算法:有权重,按权重轮询,无权重随机分配

【代码】JAVA 实现加权轮询算法:有权重,按权重轮询,无权重随机分配。

2023-08-10 09:23:40 295

原创 Java前后端交互long类型溢出的解决方案

long 精度溢出

2023-07-24 10:25:51 868

原创 spring cloud feign 开启gzip及Illegal character ((CTRL-CHAR, code 31))异常处理

min-response-size:默认2k(2048)按需配置。#mime-types: 按需配置。

2023-07-08 15:00:11 413

原创 记录一次性能调优

现状:交易接口,并发10笔每秒都不能100%超过,存在响应超时或者连接超时,但服务节点看着很正常没有任何错误信息,太夸张了。服务:测试环境/spring cloud/mysql linux 4*16G/nacos/单节点/固定带宽5M。

2023-05-08 16:43:38 65

原创 OAuth2.0 详解

OAuth2.0 的授权简单理解其实就是获取令牌(token)的过程,OAuth 协议定义了四种获得令牌的授权方式(authorization grant ):授权码(authorization-code)、简单式(implicit)、密码式(password)、客户端凭证(client credentials),一般常用的是授权码和密码模式。发布于 2022-05-04 18:16。

2023-01-13 09:24:39 1551

原创 【多级分销,如何更有效的查找上级/下级】

多级分销,如何更有效的查找上级/下级

2022-07-15 17:25:09 378

原创 Spring Cloud 集成 Sleuth+Zipkin+Mysql

1 配置 Zipkin-Server 现在的版本(2.23.16)已经可以直接运行官方提供的jar,不需要单独去写这个服务了,下载地址启动命令:STORAGE_TYPE=mysql MYSQL_HOST=127.0.0.1 MYSQL_TCP_PORT=3306 MYSQL_DB=db_zipkin_log MYSQL_USER=root MYSQL_PASS=root nohup java -jar -Xms512m -Xmx1024m zipkin-server-2.23.16-exe.

2022-03-30 15:53:02 1091

转载 Git Flow 的正确使用姿势

Git Flow 的概念在使用Git的过程中如果没有清晰流程和规划,否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。Git版本管理同样需要一个清晰的流程和规范。Vincent Driessen 为了解决这个问题提出了 A Successful Git Branching Model以下是基于Vincent Driessen提出的Git Flow 流程图Git Flow 的常用分支 Production 分支 也就是我们经常使用的Master...

2021-01-20 10:33:20 107

转载 Linux下查看日志用到的常用命令

Linux下查看日志用到的常用命令杀僵尸进程部分程序员,肯定喜欢下面命令:  ps -ef | grep java (先查java进程ID)  kill -9 PID(生产环境谨慎使用)kill、killall、pkill命令的区别  kill:通过pid来杀死进程  killall (killall [参数] [进程名]):Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程..

2021-01-05 09:51:48 294

原创 Arthas 开源 Java 诊断工具(服务器反编译class)

arthas 使用服务器环境编译类#1、进入arthas目录cd /root/arthas-packaging-3.3.9-bin#2、执行arthas命令java -jar arthas-boot.jar#3、找到自己需要进入的java进程,输入对应前面的序号【比如 1】1#4、查询自己所找的对应的类加载器hash码【后继用于编译】,比如我要找的类为com.tansun.tcp.sys.msg.action.BaseMsgSysAction输入下方命令:sc -d com.

2020-09-27 16:36:33 2124

原创 解决spring mvc 扫描包的问题

问题现状:系统相关的roleApi/menuApi/permApi 注入到目的地失败,这些包都在com.xxx下面1 applicationContext-xxx.xml 配置<context:component-scan base-package="com.xxx"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

2020-09-10 11:09:25 509

原创 javafx webview 解决cookie 丢失、https图片不显示、设置代理

private static void loadWebView() { Platform.runLater(() -> { TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { retur.

2020-06-22 15:46:56 1357

原创 Spring Boot 配置文件bootstrap和application的加载顺序

1. 相同目录优先级bootstrap.properties/yml >>bootstrap-{profile}.properties/yml>>application.properties/yml>>application-{profile}.properties/yml2.不同目录优先级在不指定要被加载文件时,默认的加载顺序:由里向外加载,所以最...

2019-12-27 17:24:51 2599

原创 同一个SQL语句,为啥性能差异咋就这么大呢?(1分钟系列)

《数据库允许空值,往往是悲剧的开始》一文通过explain来分析SQL的执行计划,来分析null对索引命中情况的影响,有不少朋友留言,问explain结果中的type字段,ref,ALL等不一样的值究竟是什么含义。今天花1分钟简单说下,常见的type结果及代表的含义,并且通过同一个SQL语句的性能差异,说明建对索引多么重要。explain结果中的type字段代表什么意思?...

2019-09-03 11:29:28 261

原创 linux上安装mysql5.7

1、下载tar包,这里使用wget从官网下载wgethttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz2、将mysql安装到/usr/local/mysql下# 解压tar -xvfmysql-5.7.22-linux-glibc2.12-x86_64....

2019-07-29 11:24:05 110

原创 Spring Boot 全局异常处理(400/404/500),顺便解决过滤器中异常未捕获到的问题,让RestApi 任何时候都能获取统一的格式代码

出发点是为了在系统抛出异常的时候,前端仍然可以获取到统一的报文格式,所以后端所有的异常都得捕获,并处理Spring boot 在处理异常的时候,500/404默认都会转发到/error,而这个异常的处理类是ErrorController,所以我们重写一个ErrorController的子类即可:@RestControllerpublic class GlobalExcept...

2019-05-31 14:17:50 7192

转载 JVM调优总结

目录数据类型堆与栈Java对象的大小引用类型按照基本回收策略分按分区对待的方式分按系统线程分如何区分垃圾如何处理碎片如何解决同时存在的对象创建和对象回收问题为什么要分代如何分代什么情况下触发垃圾回收分代垃圾回收流程示意选择合适的垃圾收集算法小结回收器选择辅助信息常见配置汇总调优总结垃圾回收的瓶颈增量收集的演进Garbage Firest(G1)展望JVM调优工具如何调优线程监控内存泄漏检查垃圾...

2019-03-29 11:51:18 118

原创 Java GC原理

Java GC(garbage collec,垃圾收集,回收)GC是对JVM中的内存进行标记和回收,Sun公司的JDK用的虚拟机都是HotSpot对象化的实例是放在heap堆内存中的,这里讲的分代收集也是指对堆内存的回收GC的分代收集分为:年轻代、老年代、永久代。(方法区是被当做永久代的,不过JDK1.6后将被取消掉了)年轻代(Young Generation)、年老代(Old G...

2019-03-29 11:42:51 109

原创 java内存模型

在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步?  在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。  线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信。同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代码块需要...

2019-03-29 11:02:23 105

转载 常见负载均衡算法

轮询法(Round Robin) 轮询法是负载均衡中最常用的算法,它容易理解也容易实现。轮询法是指负载均衡服务器(load balancer)将客户端请求按顺序轮流分配到后端服务器上,以达到负载均衡的目的。假设现在有6个客户端请求,2台后端服务器。当第一个请求到达负载均衡服务器时,负载均衡服务器会将这个请求分派到后端服务器1;当第二个请求到害时,负载均衡服务器会将这个请求分...

2019-03-28 17:20:57 245

原创 java.awt.headless 模式

1. 什么是 java.awt.headless?Headless模式是系统的一种配置模式。在系统可能缺少显示设备、键盘或鼠标这些外设的情况下可以使用该模式。2. 何时使用和headless mode?Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少GUI设备,但又需要使用他...

2019-03-28 14:35:18 247

转载 Java SPI机制

1 SPI是什么SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。整体机制图如下:Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块...

2019-03-28 12:00:41 96

SVN版本控制方案

规范如何使用SVN trunk branch tag

2016-01-15

Java多张小图合成一张大图

java 程序将多张小图合成一张大图 适合css样式将多个小图合成大图

2014-02-24

Java关于时间调度的几种实现方(Timer Quartz Spring)

Java关于时间调度的几种实现方(Timer TimerTask Quartz Spring)

2014-02-18

JSP自定义分页标签 extends TagSupport

JSP自定义分页标签 extends TagSupport 多种分页风格无需额外资源,使用简单易懂:WebRoot/WEB-INF/tms-tags.tld 文件路径

2014-02-18

PowerDesigner反向工程将数据库设计导出SQL脚本、HTML或World

PowerDesigner反向工程将数据库设计导出: 1 导出SQL脚本 2 导出HTML用以展示模型效果 3 RTF(WORD)或者其他

2012-05-14

局域网聊天和文件传输[Java源码]

局域网 聊天和文件传输[Java源码]: JavaSE技术: Swing编程 Socket通讯 多线程 IO流 等等!

2012-05-14

oracle网络配置(连接非本机oracle服务器)

oracle网络配置(连接非本机oracle服务器)

2011-09-09

javascript日期、时间大小的比较

javaScript中实现时间、日期大小的比较 主要是用于在使用日期控件时比较您选择的时间是否大于系统当前时间.....

2010-05-08

struts2文件上传、下载

实现struts2中文件上传于下载及所要主意的地方.... 如:文件类型文件大小的控制等....

2010-05-08

从n个整数中查找出现频率最高的所有整数(用java实现)

从n个整数中查找出现频率最高的所有整数(用java实现)

2009-03-25

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

TA关注的人

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