代码优化

This commit is contained in:
mxd
2022-01-24 23:08:15 +08:00
parent 9a29034955
commit 95606cfeab
2 changed files with 39 additions and 42 deletions

View File

@@ -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)

View File

@@ -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<Plugin> plugins;
public MagicWorkbenchController(MagicConfiguration configuration, List<Plugin> plugins, String secretKey) {
private final MagicAPIProperties properties;
private String allClassTxt;
public MagicWorkbenchController(MagicConfiguration configuration, MagicAPIProperties properties, List<Plugin> 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
*/