From 95606cfeab23542e3771d841b75d210e3c10dd89 Mon Sep 17 00:00:00 2001 From: mxd <838425805@qq.com> Date: Mon, 24 Jan 2022 23:08:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starter/MagicAPIAutoConfiguration.java | 41 +------------------ .../core/web/MagicWorkbenchController.java | 40 +++++++++++++++++- 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java index 1f121026..a287e389 100644 --- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java +++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java @@ -21,7 +21,6 @@ import org.springframework.core.env.Environment; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; @@ -63,7 +62,6 @@ import org.ssssssss.magicapi.jsr223.LanguageProvider; import org.ssssssss.magicapi.modules.servlet.RequestModule; import org.ssssssss.magicapi.modules.servlet.ResponseModule; import org.ssssssss.magicapi.modules.spring.EnvModule; -import org.ssssssss.magicapi.utils.ClassScanner; import org.ssssssss.magicapi.utils.Mapping; import org.ssssssss.script.MagicResourceLoader; import org.ssssssss.script.MagicScript; @@ -74,7 +72,6 @@ import org.ssssssss.script.functions.ExtensionMethod; import org.ssssssss.script.parsing.ast.statement.AsyncCall; import org.ssssssss.script.reflection.JavaReflection; -import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.*; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -152,7 +149,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon @Autowired(required = false) private MultipartResolver multipartResolver; - private String allClassTxt; private DefaultAuthorizationInterceptor defaultAuthorizationInterceptor; public MagicAPIAutoConfiguration(MagicAPIProperties properties, @@ -184,31 +180,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon this.applicationContext = applicationContext; } - private String redirectIndex(HttpServletRequest request) { - if (request.getRequestURI().endsWith("/")) { - return "redirect:./index.html"; - } - return "redirect:" + properties.getWeb() + "/index.html"; - } - - @ResponseBody - private MagicAPIProperties readConfig() { - return properties; - } - - @ResponseBody - private String readClass() { - if (allClassTxt == null) { - try { - allClassTxt = ClassScanner.compress(ClassScanner.scan()); - } catch (Throwable t) { - logger.warn("扫描Class失败", t); - allClassTxt = ""; - } - } - return allClassTxt; - } - @Bean @ConditionalOnMissingBean(org.ssssssss.magicapi.core.resource.Resource.class) @ConditionalOnProperty(prefix = "magic-api", name = "resource.type", havingValue = "database") @@ -247,16 +218,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon LoggerManager.createMagicAppender(); // 配置静态资源路径 registry.addResourceHandler(web + "/**").addResourceLocations("classpath:/magic-editor/"); - try { - Mapping mapping = Mapping.create(requestMappingHandlerMapping, web, properties.getPrefix()); - // 默认首页设置 - mapping.register(mapping.paths(web).build(), this, MagicAPIAutoConfiguration.class.getDeclaredMethod("redirectIndex", HttpServletRequest.class)); - // 读取配置 - mapping.register("GET", web + "/config.json", this, MagicAPIAutoConfiguration.class.getDeclaredMethod("readConfig")); - // 读取配置 - mapping.register(mapping.paths(web + "/classes.txt").methods(RequestMethod.GET).produces("text/plain").build(), this, MagicAPIAutoConfiguration.class.getDeclaredMethod("readClass")); - } catch (NoSuchMethodException ignored) { - } } } @@ -411,7 +372,7 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon // 构建UI请求处理器 String base = properties.getWeb(); Mapping mapping = Mapping.create(requestMappingHandlerMapping, base, properties.getPrefix()); - MagicWorkbenchController magicWorkbenchController = new MagicWorkbenchController(configuration, plugins, properties.getSecretKey()); + MagicWorkbenchController magicWorkbenchController = new MagicWorkbenchController(configuration, properties, plugins); if (base != null) { configuration.setEnableWeb(true); mapping.registerController(magicWorkbenchController) diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java index 2c433537..c811f974 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java @@ -11,6 +11,7 @@ import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.ssssssss.magicapi.core.config.Constants; +import org.ssssssss.magicapi.core.config.MagicAPIProperties; import org.ssssssss.magicapi.core.config.MagicConfiguration; import org.ssssssss.magicapi.core.config.Valid; import org.ssssssss.magicapi.core.model.*; @@ -20,6 +21,7 @@ import org.ssssssss.magicapi.core.context.MagicUser; import org.ssssssss.magicapi.modules.servlet.ResponseModule; import org.ssssssss.magicapi.modules.db.SQLModule; import org.ssssssss.magicapi.core.service.MagicAPIService; +import org.ssssssss.magicapi.utils.ClassScanner; import org.ssssssss.magicapi.utils.IoUtils; import org.ssssssss.magicapi.utils.SignUtils; import org.ssssssss.magicapi.utils.WebUtils; @@ -55,15 +57,49 @@ public class MagicWorkbenchController extends MagicController implements MagicEx private final List plugins; - public MagicWorkbenchController(MagicConfiguration configuration, List plugins, String secretKey) { + private final MagicAPIProperties properties; + + private String allClassTxt; + + + public MagicWorkbenchController(MagicConfiguration configuration, MagicAPIProperties properties, List plugins) { super(configuration); + this.properties = properties; this.plugins = plugins; - this.secretKey = secretKey; + this.secretKey = properties.getSecretKey(); // 给前端添加代码提示 MagicScriptEngine.addScriptClass(SQLModule.class); MagicScriptEngine.addScriptClass(MagicAPIService.class); } + @GetMapping({"", "/", "/index"}) + public String redirectIndex(HttpServletRequest request) { + if (request.getRequestURI().endsWith("/")) { + return "redirect:./index.html"; + } + return "redirect:" + properties.getWeb() + "/index.html"; + } + + @GetMapping("/config.json") + @ResponseBody + public MagicAPIProperties readConfig() { + return properties; + } + + @GetMapping(value = "/classes.txt", produces = "text/plain") + @ResponseBody + private String readClass() { + if (allClassTxt == null) { + try { + allClassTxt = ClassScanner.compress(ClassScanner.scan()); + } catch (Throwable t) { + logger.warn("扫描Class失败", t); + allClassTxt = ""; + } + } + return allClassTxt; + } + /** * 获取所有class */