From 1918dfbaa0fd780ea4f17b544879e5cb623f4e2e 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, 20 Feb 2023 18:25:36 +0800 Subject: [PATCH] =?UTF-8?q?perf=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../pom.xml | 2 +- .../database/DatabaseAutoConfigurer.java | 12 ++++ .../database/config/DbBackupConfig.java | 65 +++++++++++++++++++ .../database}/config/DbMigrationConfig.java | 2 +- .../service/DbMigrationInitializer.java | 4 +- .../migration/MigrationAutoConfigurer.java | 12 ---- springboot-web/pom.xml | 2 +- .../com/tiesheng/core/EnableTieshengWeb.java | 4 +- 9 files changed, 86 insertions(+), 21 deletions(-) rename {springboot-db-migration => springboot-database}/pom.xml (95%) create mode 100644 springboot-database/src/main/java/com/tiesheng/database/DatabaseAutoConfigurer.java create mode 100644 springboot-database/src/main/java/com/tiesheng/database/config/DbBackupConfig.java rename {springboot-db-migration/src/main/java/com/tiesheng/migration => springboot-database/src/main/java/com/tiesheng/database}/config/DbMigrationConfig.java (98%) rename {springboot-db-migration/src/main/java/com/tiesheng/migration => springboot-database/src/main/java/com/tiesheng/database}/service/DbMigrationInitializer.java (97%) delete mode 100644 springboot-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoConfigurer.java diff --git a/pom.xml b/pom.xml index 88d5dec..9ea4a84 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ springboot-ademo - springboot-db-migration + springboot-database springboot-login springboot-web springboot-util @@ -56,7 +56,7 @@ com.tiesheng.springboot-parent - springboot-db-migration + springboot-database 0.5.0 diff --git a/springboot-db-migration/pom.xml b/springboot-database/pom.xml similarity index 95% rename from springboot-db-migration/pom.xml rename to springboot-database/pom.xml index ee3d9bf..17f89dc 100644 --- a/springboot-db-migration/pom.xml +++ b/springboot-database/pom.xml @@ -9,7 +9,7 @@ 0.5.0 - springboot-db-migration + springboot-database 8 diff --git a/springboot-database/src/main/java/com/tiesheng/database/DatabaseAutoConfigurer.java b/springboot-database/src/main/java/com/tiesheng/database/DatabaseAutoConfigurer.java new file mode 100644 index 0000000..04c50d6 --- /dev/null +++ b/springboot-database/src/main/java/com/tiesheng/database/DatabaseAutoConfigurer.java @@ -0,0 +1,12 @@ +package com.tiesheng.database; + +import org.springframework.context.annotation.ComponentScan; + +/** + * @author hao + */ +@ComponentScan({ + "com.tiesheng.database.**.*" +}) +public class DatabaseAutoConfigurer { +} diff --git a/springboot-database/src/main/java/com/tiesheng/database/config/DbBackupConfig.java b/springboot-database/src/main/java/com/tiesheng/database/config/DbBackupConfig.java new file mode 100644 index 0000000..e7f9e30 --- /dev/null +++ b/springboot-database/src/main/java/com/tiesheng/database/config/DbBackupConfig.java @@ -0,0 +1,65 @@ +package com.tiesheng.database.config; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.RuntimeUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.PostConstruct; +import java.util.Date; + +/** + * @author hao + */ +@Configuration +@ConfigurationProperties(prefix = "tiesheng.db-backup") +public class DbBackupConfig { + + /** + * 数据库备份的路径 + */ + private String path = "/root/backup/"; + + /** + * 备份文件的时间格式 + */ + private String format = "yyyyMMdd"; + + + @PostConstruct + public void dbBackup() { + String url = SpringUtil.getProperty("spring.datasource.url"); + String username = SpringUtil.getProperty("spring.datasource.username"); + String password = SpringUtil.getProperty("spring.datasource.password"); + + try { + RuntimeUtil.exec(StrUtil.format("mysqldump -u{} -p{} {} > {}{}.sql", username, password, username, + getPath(), DateUtil.format(new Date(), format) + )); + } catch (Exception ignored) { + } + + } + + /////////////////////////////////////////////////////////////////////////// + // setter\getter + /////////////////////////////////////////////////////////////////////////// + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } +} diff --git a/springboot-db-migration/src/main/java/com/tiesheng/migration/config/DbMigrationConfig.java b/springboot-database/src/main/java/com/tiesheng/database/config/DbMigrationConfig.java similarity index 98% rename from springboot-db-migration/src/main/java/com/tiesheng/migration/config/DbMigrationConfig.java rename to springboot-database/src/main/java/com/tiesheng/database/config/DbMigrationConfig.java index 5dcb187..7e176c9 100644 --- a/springboot-db-migration/src/main/java/com/tiesheng/migration/config/DbMigrationConfig.java +++ b/springboot-database/src/main/java/com/tiesheng/database/config/DbMigrationConfig.java @@ -1,4 +1,4 @@ -package com.tiesheng.migration.config; +package com.tiesheng.database.config; import cn.hutool.core.collection.CollUtil; diff --git a/springboot-db-migration/src/main/java/com/tiesheng/migration/service/DbMigrationInitializer.java b/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java similarity index 97% rename from springboot-db-migration/src/main/java/com/tiesheng/migration/service/DbMigrationInitializer.java rename to springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java index ac33d23..ab97a02 100644 --- a/springboot-db-migration/src/main/java/com/tiesheng/migration/service/DbMigrationInitializer.java +++ b/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java @@ -1,4 +1,4 @@ -package com.tiesheng.migration.service; +package com.tiesheng.database.service; import cn.hutool.core.date.DateUtil; @@ -9,7 +9,7 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.db.Db; import cn.hutool.db.Entity; -import com.tiesheng.migration.config.DbMigrationConfig; +import com.tiesheng.database.config.DbMigrationConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.servlet.ServletContextInitializer; import org.springframework.core.io.Resource; diff --git a/springboot-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoConfigurer.java b/springboot-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoConfigurer.java deleted file mode 100644 index be89fa3..0000000 --- a/springboot-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoConfigurer.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.tiesheng.migration; - -import org.springframework.context.annotation.ComponentScan; - -/** - * @author hao - */ -@ComponentScan({ - "com.tiesheng.migration.**.*" -}) -public class MigrationAutoConfigurer { -} diff --git a/springboot-web/pom.xml b/springboot-web/pom.xml index 7bd51e9..941cbea 100644 --- a/springboot-web/pom.xml +++ b/springboot-web/pom.xml @@ -64,7 +64,7 @@ com.tiesheng.springboot-parent - springboot-db-migration + springboot-database diff --git a/springboot-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java b/springboot-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java index e804e8c..dc043ab 100644 --- a/springboot-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java +++ b/springboot-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java @@ -1,9 +1,9 @@ package com.tiesheng.core; import com.tiesheng.core.service.TieshengWebConfigurer; +import com.tiesheng.database.DatabaseAutoConfigurer; import com.tiesheng.login.LoginAutoConfigurer; import com.tiesheng.message.MessageAutoConfigurer; -import com.tiesheng.migration.MigrationAutoConfigurer; import com.tiesheng.util.UtilAutoConfigurer; import org.springframework.context.annotation.Import; @@ -20,7 +20,7 @@ import java.lang.annotation.*; MessageAutoConfigurer.class, CoreAutoConfigurer.class, LoginAutoConfigurer.class, - MigrationAutoConfigurer.class + DatabaseAutoConfigurer.class }) public @interface EnableTieshengWeb {