- 博客(206)
- 资源 (4)
- 收藏
- 关注
原创 Spring Boot + MinIO解决微信小程序wx.compressImage接口压缩图片质量只能压缩JPG格式的问题,PNG等IOS真机的图片格式无法压缩问题
Spring Boot + MinIO解决微信小程序wx.compressImage接口压缩图片质量只能压缩JPG格式的问题,PNG等IOS真机的图片格式无法压缩前端实现比较复杂,可以通过绘制画布Canvas操作,我这里直接在后端实现,后端采用Spring Boot,上传图片使用MinIO,这里直接在MinIO上传图片的时候进行压缩。小程序插件:支持,需要小程序基础库版本不低于 2.12.0。基础库 2.4.0 开始支持,低版本需做兼容处理。以 Promise 风格 调用:支持。压缩图片接口,可选压缩质量。
2025-03-30 16:21:00
142
原创 【悲观锁和乐观锁有什么区别】以及在Spring Boot、MybatisPlus、PostgreSql中使用
通过 FOR UPDATE 锁定查询的行,适用于高并发的情况下,确保同一时刻只有一个事务修改数据。你可以通过 MyBatis 的@Select 注解配合 FOR UPDATE 来实现。通过版本号机制,确保数据在更新时没有被其他事务修改。MyBatis-Plus 支持通过 @Version 注解来实现乐观锁。
2025-03-26 15:18:22
855
原创 在Java实际项目中什么情况才会使用到消息队列?
消息队列(Message Queue, MQ)是一种异步通信机制,用于在分布式系统中不同组件之间传递消息。使用消息队列的主要目的是解耦系统、提高系统的可伸缩性、可用性和可靠性。消息队列广泛应用于高并发、高可用、分布式、微服务架构等场景。通过这些应用,消息队列在现代分布式系统中起到了至关重要的作用。
2025-03-06 16:52:36
776
原创 为什么小程序页面中赋值要通过this.setData,而不是直接=?为什么全局变量可以用=而不是setData?
可以直接使用 = 来修改,因为它们只是存储数据,不直接影响视图。需要使用 this.setData() 来更新,因为视图和 data 之间存在绑定,直接修改 data 不会自动更新视图。如果你希望在改变全局变量后让页面显示最新的全局变量数据,你就需要在改变全局变量后,通过 this.setData() 来更新页面的视图。
2025-02-17 10:21:38
206
原创 在pgsql中通过使用JOIN或EXISTS来解决主表与副表只在副表中使用条件查询,返回主表数据
比如,在pgsql中,我有两张表,一张是sanitation_maintenance_contract,另一张是sanitation_maintenance_contract_cycle,我需要在sanitation_maintenance_contract中写sql语句,但是在where中有个条件是根据sanitation_maintenance_contract_cycle中的start_date和end_date做条件。
2024-12-09 09:03:42
570
原创 解决微信小程序中地图map组件bindmarkertap冒泡到bindtap两个事件同时触发
由于bindmarkertap会比bindtap先执行,我们在执行bindmarkertap的时候由于有定时器100毫秒,在这100毫秒中,bindtap也被执行了,在这期间内将bindTapTimer设置成了false,当100毫秒到达后,判断bindTapTimer不等于true,将不会执行。那么在bindtap方法中,我们需要先把bindTapTimer设置成false,执行完逻辑代码后,等待200毫秒再将bindTapTimer设置成true即可。他们提供的解决方案是节流。
2024-11-13 15:16:45
524
原创 使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面
今天上线的时候发现系统不同显示好像不一样,苹果手机打开的时候是正常的,但是一旦用安卓手机打开就会出现label不置顶的情况。尝试了很多种办法,也在官方查看了,发现并没有给label设置zIndex的属性,只看到了一个叫什么碰撞类型的属性,但是这个东西设置了如果两个目标有接触就会被隐藏掉,并不是我们想要的结果。想了一下,如果我们不使用label生成边框呢,直接在服务器那边把图片绘制成有边框的不就好了,这样子只用marker就行了,就能得到iOS的效果了。
2024-11-13 10:27:30
744
原创 使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中
使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中
2024-10-25 16:50:51
954
原创 Unity中常用组件介绍
Unity的组件系统非常灵活,允许开发者根据需要创建和组合各种组件以实现不同的功能。:用于角色的导航和路径寻址。:控制对象的位置、旋转和缩放。:用于播放简单的动画。:定义对象的表面外观,包括颜色、纹理和其他视觉效果。:用于UI元素的布局和管理,通常与UI组件结合使用。:用户自定义的脚本组件,用于添加自定义行为和逻辑。:显示文本内容,可以用于显示分数、提示等信息。:创建可调节的滑块,常用于设置音量或其他数值。:用于创建地形,支持高度图、纹理和植被等功能。:用于创建粒子效果,例如烟雾、火焰、雨等。
2024-10-18 15:27:02
433
原创 Java中字符串.split分割转List<String>判空问题
第二种判空后分割,如果cph字符串为空,判空后再分割cphList会=0。第一种分割直接分割,如果cph字符串为空,分割后cphList会>0。在xml中就不会进入这个判断了。
2024-10-15 09:47:18
392
原创 Spring Boot中使用RabbitMQ 生产消息和消费消息
RabbitMQ 中的交换机(Exchange)是消息路由的核心组件。它负责接收来自生产者发送的消息,并根据特定的路由规则将这些消息传递给一个或多个队列(Queue)。交换机的主要功能和类型。在扇出交换机中,可以将路由键设置为空字符串 “”,因为扇出交换机会将消息发送到所有绑定的队列,而不需要考虑路由键的具体值。convertAndSend(交换机,路由键也就是队列,你想传递的参数)交换机根据配置的路由规则和队列的绑定关系,将消息路由到相应的队列。消费者从队列中获取消息进行处理。生产者发送消息到交换机。
2024-10-10 15:00:02
932
原创 Spring Boot 微信小程序接入微信支付
1、导入相关依赖 pom.yml2、文件配置微信公众号的基础信息 application.yml3、设置配置文件 WxPayConfig.java4、微信支付预下单实体类 WeChatPay.java5、微信支付API地址 WeChatPayUrlConstants.java6、预下单成功之后返回结果 OrderReturnInfo.java7、查询订单返回的实体类 QueryReturnInfo.java8、签名实体类 SignInfo.java9、Http工具类 HttpRequest.
2024-09-19 11:10:42
2549
1
原创 前后端会员模块开发中,在处理会员过期的问题时,需要考虑如何有效地进行状态检查,以确保用户在使用应用时能够及时获知会员状态
在处理会员过期的问题时,需要考虑如何有效地进行状态检查,以确保用户在使用应用时能够及时获知会员状态。
2024-09-09 10:07:31
340
原创 PostgreSQL百万级别数据的表查询慢,避免全表扫描操作符、条件等语句
并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。
2024-09-02 15:14:22
1233
原创 Spring Boot中使用RedisTemplate一定要记得序列化,自定义RedisTemplate,不然会出现乱码,导致key无法匹配
使用redis的时候发现定时任务一直不执行,数据库的值一直没更新,奇了怪了,打开redis-cli查询才发现好多乱码。。所以一直匹配不到key,导致无法更新。。。查询key *这是set key value过程。
2024-08-16 17:24:18
311
1
原创 微信小程序中组件被引用到页面中,修改组件中的样式,修改组件中vantUI组件的样式
在组件的js文件中将wxml中需要修改的标签class暴露出来,然后在引用组件时对暴露出来的class进行class覆盖;在组件wxml中找到要修改的标签
2024-08-15 17:15:43
1187
原创 微信小程序css中配置了文字超出一行或两行则显示省略号对纯数字或纯字母或小数点无效的解决办法
微信小程序css中配置了文字超出一行或两行则显示省略号对纯数字或纯字母或小数点无效的解决办法
2024-08-03 10:09:39
809
原创 解决微信小程序IOS系统在input失去焦点后马上滑动页面会导致整个页面布局改变
解决微信小程序IOS系统在input失去焦点后马上滑动页面会导致整个页面布局改变
2024-07-31 15:52:02
495
原创 阿里云服务器Linux Ubuntu系统安装Nginx、Redis、RabbitMQ、Minio、Postgresql、Postgis并配置公网访问RabbitMQ、Postgresql和Minio
阿里云服务器Linux Ubuntu系统安装Nginx、Redis、RabbitMQ、Minio、Postgresql、Postgis并配置公网访问RabbitMQ、Postgresql和Minio
2024-07-30 20:58:31
1105
原创 Ubuntu服务器重启后,Postgresql启动成功后无法进入,提示Unix domain socket “/var/run/postgresql/.s.PGSQL.5432“?的解决方案
Ubuntu服务器重启后,Postgresql启动成功后无法进入,提示Unix domain socket "/后面尝试了一下,我直接把/var/run/下的postgresql文件夹直接删除掉,再去重新启动postgresql发现居然成功的进去了。事情是这样的,服务器突然宕机了,然后强制重启后,发现psql一直提示这个报错,在网上看了好多资料都尝试过都解决不了。如果执行psql出现这个role “root” does not exist则用以下命令执行。在执行重启操作前,记得给权限。然后依次执行一下重启。
2024-07-30 15:15:32
553
原创 微信小程序中实现在tabbar组件监听app.js中globalData的属性值变化,并在tabbar组件中更新
【代码】微信小程序中实现在tabbar组件监听app.js中globalData的属性值变化,并在tabbar组件中更新。
2024-07-28 15:44:31
409
原创 Spring Boot + 微信小程序实现WebSocket通信功能示例
Spring Boot + 微信小程序实现WebSocket通信功能示例。这个做法可以在小程序加载的时候去连接服务端WebSocket,注意,我这里判断userInfo登录信息,如果没有登录,那我们就不要连接,这时候我们再去login.js登录方法里面登录成功后再去配置连接。(这里url后面的id传参是当前用户的id,用于用户之前相互通讯)注意,当我们退出登录的时候,需要在里面调用以下方法,去把WebSocket断开。点击按钮调用send方法后,观察后端就会看到打印信息。
2024-07-23 10:11:56
669
原创 微信小程序中Map组件Marker中把Label文字信息通过按钮显示或隐藏
微信小程序中Map组件Marker中把Label文字信息通过按钮显示或隐藏
2024-07-22 10:35:42
709
原创 Windows中安装部署MinIo文件系统,在Spring Boot中引入MinIo依赖实现上传文件到MinIo文件系统中
Windows中安装部署MinIo文件系统,在Spring Boot中引入MinIo依赖实现上传文件到MinIo文件系统中
2024-07-11 15:55:01
563
原创 微信小程序中wx.navigateBack()页面栈返回上一页时执行上一页的方法或修改上一页的data属性值
微信小程序中wx.navigateBack()页面栈返回上一页时执行上一页的方法或修改上一页的data属性值。记得加上setTimeout延时,不然Toast会在当前页面执行,而不是返回的那个页面中执行。由markSend页面返回到home页面。
2024-07-10 10:31:52
892
原创 Spring Boot 中 PGSQL 判断打卡点是否经过轨迹优化代码,循环查询物理表修改生成临时表,向临时表插入数据后再做ST_DWithin判断,引入线程池提升判断效率
记录一下一个业务问题,流程是这样的,我现在有一个定时任务,5分钟执行一次,更新车辆打卡的情况。现在有20俩车,每辆车都分配了路线,每条路线都有打卡点,每个打卡点分配了不同的时间段,也就是说,一条路线可能有几百个打卡点,这几百个打卡点中每一个都分配了时间段,有可能是1个时间段,比如8:00 - 10:00这个时间段,要去打卡。也有可能有的打卡点分配了几个时间段,比如上午两个时间段,下午两个时间段。这个时候要去判断今天的打卡情况,只能先获取路线的打卡点,然后再获取单个打卡点下面的时间段,再进行判断操作。但是问题
2024-07-02 20:37:01
708
原创 解决数据库PGSQL,在Mybatis中创建临时表报错TODO IDENTIFIER,连接池用的Druid。更换最新版本Druid仍然报错解决
然后我找到了Druid的配置,把全部配置都注释掉,居然可以成功的执行了。然后我一个一个配置排查发现,有个filters的配置,引起的报错,只要把这个注释了,就能成功执行,不管切换什么版本的Druid。我在navicat中尝试了一下执行相同的sql创建临时表语句,确实是能执行的。然后我又进行了一次测试,在xml中的sql创建临时表语句把TEMPORARY删除,直接创建一张物理表,确实成功的执行了。在网上搜索了一下,说把Druid版本升级到最新,我试着升级到了最新,确实不报这个错误了,又报了一个新的错误。
2024-07-02 19:19:00
680
原创 【JVM排查问题】JProfiler性能分析工具连接远程服务器Docker容器中的Java服务
【JVM排查问题】JProfiler性能分析工具连接远程服务器Docker容器中的Java服务
2024-07-02 09:42:57
896
1
原创 【JVM排查问题】JProfiler中的传出引用(outgoing references)和传入引用(incoming referen)是什么意思?有什么区别?代码示例!内存泄漏问题排查
因此,当我们需要排查内存泄漏时,更倾向于使用传入引用来分析对象的引用链,找出导致对象无法释放的原因。通过这种方式,可以有效地定位和解决内存泄漏问题,提高应用程序的健壮性和性能。
2024-06-29 15:17:57
1489
原创 Java中处理double、float、Double、Float、BigDecimal、String类型对象的小数工具类,保留小数位或取整,是否四舍五入
由于每次都要处理小数,很麻烦,所以封装一个工具类来去处理,这个工具类专门用来处理小数位的,就比如我是double、float、Double、Float、BigDecimal、String这些。工具类提供三个参数,一个是泛型的value用来传入任何类型的(double、float、Double、Float、BigDecimal、String)值,一个是保留多少位scale用来截取多少位,一个是是否需要四舍五入判断指标isHalf用来判断是否需要四舍五入,如我value是double类型1.336,scale是
2024-06-20 09:14:46
455
原创 微信小程序中滑动view视图的时候,里面的那个view也会跟着滑动,解决办法滚动穿透问题只需要在该页面js的onShow中加上wx.setPageStyle即可
设置了z-index: 100;滑动view的时候,里面的那个view也会跟着滑动,view被穿透了,不知道是不是我布局的问题。。
2024-06-13 20:44:19
291
原创 UniApp或微信小程序中scroll-view组件使用show-scrollbar在真机Android或IOS中隐藏不了滚动条的解决办法
show-scrollbar 属性 不论是使用 变量 还是直接使用 布尔值或者直接使用 css 都是在 ios、Android 上是都没有效果。。真机中还是出现滚动条。
2024-06-13 19:58:35
1131
1
原创 PostgreSql中使用to_char函数、date()函数可能会导致索引无法充分利用,导致查询速度无法提升
这时候去搜了一下才知道pgsql的to_char函数可能会导致索引无法充分利用,也就是说必须把to_char改成TIMESTAMP去定义日期。在我的SQL语句中,to_char(c1.binder_gen_time, ‘YYYY-MM-DD’) 会将 binder_gen_time 转换为字符串,这会导致无法使用日期列上的索引。使用 to_char 函数可能会导致索引无法充分利用的情况,因为函数会改变列的数据类型,这样就无法使用索引来加速查询。查询时间花费了4s左右。
2024-06-13 15:20:51
1178
原创 idea如何使用git reset进行回退以及如何使用git stash将暂存区文件储藏,打包后重新恢复暂存区文件
idea如何使用git reset进行回退以及如何使用git stash将暂存区文件储藏,打包后重新恢复暂存区文件。最近遇到一个棘手的问题,本来按照计划表开发,但是项目经理突然让你改一个小bug,改完需要马上部署到线上,但是你手上的活做到一半还没做完,提交上去那肯定是不可行的。这时就可以使用git stash命令先把当前进度(工作区和暂存区)储藏起来,等打包完成后再把储藏的文件恢复回来,这样既不影响我们的手上没修改完的活,也不影响小bug修复上线。
2024-06-07 16:08:06
1012
原创 PostgreSql常用的时间类型以及对应Java中的类型以及在Mybatis XML中转换
TIMESTAMP:用于存储日期和时间信息,精确到毫秒,例如:‘2024-06-06 10:30:00.123’。start_time为TIMESTAMP类型,数据样例为2024-06-06 11:30:00.359。start_time为TIMESTAMP类型,数据样例为2024-06-06 11:30:00.359。start_time为TIMESTAMP类型,数据样例为2024-06-06 11:30:00.359。toDay为LocalDate类型,如2024-06-06。类型对应Java中的。
2024-06-06 13:52:31
1371
Hadoop生态圈包(hadoop、hbase、kafka、spark、sqoop、zookeeper)
2022-05-13
请问一下C++中我定义了常量为啥还是报未声明的标识符呢?
2022-12-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人