- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 Hutool TreeUtil快速构建树形数据结构
在管理菜单、部门结构等场景时,我们经常需要将数据库中的层级数据转换为树形结构。本文将通过Hutool的TreeUtil工具类,实现零递归快速构建树形结构。
2025-04-26 11:46:48
258
原创 sql统计连续3个月存在的记录
最近遇到了使用sql来统计连续3个月存在记录的场景,因觉得此场景后面可能还会遇到,所以在此记录下,我遇到的场景是:找出中连续3个月未达标的记录,类似的场景还有比如:找出某会员服务中连续3个月续费的的用户,用于计算优质用户占比;金融风控中识别连续3个月逾期还款的用户等;常用在数据洞察分析报告中,来分析某种业务数据的稳定性。这里很容易想到可以使用窗口函数来获取当前月份的前两个月数据,也就方法一。
2025-04-19 00:38:29
695
原创 Java工具类-assert断言
断言”一词源自英文Assert,原意为“明确肯定地陈述”,或者说叫“断定某个条件必然成立在编程中,开发者通过断言明确肯定地声明某个条件应该成立,否则程序证明程序有缺陷。
2025-04-12 17:11:06
1512
原创 文心快码制作微信小程序
在创建微信小程序之前我并不太熟悉微信小程序的基本代码结构,不得不承认,百度快码至少生成的代码可以一次运行成功,还是让人眼前一亮,当然这个小项目也是没有用到后端一些复杂函数和数据库,功能比较简单,但我们已经能看到AI对项目上下文的理解能力,已经让开发小程序的门槛降低了,这也大大提高了开发者的效率,现在就差一些好想法和创意了。
2025-04-06 14:34:59
2176
2
原创 常见的幂等性解决方案
在实际开发中,幂等性是常见也是比较重要的问题,尤其是在并发执行以及分布式系统中,我们要选择合适的方案来避免出现幂等性问题。单一方案可能无法完全满足需求,因此可以结合多种方案和业务需求来实现幂等性。
2025-02-16 12:19:18
825
原创 如何在SpringBoot启动时执行特定代码
如果需要处理命令行参数,优先选择或。如果只是简单的Bean初始化逻辑,使用。如果需要在应用完全启动后执行逻辑,选择或。如果需要更灵活的事件监听机制,选择或。
2025-02-09 22:15:35
900
原创 第三方接口设计注意要点
实际工作中,我们会遇到与三方系统对接的情形,比如对接短信服务、支付服务、地图服务、以及一些外部业务系统的调用和回调等等,不论是我们调用第三方接口还是我们为其他系统提供接口服务,调用过程中会遇到一些大大小小的问题和吐槽的地方,比如接口不通对方可能有白名单限制、接口返回字段与文档不一致、接口不稳定等等,本文总结了一些在设计第三方接口过程中要考虑的到的点。
2024-12-29 23:54:44
919
原创 Nginx的正向与反向代理
Nginx(发音为“engine-x”)是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。Nginx是由俄罗斯的Igor Sysoev(伊戈尔·赛索耶夫)为解决C10k问题(即同时处理超过10000个客户端连接)而开发的。它以高性能、稳定性、功能丰富和低资源消耗而闻名。它第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。
2024-10-07 18:54:11
1683
1
原创 SQL中的窗口函数
窗口函数是SQL中的一项高级特性,用于在不改变查询结果集行数的情况下,对每一行执行聚合计算或者其他复杂的计算,也就是说窗口函数可以跨行计算,可以扫描所有的行,并把结果填到每一行中。这些函数通常与OVER()子句一起使用,可以定义窗口或分区,并在上面执行计算,使用窗口函数,可以使许多难以处理的棘手问题变得较为容易。窗口函数的特点输入多行(一个窗口),返回一个值:窗口函数为每行数据进行一次计算,但不会改变原始查询结果集的行数计算方式灵活:可以使用字句将数据分区,并使用order by。
2024-08-03 23:10:08
12866
11
原创 SpringBoot使用Jasypt加密
Jasypt(Java Simplified Encryption)是一个简化Java加密操作的工具,它是一个开源的Java库,旨在帮助开发者以最小的努力添加基本的加密功能,同时无需深入了解密码学的工实现原理,对开发者比较友好。优点高安全性:采用密码学强度加密技术,支持多种加密算法,平衡了性能和安全性。配置灵活:支持自定义加密算法。支持多种数据类型:可以加密密码、文本、数字、二进制文件等多种文件类型。
2024-07-20 13:53:17
1049
原创 Kafka内外网分流配置listeners和advertised.listeners
Kafka部署在内网,内网Java服务会使用Kafka收发消息,另外,Java服务会与其他第三方系统使用kafka实现数据同步,也就是外网也会发送消息到kafka,外网IP做了端口映射到了内网,Kafka 服务器对外宣传的端点信息,它会将地址注册到Zookeeper中,用于告诉客户端应该连接到哪个地址和端口,也就是客户端真正要访问的地址。,可以同时配置多个, 并且用逗号隔开,监听器的名称和端口必须是唯一的,端口相同,就冲突了。类似,但是可以指定不同的地址或端口,如果没有配置,则默认值和。
2024-06-16 15:51:39
2281
1
原创 SpringBoot配置tomcat access日志
Spring Boot使用嵌入式的Tomcat作为默认的Web服务器,可以通过配置文件方式来开启和定制access日志。access日志记录了每一个HTTP请求的信息,包括请求的来源、请求的资源、响应状态码等,常常用来做数据统计、性能监控,比如通过分析访问日志,可以发现性能瓶颈和优化机会,提升应用的响应速度等。
2024-05-23 22:58:29
1079
原创 Skywalking配置traceId
SkyWalking是一个开源的分布式系统观测平台,旨在解决微服务和云原生架构中常见的性能监控和故障排除问题。自2015年由Apache基金会孵化以来,SkyWalking已经成为全球范围内广泛使用的APM(应用性能管理)解决方案之一。
2024-05-15 23:57:41
2790
1
原创 Java日志总结
开发中,日志记录是不可或缺的一部分,应用日志的记录主要用于:记录操作轨迹数据、监控系统运行情况、系统故障定位问题,日志的重要性不言而喻,想要快速定位问题,日志分析是个重要的手段,Java也提供了多种日志框架来进行有效的日志管理。本文将探讨Java常用的日志框架以及使用案例。
2024-05-12 21:34:59
1048
原创 static变量获取nacos配置文件值
static方法修饰的静态变量从配置文件中获取,用到的地方还是挺多的,比如在一些工具类当中,通常这些工具类里面的变量是全局的,在很多地方都有调用。这里1/2/3方案都是先将Spring对象中的变量加载完成后,再主动将值赋值给静态变量实现的,因为只加载一次,所以当Nacos配置文件中值更新的时候,我们需要重启服务才能生效。
2024-04-27 19:47:40
1712
1
原创 【Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPool】
然后一直启动还是报错,以为是版本号问题,试了几个不同版本似乎没有变化,于是尝试退出idea并清除缓存。重新打开idea,等待加载完成,启动不报错了,OK问题解决。尝试了下,在maven里面添加了上面的依赖。然后点击通义灵码工具问了下,回答是缺少。
2024-04-25 20:42:48
1160
1
原创 javaagent使用
是在JDK1.5以后引入的,它能够在不影响正常编译的情况下修改字节码,相当于是在main方法执行之前的拦截器,也叫premain,也就是会先执行premain方法然后再执行main方法。JDK 1.6后引入了agentmain模式,同样提供了一个agentmain方法,可以在main方法执行之后运行。方法将我们的jar包注入到对应的进程当中,然后被注入的进程就好调用jar包里的。可以看到,我们的agentmain方法的代理已经生效,其中。包含agentmain方法的类(类的全路径名)
2024-04-19 23:01:02
1358
原创 feign接口调用报错【JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space 】
在调用chain.doFilter(request, response)的时候就会报上面的错误,刚开始以为是没加token或者参数里面有特殊字符原因,但在exclude该路径并对feign参数检查后,发现并不是,仍然会报错。,即触发压缩请求数据的参数大小,也就是超过这个最小参数大小的时候,就会触发压缩,这个值默认为2048(KB),也就2M大小,我这里参数比较多,所以调到了。在servie服务里面,有用到过滤器进行token进行权限校验。今天在调用feign接口的时候,总是报错,如下。
2024-04-10 21:36:39
724
原创 Gradle入门初探
我们都创建过基于Maven的项目,maven可以很好的管理项目的依赖,编译和打包项目,Gradle是一个和Maven类似的自动化构建工具,Maven是基于xml文件格式,而Gradle是基于Groovy的语言,这使Groovy的构建脚本更加的灵活并且易于编写。在性能上,Gradle也引入了增量构建以及一些缓存机制,也要比maven构建速度更快,总之,Gradle的优点要比maven多,作为继maven之后的新一代的构建工具,如果我们要创建新的项目,不妨使用Gradle尝试下。
2024-04-07 19:26:32
2882
原创 Groovy基础入门
Groovy是运行在JVM中的一种动态语言,可以在Java平台上进行编程,使用方式基本与使用Java代码的方式相同,它的语法与Java语言的语法很相似,与Java相比,Groovy更加灵活、简洁,而且完成同样的功能基本上所需要的Groovy代码量会比Java的代码量少,它还增加了很多功能,如:函数式编程、运行时的灵活性以及许多元编程内容。它可以用来构建一个完整的工程,或者作为一个Module,第三方集成到Java代码中。甚至可以作为脚本在执行时动态编译。
2024-03-29 00:20:12
1783
原创 解决The following method did not exist:net.sf.jsqlparser.statement.select.SelectExpressionItem报错
总结:原本以为是mybatis-plus版本导致的,结果改了几次版本号之后,依然没有用,所以只好从报错日志分析,先排除依赖冲突,再添加依赖解决。查了一下,是mybatis-plus的版本冲突问题,但到底是哪里的冲突呢?可以看到是项目中引入的另一个服务xk-basic,依赖中的mybatis-plus-extension中。大概意思是jsqlparser包冲突了,但是哪两个依赖里面的jsqlparser呢?于是,我使用了Maven-Helper工具,将mybatis-plus-extension中的。
2024-03-21 22:56:42
4912
1
原创 Spring状态机简单实现
状态机,又称有限状态自动机,是表示有限个状态以及在这些状态之间的转移和动作等行为的计算模型。状态机的概念其实可以应用的各种领域,包括电子工程、语言学、哲学、生物学、数学和逻辑学等,例如日常生活中的电梯、风扇、门闸机等,都会涉及到多种状态,随着动作的执行会进行状态的转移,而在软件编程领域,采用状态机的思路同样可以简化我们的设计流程,会使代码的可读性和可维护性得到增加。
2024-03-14 23:45:16
2086
原创 设计模式-状态模式
状态模式是一种行为设计模式,使用状态模式,能够在一个对象内部状态变化时改变它的行为,使其看起来就像改变自身的类一样。核心点:区分事物内部的状态,把事物的每种状态都封装成单独的类,跟此状态有关的行为都被封装在这个类的内部,当对象的状态改变时,它的行为也会随之改变。
2024-03-07 22:49:03
1102
原创 定时任务框架
注:此处的执行器,选择上一步添加的执行器,然后填写任务描述、负责人、报警邮件(接收人),填写调度配置、任务配置(注解接入属于BEAN模式,JobHandler需要跟第四步的3)里面注解填写的JobHandler名称一致,填写高级配置(路由策略、调度过期策略、阻塞处理策略需谨慎选择),子任务ID一般为空,任务超时时间和失败重试次数根据业务需要填写。- 子任务:每个任务都拥有一个唯一的任务ID(任务ID可以从任务列表获取),当本任务执行结束并且执行成功时,将会触发子任务ID所对应的任务的一次主动调度。
2024-02-29 22:45:44
1949
原创 SpringBoot集成Mqtt发送消息
MQTT是一种物联网消息协议,为Message Queuing Telemetry Transport的缩写,即,协议基于发布订阅模式进行通信,有开销低、带宽小、轻量的特点,通常应用在物联网数据采集、移动应用、智能硬件、电力、能源等领域。
2024-02-22 23:01:51
1850
4
原创 设计模式-访问者模式
访问者模式是设计模式中行为型模式的一种(其他的还有如创建型、结构型),听说是设计模式中比较难理解的一种,最近项目中用到了该模式,所以今天总结和实践一下。
2023-12-14 22:36:06
384
1
原创 Redission分布式锁原理初探
在多线程并发请求当中,为了保证我们的资源同一时刻只有一个线程进行操作(如商品超卖问题、购票系统等),我们通常要添加锁机制,如ReentrantLock,也就是可重入的互斥锁,与synchronized功能类似,因为比较灵活,所以经常使用。这在单机情况下是没有问题的,但在多节点的情况下,也就意味着有多个进程,ReentrantLock锁机制可能就会不起作用,所以我们需要一种能够跨进程的锁,也就是同一时刻只能让一个进程获取锁,来控制共享资源的访问。
2023-12-08 00:01:15
240
原创 repository does not exist or may require ‘docker login‘: denied: requested access to the resource is
问题描述:最近在学习kubernetes的使用,在部署SpringBoot项目的时候,总是拉取不到本地的docker镜像,提示就是:repository does not exist or may require 'docker login': denied: requested access to the resource is denied,pod描述如下图所示而我当前的docker镜像明明是有的并且我的kubernets部署文件deploy.yaml也是配置的不从远程拉取镜像,如下问题解
2021-05-09 11:18:43
21338
原创 Github clone项目很慢
今天clone github项目的时候,网速很慢,想着能不能找个方法加速出现的问题然而在push的时候push出错git pushfatal: unable to access ‘https://github.com.cnpmjs.org/zhang009/blog.git/’: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com.cnpmjs.org:443解决使用以下命令查看git远程发布的地址
2021-02-22 21:41:58
257
原创 后端实体类isXXX开头的属性,传到前端后自动去掉is
最近在做一个前后端分离的小案例的时候,前端一直获取不到后端两个is开头的属性值,后来打印后发现is的前缀被自动去掉了。由此想到以前在看开发规范的时候,对这个一点有一些印象,大概就是避免使用is开头来命名属性值。特此记录一下。数据库定义如下:两个字段为tinyint类型对应的实体类中属性定义如下:两个属性为布尔类型前端获取到的值:对于产生此问题的原因,又看了一下阿里的开发规范意思是建数据库表推荐表示是否的字段以is开头,但类中要避免使用is开头的变量命名,推荐使用resultMap进行映射。
2020-08-30 17:40:50
3696
3
原创 vue中解决v-show中的值改变,但视图不刷新问题
vue中解决v-show中的值改变,但视图不刷新问题问题:之前使用全局变量和v-show来解决div隐藏问题,类似这样<el-button type="primary" @click="showAdvanceSearchView=!showAdvanceSearchView"> <div v-show="showAdvanceSearchView" > X...
2020-04-11 13:06:39
13585
3
原创 elementUI布局el-aside消除底部滚动条
在elmentUI中使用了el-aside布局侧边栏,但是莫名出现了底部的滚动条,如下解决方法:在el-aside下面添加然后底部滚动条就没了,如果消除侧边的滑动条,把el-scrollbar中样式的height改成100%应该也是可以的。...
2020-04-04 18:53:58
12302
5
原创 Cannot get a STRING value from a NUMERIC cell
使用POI读取单元格内容的时候,在读取到电话号码的时候报错Cannot get a STRING value from a NUMERIC cell读取的表格如下,手机号码解决办法:在遍历获取单元格后,遍历前加入cell.setCellType(CellType.STRING);另外单元格格式CellType还有如下类型:CellType _NONE未知类型,用于表示初始...
2020-03-27 12:33:03
6902
1
原创 npm ERR! code ELIFECYCLE
今天参考这篇文章使用Hexo搭建博客的时候,执行到最后一步,也就是执行hexo s的时候,浏览器http://localhost:4000出现下面字符串<%- partial(’_partial/head’) %> <%- partial(‘partial/header’) %><%- body %> <% if (theme.sidebar &...
2020-03-14 14:32:39
520
3
原创 MyBatis命令行实现逆向工程
1.MyBatis逆向工程介绍在开发过程中,经常有需要使用MyBatis的情形,通常情况下,MyBatis构建项目避免不了写实体类、Dao接口、Mapper映射文件,这些工作都类似,具有一定的重复性,有的时候也容易出错,于是就有人发明了【MyBatis逆向工程】->MyBatis Generator。MyBatis Generator(MBG)是一个代码生成器, 可以生成我们所需要的dao...
2020-02-28 21:49:24
524
原创 WebStorm中在Terminal,npm命令不能使用: ‘'npm' 不是内部或外部命令,也不是可运行的程序 或批处理文件问题
在使用Vue-cli构建项目时候,使用webStorm打开项目,在Terminal控制台不能使用npm命令查看了我的WebStorm中Setting配置,貌似没问题这个问题我推测应该是环境变量的问题,我安装node.js时并没有配置环境变量,只是一直next完成安装的参考博文点击查看,重新配置了node系统变量和用户变量,如下再次重启WebStorm,发现npm命令仍然不能使用,挠头...
2020-02-27 17:35:19
17547
23
原创 Circular view path []: would dispatch back to the current handler URL [/user] again.Check your ViewR
今天使用SpringBoot+Freemarker写一个小Demo,Controller接口返回model值,使用ftl模板浏览器显示的错误:SpringBoot后台显示:javax.servlet.ServletException: Circular view path [user]: would dispatch back to the current handler URL [/us...
2020-02-18 19:43:06
3013
3
原创 Dependency‘org.framework:spring-webmvc:’ not found
maven新建了一个工程,但总是找不到依赖,也就是依赖不能自动下载,即下面情况idea上面配置maven有两种方法,一种是用idea自带的maven,另一种是自己下载的maven,我试了两种都行不通,依旧是上图的情况试过的解决方法:1.检查镜像,这里我换成了阿里云的下载源,看不出来有什么毛病2.检查IDEA中maven的仓库配置,我用是自定义的仓库,仓库已经在settings.xml中...
2020-02-16 11:52:28
10749
10
原创 400Bad Request异常
400Bad Request异常今天写JavaWeb项目,ajax传输数据到后台,发现后台接收不到数据,浏览器上面显示404 bad request,如图这个明显是ajax传输过程中语法错误,我仔细检查了传输的json对象的字段名字,发现并没有错误。网上给出400Bad Request的解决方法都是在ajax方法里加上contentType:‘application/json; charse...
2019-06-29 21:14:01
10555
问卷调查表+布局.zip
2020-06-02
计算机图形学-综合画线系统
2018-09-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人