- 博客(28)
- 收藏
- 关注
原创 spring事务操作后进行异步操作
本文讨论了在Spring开发中,如何解决事务操作后进行异步操作时可能出现的数据同步问题。当事务操作未完成时,异步操作可能无法获取到最新的数据库记录。文章提出了两种解决方案: 1. **方案一**:将异步操作放在事务操作方法之外调用,例如在控制器中分别调用事务方法和异步方法。但这种方法逻辑上不够清晰,可能给后续维护带来困难。 2. **方案二**:使用Spring的`TransactionSynchronizationManager`,通过注册事务同步回调,在事务提交成功后执行异步操作。此方案通过在`af
2025-02-28 14:55:05
150
原创 SpringBoot引入本地Jar包
本文介绍了在SpringBoot项目中引入本地Jar包的两种方法。方法一是直接在项目中引用:创建*src/main/resources/lib*目录并放入Jar包,然后在*pom.xml*中添加依赖配置,使用`<scope>system</scope>`并指定`<systemPath>`路径,同时配置Spring Boot Maven插件以包含系统范围的依赖。方法二是将Jar包安装到本地Maven仓库:使用Maven命令`mvn install:install-file`将Jar包安装到本地仓库,然后在*p
2025-02-06 14:39:03
497
原创 测试Linux系统磁盘读写性能(linux磁盘读写测试)
本文介绍了在Linux系统下测试磁盘读写性能的三种方法。一是使用dd命令,如“dd if=/dev/zero of=/dev/hda1 bs=1k count=10000”等,通过设置不同参数来测试。二是利用Iozone软件,它能测试特定文件大小、数量及类型的I/O性能,安装使用可参考文档。三是基于文件系统的测试,以EXT4文件系统为例,通过“mkfs.ext4 /dev/hda1 & mount /dev/hda1 /mnt/test”和“iozone -Rab ./result.xls -i 0 -i
2025-01-17 18:48:07
352
原创 在 MyBatis-Plus 中使用 IN 语法
在 MyBatis-Plus 中使用 `IN` 语法可以通过多种方式实现。首先,可以使用 `QueryWrapper` 或 `LambdaQueryWrapper` 的 `in` 方法动态构建查询条件,适合在 Java 代码中直接操作。其次,可以在 XML 映射文件中编写 SQL 语句,使用 `` 标签处理 `IN` 查询,适合复杂 SQL 场景。此外,注解方式也可用于编写 `IN` 查询,但需手动处理列表转换。需要注意的是,当传入的列表为空时,可能导致 SQL 语法错误,因此应提前检查列表是否为空。根据需
2024-12-31 11:26:30
2129
原创 Java List 分片工具类
本文介绍了如何使用Java将一个大List分片为多个小List,每个小List的大小为50。通过`subList`方法实现分片,具体步骤包括:确定原List大小、使用循环分组、获取子列表并复制到新ArrayList、处理边界情况等。代码示例展示了如何实现分组功能,并解释了关键点,如检查分组大小、处理边界情况等。注意事项包括`subList`返回的是动态视图、处理原List大小不能被整除的情况,以及多线程环境下的使用建议。该方法适用于需要将大List分组的场景。
2024-12-30 11:01:00
325
原创 nginx 配置rtsp服务
本文详细介绍了在Ubuntu系统上配置Nginx以提供RTSP服务的步骤。首先,安装编译工具和依赖包;其次,下载并编译Nginx及其rtsp模块;然后,在Nginx配置文件中添加RTSP服务器配置,并设置基本认证;接着,配置防火墙开放端口;最后,测试配置并使用VLC播放器测试RTSP服务。文章还提供了结合RTMP的高级配置示例,以供进一步扩展服务功能。
2024-12-27 09:29:18
710
原创 在Nginx上配置并开启WebDAV服务的完整指南
要在Nginx上开启WebDAV服务,需要进行以下步骤:1. 确认Nginx已安装WebDAV模块,可通过`nginx -V`命令检查。2. 编辑Nginx配置文件,添加WebDAV相关配置,包括指定存储目录、启用WebDAV方法、设置访问权限等。3. 创建WebDAV存储目录,并设置权限。4. 如需认证,生成密码文件并配置基本认证。5. 测试Nginx配置并重启服务。6. 使用`cadaver`工具测试WebDAV服务。7. 确保防火墙允许HTTP或HTTPS流量。8. 完成以上步骤后,即可通过WebDA
2024-12-26 17:27:37
1501
原创 Java中使用redis作为消息队列
本文介绍了在Java中使用Redis作为消息队列的两种主要方法:使用Redis的`List`数据结构和`Pub/Sub`模式。通过`List`,生产者可以使用`lpush`将消息推入队列头部,消费者可以使用`rpop`或`blpop`从队列尾部弹出消息,后者支持阻塞式消费。`Pub/Sub`模式适用于一对多的消息分发,发布者通过`publish`发送消息,订阅者通过`subscribe`接收消息。此外,文章还提到了使用Redisson库来简化操作,Redisson提供了更高层次的抽象,如消息队列和分布式锁。
2024-12-26 16:50:08
1018
原创 端口占用处理
本文详细介绍了在Windows和Linux系统中处理端口占用的方法。在Windows中,首先使用`netstat -aon|findstr "端口号"`查找占用端口的PID,然后通过`tasklist|findstr "PID"`确认进程,最后使用`taskkill -F -pid PID`或任务管理器结束进程。在Linux中,使用`sudo lsof -i :端口号`查找占用端口的进程,通过`sudo kill -9 PID`结束进程,并使用`sudo lsof -i :端口号`确认端口是否释放。文章还提
2024-12-26 16:33:42
299
原创 思源笔记 Docker-Compose 一键部署及解锁付费功能教程
这篇文章介绍了如何使用Docker Compose一键部署思源笔记的两个版本:官方开源版本和解锁付费功能的版本。官方版本使用`b3log/siyuan`镜像,配置了工作区路径和访问授权码,并设置了时区和端口映射。解锁版本使用`apkdv/siyuan-unlock`镜像,解锁了云备份等付费功能,并通过Docker网络实现容器间通讯。两个版本都配置了持久化存储和自动重启策略。
2024-12-23 17:02:18
1010
原创 实现点击复制文本功能的Vue组件
本文介绍了如何创建一个名为 `CopyButton.vue` 的 Vue 组件,用于实现点击复制功能。该组件接收一个 `text` prop,表示要复制的内容,并在点击按钮时执行复制操作。主要步骤包括:1. **创建 `CopyButton.vue` 组件**:定义按钮并实现复制逻辑,支持现代浏览器和旧版浏览器的兼容性。2. **在父组件中引入并注册 `CopyButton` 组件**:在表格列的模板中使用 `CopyButton`,传入要复制的文本。3. **确保组件和依赖项正确导入**:在父组件中导入
2024-12-23 16:31:12
661
转载 Centos 安装Java多种方式
安装jdk(介绍三种方法)查看java版本:java -version方法一:利用yum源来安装jdk(此方法不需要配置环境变量)查看yum库中的java安装包 :yum -y list java*安装需要的jdk版本的所有java程序:yum -y install java-1.8.0-openjdk* (安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64)方法二:用rpm安装jdk (默认安
2022-05-18 19:41:49
15657
1
原创 sonarLint配置修改
前提:安装sonarLint1.打开idea setting -> Tools -> SonarLint2.点击加号“+”,输入sonar服务连接名,选择SonarQube并填入服务器地址2.点击 next ,选择token或者账户密码登录2.1 token登录:点击creatToken,自动进入sonarQube,点击创建令牌,将令牌复制到输入框即可,点击next完成配置2.1 账户密码登录输入账户密码登录登录即可...
2022-05-13 14:47:57
1557
原创 CentOS7宝塔安装命令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
2022-02-17 17:10:30
907
转载 YYYY-MM-dd 使用有误
public class DateTest { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.set(2019, Calendar.AUGUST, 31); Date strDate = calendar.getTime(); DateFormat formatUpperCase = new S.
2021-12-30 09:46:33
233
转载 2021-12-7 mysql往数据库表中某一行某一字段追加内容
使用CONCAT()函数mysql向表中某字段后追加一段字符串(field为字段名):update table_name set field=CONCAT(field,'str',)mysql 向表中某字段前加字符串update table_name set field=CONCAT('str',field)转载于:https://www.cnblogs.com/wonker/p/10449409.html...
2021-12-07 16:04:54
997
转载 Java并发编程:volatile关键字解析(转载)
Java并发编程:volatile关键字解析原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.html作者:Matrix海子 出处:http://www.cnblogs.com/dolphin0520/
2021-11-02 11:45:34
134
转载 2021-10-28 docker stop 和 docker kill 的区别
docker stop 与 docker kill 均可以将容器停掉,但二者究竟有什么区别呢?首先,摘录一下官网对这两个功能的描述:docker stop: Stop a running container (send SIGTERM, and then SIGKILL after grace period) […] The main process inside the container will receive SIGTERM, and after a grace period, SIGKILL.
2021-10-28 13:58:22
2233
原创 2021-7-26 yarn : 无法加载文件 D:\Program Files\nodejs\node_global\yarn.ps1,因为在此系统上禁止运 行脚本。
2021-07-26 10:01:00
719
原创 2021-7.23 BigDecimal工具类
import java.math.BigDecimal;/** * 用于高精确处理常用的数学运算 */public class ArithmeticUtils { //默认除法运算精度 private static final int DEF_DIV_SCALE = 10; /** * 提供精确的加法运算 * * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */
2021-07-23 10:53:18
145
原创 2021-07-21 response.setContentType(“image/png“);失效问题
旧: byte[] buffer = new byte[2048]; int c = 0; while ((c = fis.read(buffer)) != -1){ toClient.write(buffer,0,c); } response.reset(); // 设置response的Header //response.addHeader("Content-Length", "" + file.l
2021-07-21 16:15:07
1534
原创 mysql 查询近7日 近6月数据
mysql 查询近7日 近6月数据日活 近7日 select a.time,ifnull(b.value,0) as valuefrom ( SELECT curdate() as time union all SELECT date_sub(curdate(), interval 1 day) as clickdate union all SELECT date_sub(curdate(), interval 2 day) as clickdate
2021-02-22 09:45:36
353
原创 2020-09-17 @Transactional 中手动回滚事务
注解@Transactional事务中有了try块,当捕获到异常后需要手动回滚事务手动回滚代码如下:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
2020-09-17 16:50:32
251
原创 2020-09-02 docker权限不足
docker imagesGot permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/json: dial unix /var/run/docker.sock: connect: permission denied原因:权限不足,使用docker需要
2020-09-02 13:40:19
532
原创 2020-09-01 mysql 根据日期分组查询
根据日期分组查询DATE_FORMAT(view_time,"%Y-%m") AS time from foots where is_delete = '1' and create_by = #{userId} GROUP BY DATE_FORMAT(view_time,"%Y-%m")使用group by 查询字段与分组字段一致 SELECT b.* FROM ( SELECT t.*, DATE_FORMAT( t.view
2020-09-01 14:32:24
199
原创 2020-8-31 收藏一个api 日历用
https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=2020%E5%B9%B408%E6%9C%88&resource_id=6018&format=json
2020-08-31 15:44:23
298
2
原创 2020-8-14 bug修复-mapper.xml
使用mybatis过程中 mapper.xml中的if判断需求:查询状态为2时,查询出状态为2,4,5的数据:当传入的参数为String类型的数字时,错误示范: <if test="state!=null and state!='' and state.toString()!='2'"> AND a.catastate = #{state} </if> <if test="state!=null and state!='' and '
2020-08-14 09:37:31
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人