diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/start/IApplicationStart.java b/basic-interface/src/main/java/ink/wgink/interfaces/start/IApplicationStart.java new file mode 100644 index 00000000..7eea3423 --- /dev/null +++ b/basic-interface/src/main/java/ink/wgink/interfaces/start/IApplicationStart.java @@ -0,0 +1,19 @@ +package ink.wgink.interfaces.start; + +/** + * @ClassName: IApplicationStart + * @Description: 应用启动 + * @Author: wanggeng + * @Date: 2022/9/29 17:20 + * @Version: 1.0 + */ +public interface IApplicationStart { + + /** + * 执行 + * + * @throws Exception + */ + void run() throws Exception; + +} diff --git a/common/src/main/java/ink/wgink/common/startup/CommonStartup.java b/common/src/main/java/ink/wgink/common/startup/CommonStartup.java index efb4860b..d2c4b32f 100644 --- a/common/src/main/java/ink/wgink/common/startup/CommonStartup.java +++ b/common/src/main/java/ink/wgink/common/startup/CommonStartup.java @@ -8,6 +8,7 @@ import ink.wgink.interfaces.init.IInitBaseMenu; import ink.wgink.interfaces.init.IInitBaseTable; import ink.wgink.interfaces.init.IInitBaseUser; import ink.wgink.interfaces.init.IInitMongoData; +import ink.wgink.interfaces.start.IApplicationStart; import ink.wgink.properties.BaseProperties; import ink.wgink.properties.ServerProperties; import org.slf4j.Logger; @@ -56,6 +57,16 @@ public class CommonStartup implements ApplicationRunner { serverInit(); initManager(); initMongoData(); + serverStart(); + } + + private void serverStart() throws Exception { + Map applicationStartMap = applicationContext.getBeansOfType(IApplicationStart.class); + for (Map.Entry entry : applicationStartMap.entrySet()) { + String key = entry.getKey(); + IApplicationStart value = entry.getValue(); + value.run(); + } } /** diff --git a/module-file/src/main/java/ink/wgink/module/file/startup/FilesStartUp.java b/module-file/src/main/java/ink/wgink/module/file/startup/FilesStartUp.java index 96acbf73..6a79f965 100644 --- a/module-file/src/main/java/ink/wgink/module/file/startup/FilesStartUp.java +++ b/module-file/src/main/java/ink/wgink/module/file/startup/FilesStartUp.java @@ -1,12 +1,11 @@ package ink.wgink.module.file.startup; import ink.wgink.interfaces.manager.IFilesShowCodeService; +import ink.wgink.interfaces.start.IApplicationStart; import ink.wgink.module.file.dao.fileclient.IFileClientDao; import ink.wgink.module.file.manager.FileRemoteManager; import ink.wgink.module.file.manager.FilesManager; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -18,21 +17,21 @@ import org.springframework.stereotype.Component; * @Version: 1.0 */ @Component -public class FilesStartUp implements ApplicationRunner { +public class FilesStartUp implements IApplicationStart { @Autowired private IFilesShowCodeService filesShowCodeService; @Autowired private IFileClientDao fileRemoteDao; - @Override - public void run(ApplicationArguments args) throws Exception { - FilesManager.getInstance().setFilesShowCodeService(filesShowCodeService); - FileRemoteManager.getInstance().setFileRemoteDao(fileRemoteDao); - } - @Scheduled(cron = "0 0/1 * * * ?") public void clearTimeoutShowCode() { FilesManager.getInstance().clearTimeoutShowCode(); } + + @Override + public void run() throws Exception { + FilesManager.getInstance().setFilesShowCodeService(filesShowCodeService); + FileRemoteManager.getInstance().setFileRemoteDao(fileRemoteDao); + } }