- 博客(198)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 常用工具类的收集
目录获取HttpServletRequest获取IP地址MD5加密获取HttpServletRequestimport javax.servlet.http.HttpServletRequest;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;public clas
2020-10-25 22:49:26
175
2
原创 centos安装了curl却报 -bash: curl: command not found
其实我第一次按照csdn一篇博客试了一下,是失败的,第二次又找了篇博客园的文章试了下,就成功了,但两篇文章的内容是一模一样的,也很离谱。我服务器上想用curl下载docker-compress,发现没有curl命令,就去下载安装,安装完成之后,报。
2023-12-14 22:06:49
1275
原创 jdbcTemplate的queryForList报错:Incorrect column count: expected 1, actual 2
jdbcTemplate的queryForList方法有多种传参形式,我们常用的就是这种传class类,参数返回数据,结果报expected 1, actual 2,意思是预期只返回一列,但却返回了2列。这是不合理的,因为返回参数都是List,怎么能预期1呢?使用用query(sql, BeanPropertyRowMapper.newInstance(T.class));只构建一个mapper列,不等于1就抛错,真是岂有此理。不能拿来查对象,那么怎么办呢?这个时候点进源码看,
2023-07-04 21:30:11
2211
2
原创 关于ssh框架Could not obtain transaction-synchronized Session for current thread
ssh框架下,在多线程的环境里执行dao操作报的这个问题,字面意思就是没有在当前线程里获取到事务的session。我在网上看了一些解决方案,比方说加事务注解啊或者是把getCurrentSession换成openSession,这些都没有解决我的方案。在解决问题之后,我反向推理了下原因。我认为还是事务的问题,因为我所在的那个方法似乎没有受到事务配置的包的范围的控制,所以才报了这个错。今年找工作越来越难了,我本人说实话不太看好未来的前景,抽时间充实自己了,博客更的自然也就不如以前那么勤了,请各位见谅。
2023-03-31 21:52:56
243
1
原创 uniapp的组件封装与组件间的参数传递
uniapp是一款一端开发多端打包的便捷应用开发框架,他不仅提供了类似于小程序的开发组件,更是基于vue的语法进行开发,方便入手。有极其完善的文档与社区,也有不少第三方ui框架的支持。子组件使用props,用这个属性定义参数名称
2022-11-13 10:40:35
2242
原创 ElasticSearch深度分页并可以小幅度跳页的实现
如果你不能的客户不允许这样,那我这边建议你放弃es拥抱MySQL,两难自解!第二个判断是判断是不是初次加载,如果是就清掉之前缓存的游标集合,因为你要考虑数据增量的情况,如果你没有数据增量的情况甚至都不用按标记分,直接建立个游标缓存,什么时候有增量数据(比如那种一天一增),就什么时候删缓存。首先是关于这个缓存的维护,比如session已经不再有效,怎么移除,其实我的项目里是还有个map的,他就是来实时更新这个session的最后查询时间的,可以通过定时任务,一旦超过一个时间点,就从。下面我们针对es提供的。
2022-11-02 21:26:18
2415
11
原创 关于非Spring环境下策略模式自动匹配策略的方式
最近做报文解析,不同交换机不同格式,大概有一百台交换机,我想解析用策略模式来写解析模板的方法的,但是写的时候发现,要先根据报文来决定用哪个实现类,这很麻烦。所以我就想用反射获取接口的所有实现类,先用实现类里面的校验方法,走都一边,哪个返回true了,就终止把他来出来,让他执行里面的解析。
2022-10-31 22:35:54
272
1
原创 uniapp请求不传递cookie的解决方式
最近在使用uniapp开发安卓应用,我本人并没有这方面的经验,在第一次前台发送请求获取后台存在session里的数据居然为null,而我用apifox调用的时候是正常,经高人指点才知道h5里请求是自动传递cookie信息而安卓是不传递的。
2022-10-27 21:55:19
3103
原创 关于jps命令查看不到systemctl 启动的Java进程 进程号的问题
说实话我是真的没有把systemctl这个命令和进程号关联起来想过,因为我的环境是银河麒麟,我一直以为是银河麒麟的问题呢!
2022-10-18 23:00:03
664
原创 关于Sharding-JDBC数据源配置有下划线报错的问题
这里是继上文中,关于数据源配置了下划线之后读取不到的问题的探究。再上篇文章中我在文章里强调了这个问题,网上说的模棱两可。官方文档也未作出详细说明,所以自己花了点时间,进行调试略有心得,在这里分享!
2022-09-24 21:23:57
1044
原创 Sharding-JDBC读写分离配置
注意的是数据源的自定义名称:ds0master 这个是有效的,写成 ds0_master 启动会报错,注意这个天坑~ 这里笔者专门花了一个小时左右时间,去层层进断点调试,下面会说!这个结果是正常的,因为这一章我至少配置了 sharding 的读写分离,单库分表,但是在数据库层面却没有设置主从同步,所以这个是正常的。创建两个数据库:master_order 和 slave_order。由于这里我只有 2 台数据库,就搞个一主一从,规划如下;创建表:m_order_0 和 m_order_1。
2022-09-24 20:55:38
872
1
原创 Sharding-JDBC主子表(绑定表)关联
主子表关联在我们的开发业务中是及其常见的,本文我们就来看下如何在分库分表的情况下,使用来完成主子关联。官方文档指分片规则一致的主表和子表。例如:t_order 表和 t_order_item 表,均按照 order_id 分片,则此两张表互为绑定表关系。绑定表之间的多表关联查询不会出现笛卡尔积关联,关联查询效率将大大提升。其中 t_order 在 FROM 的最左侧,ShardingSphere 将会以它作为整个绑定表的主表。
2022-09-23 21:42:56
3025
原创 Sharding-JDBC简单使用
sharding-jdbc 定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。JAVA APIYamlSpringBootSpring 命名空间(xml 配置文件)
2022-09-21 21:38:33
2403
3
原创 Spring Plugin 的使用
配置@EnablePluginRegistries注解,可以配置多个Class类型每一个Class类型都创建一个类型为PluginRegistry(具体实现类为OrderAwarePluginRegistry)的Bean,将此Class类型的所有Bean都添加到此PluginRegistry对象中后续可以通过每一个PluginRegistry对象获取到其内部的所有Plugin对象。
2022-09-18 11:22:27
2144
原创 Mybatis自定义类型映射处理器
mybatis作为一款相当优秀的一款orm框架,不仅本身就提供了很多类型映射,还支持自定义类型映射(javaType与jdbcType之间的关系),通过TypeHandler我们可以自己在数据库类型与实体类型之间任意转换。比如说,我现在需要讲前端传来的手机号进行脱敏入库处理,而用户查的时候,看到的得是正常的!这就涉及加密解密处理了,当然我们可以在service里处理,这里我们演示下如何通过自定义类型映射,进行处理。
2022-09-17 23:42:22
889
原创 JVM内存优化过程中的常用命令
jmap -heap pid通过NMT分析java进程的内存分配通过jcmd命令分析java进程的内存首先通过jps找到对应的Java程序的pid,然后使用如下命令:jmap -dump:format=b,file=heap.hprof pid导出dump文件可以使用arthas导出查看线程堆栈信息jmap -histo查看存活在堆中的对象这里推荐将导出的hprof文件导入到mat中,可以看到更加详细的内存分析...
2022-07-08 20:46:00
735
1
原创 JVM项目优化之旅
说到jvm优化实在令我惭愧,因为我对他的了解仅限于我在面试题里背的那些。但公司有个项目在现场机器上运行,内存吃到了8G,这点让客户很不满意,因为他们的机器也会跑其他项目,32G的机器光我们的项目就占了四分之一,让他们不能接受。于是要求我们对项目进行优化,要求内存常规态不能超过1.5G。其实客户的想法是允许项目在进行一些操作的时候内存上升,但是希望在功能使用完,对软件没有操作时,使用内存能够下降!该项目是基于Oracle jdk 8开发,springboot版本为2.0.3,运行在银河麒麟上项目在麒麟上刚启
2022-07-07 22:49:54
319
原创 图片压缩thumbnailator
我们日常上传图片时,如果需要做图片预览直接使用前端组件预览没有问题。但是如果上传的图片较大,组件加载稍微比较耗时怎么办呢?我们的思路是在上传大图片时,同时生成一个压缩后的预览图片,压缩图片尽可能保证不失真。编写工具类接口测试测试原图压缩后...
2022-07-07 22:05:42
348
1
原创 使用kaptcha生成验证码
前言说到生成验证码,我们第一个想到的就是kaptcha包,因为这个包已经存在很久了,比较稳定,用的人也多网上的示例代码多,而且很多项目脚手架做验证时也都是用这个框架的。代码添加依赖 <!-- 验证码 --> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</arti
2022-05-17 22:23:21
2579
原创 maven打jar包时报update interval of XXX has elapsed or updates are force
前言今天给项目打包时报resolution will not be reattempted until the update interval of XXX has elapsed or updates are force,重新clean也没用,我想可能和我引用外部jar包有关系环境jdk8,maven3.3.9解决方法命令行方式mvn clean install -U修改settings.xml添加<repositories> <repository&g
2022-04-22 18:56:33
922
原创 springboot定义过滤器放行swagger遇到的问题
最近在项目里加了个过滤器,拦截请求的token,但是我想放行swagger的页面,我在过滤器里配置了放行规则但是swagger出现Unable to infer base url。百度了一下有以下几种可能:需要在SpringBoot的启动Application前面加上 @EnableSwagger2注解;可能是由于使用了Spring Security 影响;在排查该问题时,假设你的swagger-ui访问路径是http://localhost:8080/swagger-ui.html,可以先直接访
2022-04-22 18:50:21
2597
2
原创 通过flyway实现项目启动自动建库建表
目录前言代码实现添加依赖sql文件命名方式也有讲究代码配置启动建库前言我之前研究过一个开源论坛项目,pybbs,他代码下载下来直接启动会自动建库建表,所以我拿过来研究一下(不难),这样以后方便开发萌新部署项目。代码实现添加依赖 <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactI
2022-03-10 22:55:54
2305
原创 Hutool树形插件使用构建多层级数据
目录前言使用范例环境数据库代码结语前言在我们实际开发中,像菜单/评论等这样的业务,它通常都是有层级的(层级结构肯定完全一致)。对于处理这样的数据我们通常的思维是通过mybatis构建层级结构,然后使用sql进行关联,第二就是通过单表递归查询。 而对于强大的辅助开发工具包hutool来说,他已经为我们开发者考虑到了这些需求,并且提供了TreeUtil工具类。使用范例环境jdk8,idea2020.1,MySQL8.0(5.x亦可),hutool5.7.22(我公司那个hutool好像是5.3.x,这
2022-03-10 22:40:08
1667
原创 项目是聚合工程 required a single bean, but 2 were found: 问题
项目结构之所以贴出来,是因为就是这个搞的鬼!!!控制台打印:Description:Field commentService in com.zhbcm.squad.controller.SqCommentController required a single bean, but 2 were found: - sqCommentServiceImpl: defined in file [E:\JavaSpace\squad_page\squad_server\squad_service\ta
2022-03-09 19:50:06
576
2
原创 RabbitMQ延迟队列实现
目录前言代码依赖application.yml配置消费者写测试类前言在电商项目中,当我们下单之后,一般需要 20 分钟之内或者 30 分钟之内付款,否则订单就会进入异常处理逻辑中,被取消,那么进入到异常处理逻辑中,就可以当成是一个延迟队列。很多场景下我们都需要延迟队列,本文我们就用RabbitMQ自带的延时和死信机制来实现延时队列。代码依赖 <dependency> <groupId>org.springframework.boot&l
2022-02-23 19:54:43
1443
原创 Java后台给PDF加水印并且合并多个PDF文件
目录前言准备环境代码添加依赖工具类测试测试加水印与背景测试pdf合并前言本文基于itext7实现pdf加水印和合并的操作。实际上在我们实际项目应用中,对于pdf的操作也是比较常见的,我上一个项目中就有将结果转成pdf导出的需求。本文是基于茶佬的笔记《JAVA 后端给 PDF 添加水印》写成。准备环境jdk8,idea2020.1.1,maven3代码添加依赖<dependency> <groupId>cn.hutool</groupId> &
2022-02-13 22:10:07
1345
原创 springboot+mybatis实现多数据源
目录前言准备环境建表语句代码项目结构依赖配置dao测试前言在一个项目体量不断增大的情况下,数据量随之增大,那么为了分散数据库的压力,可能会通过分库分表来进行减缓操作。这就与我们单一的数据源就不一样了,而是要配置多数据源了,本文就通过简单的示例,来示范多数据源实现的过程准备环境jdk8,idea2020.1.1,mysql8.0,maven3,springboot2.5.0建表语句这两张表要建在不同的数据库下CREATE TABLE `job_test` ( `id` int(11) NOT
2022-02-09 20:56:29
4144
2
原创 SpringBoot使用过滤器过滤参数中的空格
前言最近项目中需要对前台提交的参数进行去空格,这种事本来应该前台做,但是我想如果前台做的话,所有input框都得进行trim代价太大,我就想着后台可不可以对提交的参数进行去空格,查了一下,可以使用过滤器进行实现。代码过滤器import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.htt
2021-12-25 22:14:54
1513
1
原创 Java实现本地的分片上传和断点续传
目录前言代码环境说明后台依赖实体分片工具类控制层前端封装页面后续前言关于分片上传和断点续传这个需求,但凡涉及到文件服务的应用,无不需要考虑这个问题,我本人之前也发过两篇博客,一篇讲述分片的一些原理,一篇描述了分片的实现。我现在的一个项目里面就需要对文件进行分片上传,在之前我写了文章,这里我不赘述。但我们的项目使用的文件系统时FASTDFS,似乎总是出现问题(虽然不一定就是它的问题,但是项目里的其他人似乎觉得就是它的问题),可能有想拿掉他的趋势,自己写文件服务。所以我自己抽取项目里的上传功能,单独抽成了一
2021-12-25 21:34:31
3328
18
原创 Kafka的安装与使用
安装Kafka首先去下载:Kafka下载地址备选地址:https://www.lanzouw.com/i4b8mxgrafg密码:204o准备好jdk环境,zk若无Kafka自带无须担忧。说明从蓝奏云上下载的朋友请注意,由于上传的时候蓝奏云不支持tgz后缀的格式,所以我把它改成了tar包,但不影响,下载下来之后以tar包方式解压即可。解压并配置tar -xzf kafka_2.13-3.0.0.tgzcd kafka_2.13-3.0.0# 修改配置文件vim config/serv
2021-12-10 22:12:58
2526
原创 多线程分段下载
package com.zhbcm.down;import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;/** * @author 朝花不迟暮 * @version 1.0 * @date 2021/7/29 22:19 */public class MultiT
2021-07-31 13:49:02
371
原创 SpringSecurity放行接口之后,接口里拿不到用户信息
目录前言分析原因解决方法参考前言项目使用的是security安全框架,今天打开项目发现有个接口报npe很奇怪。于是看了下是SecurityContextHolder获取用户信息时候获取不到用户信息了。这个情况以前没有出现过,所以问了下我们项目组长,他说有没有可能是放行接口的原因。为此我专门研究了一下~分析原因我们的放行方式是:@Overridepublic void configure(WebSecurity web) throws Exception { web.ignoring().
2021-07-30 19:37:21
1513
原创 SpringCloud & Alibaba
注册中心Nacos远程调用RestTemplate负载均衡Ribbon远程调用Feign熔断限流Sentinel网关服务GateWay链路追踪SkyWalking分布式事务Seate消息队列Stream
2021-07-24 23:01:06
105
原创 spring.jackson.date-format配置不生效的问题
前言今天接完单点登录之后, 前端一直在报错. 我一直以为是接单登的问题, 排查之后才发现是因为日期格式又变回绝对秒了, spring.jackson.date-format失效了. 查了一下发现是我添加拦截器并继承 WebMvcConfigurationSupport 后会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置!从而导致所有的Date返回都变成时间戳。解决方法import com.fasterxml.jackson.databind
2021-07-03 19:40:32
2214
原创 SpringBoot+Vue+Cas单点登录与登出
前言什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分.我们常见的实现框架有OAuth2和cas. 我下面的例子是基于其他博客的作者发给我的一个可运行示例进行一些说明, 实际上也就一个关键点, 一直困扰我们.环境cas服务5.2springboot2.0.3vue2.0Tomcat8.5.39这里需要注意, 我在内网运行cas服务端的时候,发现Tomcat8.0
2021-07-02 22:52:35
6138
3
原创 springboot设置指定文件上传路径(外部路径)
目录前言示例测试前言这两天重新看erupt框架, 发现他设置的本地文件上传路径不在项目的指定静态文件夹下, 于是看了下他的源码, 原来它是通过重写静态资源目录设置的! 这样做可以将上传的文件与项目脱离, 不会对jar包文件产生冗余负载示例WebMvcConfigimport org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.Re
2021-06-26 21:16:45
4509
6
空空如也
websocket每隔1分钟报超时错误
2022-01-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人