From c02e67f85f8f8533b65594e9ae339ee1c0bbfc8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E6=96=87=E8=B1=AA?= <980287353@qq.com> Date: Mon, 6 Mar 2023 14:02:27 +0800 Subject: [PATCH] =?UTF-8?q?perf=EF=BC=9B=E5=AF=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=96=87=E4=BB=B6=E6=8E=92=E5=BA=8F=E5=90=8E=E6=89=A7?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DbMigrationInitializer.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java b/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java index 2356c82..fa2a93b 100644 --- a/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java +++ b/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java @@ -4,7 +4,6 @@ package com.tiesheng.database.service; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.func.VoidFunc1; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.db.Db; @@ -20,6 +19,8 @@ import javax.servlet.ServletContext; import javax.sql.DataSource; import java.io.InputStream; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.zip.Checksum; @@ -61,14 +62,16 @@ public class DbMigrationInitializer implements ServletContextInitializer { dbMigrationConfig.checkDbExists(coreDb); PathMatchingResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver(); + List resourceList = new ArrayList<>(); for (String location : dbMigrationConfig.getLocations()) { Resource[] resources = patternResolver.getResources(location); - if (ArrayUtil.isEmpty(resources)) { - return; - } - for (Resource resource : resources) { - migrationByResource(resource, coreDb); - } + resourceList.addAll(Arrays.asList(resources)); + } + + // 排序后执行sql + resourceList.sort((o1, o2) -> StrUtil.compare(o1.getFilename(), o2.getFilename(), true)); + for (Resource resource : resourceList) { + migrationByResource(resource, coreDb); } }