소스 검색

自定义函数

mxd 4 년 전
부모
커밋
686d3c8621
1개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 9 1
      src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java

+ 9 - 1
src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java

@@ -46,6 +46,7 @@ import org.ssssssss.script.MagicScriptEngine;
 import org.ssssssss.script.functions.ExtensionMethod;
 import org.ssssssss.script.parsing.ast.statement.AsyncCall;
 import org.ssssssss.script.reflection.AbstractReflection;
+import org.ssssssss.script.reflection.JavaReflection;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -102,6 +103,12 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer {
 	@Autowired(required = false)
 	List<ColumnMapperProvider> columnMapperProviders = Collections.emptyList();
 
+	/**
+	 * 自定义的函数
+	 */
+	@Autowired(required = false)
+	List<MagicFunction> magicFunctions = Collections.emptyList();
+
 	@Autowired
 	private Environment environment;
 
@@ -436,7 +443,8 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer {
 		configuration.setResultProvider(resultProvider);
 		configuration.setThrowException(properties.isThrowException());
 		configuration.setMagicDynamicDataSource(magicDynamicDataSource);
-
+		// 注册函数
+		this.magicFunctions.forEach(function -> JavaReflection.registerFunctionClass(function.getClass()));
 		// 向页面传递配置信息时不传递用户名密码,增强安全性
 		securityConfig.setUsername(null);
 		securityConfig.setPassword(null);