设备bug修改 新增设备解绑功能

This commit is contained in:
yuhaiming
2026-09-01 17:24:12 +08:00
parent 509e760f3d
commit 04c83305ad
36 changed files with 796 additions and 214 deletions

View File

@@ -47,6 +47,12 @@
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,27 @@
package org.dromara.common.mybatis.p6spy;
import com.baomidou.mybatisplus.extension.p6spy.StdoutLogger;
/**
* P6Spy SQL logger that suppresses SQL executed by scheduled tasks.
*/
public class ScheduledTaskAwareStdoutLogger extends StdoutLogger {
private static final String SCHEDULE_POOL_PREFIX = "schedule-pool-";
private static final String VIRTUAL_SCHEDULE_POOL_PREFIX = "virtual-schedule-pool-";
private static final String SPRING_SCHEDULING_PREFIX = "scheduling-";
static boolean isScheduledTaskThread(String threadName) {
return threadName != null
&& (threadName.startsWith(SCHEDULE_POOL_PREFIX)
|| threadName.startsWith(VIRTUAL_SCHEDULE_POOL_PREFIX)
|| threadName.startsWith(SPRING_SCHEDULING_PREFIX));
}
@Override
public void logText(String text) {
if (!isScheduledTaskThread(Thread.currentThread().getName())) {
super.logText(text);
}
}
}

View File

@@ -2,8 +2,8 @@
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定义日志打印
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
#日志输出到控制台
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
# 日志输出到控制台,定时任务线程不打印 SQL
appender=org.dromara.common.mybatis.p6spy.ScheduledTaskAwareStdoutLogger
# 使用日志系统记录 sql
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 取消JDBC URL前缀

View File

@@ -0,0 +1,24 @@
package org.dromara.common.mybatis.p6spy;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("dev")
public class ScheduledTaskAwareStdoutLoggerTest {
@Test
public void identifiesScheduledTaskThreads() {
assertThat(ScheduledTaskAwareStdoutLogger.isScheduledTaskThread("schedule-pool-1")).isTrue();
assertThat(ScheduledTaskAwareStdoutLogger.isScheduledTaskThread("virtual-schedule-pool-2")).isTrue();
assertThat(ScheduledTaskAwareStdoutLogger.isScheduledTaskThread("scheduling-3")).isTrue();
}
@Test
public void keepsSqlLoggingEnabledForOtherThreads() {
assertThat(ScheduledTaskAwareStdoutLogger.isScheduledTaskThread("XNIO-1 task-2")).isFalse();
assertThat(ScheduledTaskAwareStdoutLogger.isScheduledTaskThread("mqtt-consumer-1")).isFalse();
assertThat(ScheduledTaskAwareStdoutLogger.isScheduledTaskThread(null)).isFalse();
}
}