From 167179a261daaa4fd2262ae3efd664709bd285b9 Mon Sep 17 00:00:00 2001 From: mxd <838425805@qq.com> Date: Tue, 25 Jan 2022 23:17:55 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D`magic-script`=20`1.8.0`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../elasticsearch/ElasticSearchModule.java | 10 +-- .../ssssssss/magicapi/mongo/MongoModule.java | 25 ++++--- .../ssssssss/magicapi/redis/RedisModule.java | 10 +-- .../starter/MagicAPIAutoConfiguration.java | 32 +++------ .../MagicDynamicRegistryConfiguration.java | 8 --- .../starter/MagicModuleConfiguration.java | 47 ++++++++++++- .../magicapi/core/annotation/MagicModule.java | 19 +++++ .../core/{config => annotation}/Message.java | 4 +- .../core/{config => annotation}/Valid.java | 2 +- .../magicapi/core/config/MagicModule.java | 19 ----- .../handler/MagicCoordinationHandler.java | 2 +- .../core/handler/MagicDebugHandler.java | 2 +- .../handler/MagicWebSocketDispatcher.java | 2 +- .../core/handler/MagicWorkbenchHandler.java | 2 +- .../MagicWebRequestInterceptor.java | 3 +- .../magicapi/core/model/Attributes.java | 11 ++- .../core/service/MagicAPIService.java | 4 +- .../service/impl/DefaultMagicAPIService.java | 7 +- .../magicapi/core/web/MagicController.java | 2 +- .../core/web/MagicWorkbenchController.java | 2 +- .../magicapi/core/web/RequestHandler.java | 2 +- .../magicapi/modules/db/SQLModule.java | 69 +++++++++---------- .../magicapi/modules/db/table/NamedTable.java | 48 ++++++------- .../magicapi/modules/http/HttpModule.java | 10 +-- .../modules/servlet/RequestModule.java | 2 + .../modules/servlet/ResponseModule.java | 2 + .../magicapi/modules/spring/EnvModule.java | 18 ++--- pom.xml | 2 +- 28 files changed, 183 insertions(+), 183 deletions(-) create mode 100644 magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/MagicModule.java rename magic-api/src/main/java/org/ssssssss/magicapi/core/{config => annotation}/Message.java (70%) rename magic-api/src/main/java/org/ssssssss/magicapi/core/{config => annotation}/Valid.java (91%) delete mode 100644 magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicModule.java diff --git a/magic-api-plugins/magic-api-plugin-elasticsearch/src/main/java/org/ssssssss/magicapi/elasticsearch/ElasticSearchModule.java b/magic-api-plugins/magic-api-plugin-elasticsearch/src/main/java/org/ssssssss/magicapi/elasticsearch/ElasticSearchModule.java index 25313d48..dc37fc3d 100644 --- a/magic-api-plugins/magic-api-plugin-elasticsearch/src/main/java/org/ssssssss/magicapi/elasticsearch/ElasticSearchModule.java +++ b/magic-api-plugins/magic-api-plugin-elasticsearch/src/main/java/org/ssssssss/magicapi/elasticsearch/ElasticSearchModule.java @@ -1,10 +1,11 @@ package org.ssssssss.magicapi.elasticsearch; import org.elasticsearch.client.RestClient; -import org.ssssssss.magicapi.core.config.MagicModule; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.script.annotation.Comment; -public class ElasticSearchModule implements MagicModule { +@MagicModule("elasticsearch") +public class ElasticSearchModule { private static final String DOC = "_doc"; @@ -22,9 +23,4 @@ public class ElasticSearchModule implements MagicModule { public ElasticSearchIndex index(String indexName){ return new ElasticSearchIndex(this.restClient, indexName, DOC); } - - @Override - public String getModuleName() { - return "elasticsearch"; - } } diff --git a/magic-api-plugins/magic-api-plugin-mongo/src/main/java/org/ssssssss/magicapi/mongo/MongoModule.java b/magic-api-plugins/magic-api-plugin-mongo/src/main/java/org/ssssssss/magicapi/mongo/MongoModule.java index 75a72bde..f36a52a7 100644 --- a/magic-api-plugins/magic-api-plugin-mongo/src/main/java/org/ssssssss/magicapi/mongo/MongoModule.java +++ b/magic-api-plugins/magic-api-plugin-mongo/src/main/java/org/ssssssss/magicapi/mongo/MongoModule.java @@ -9,14 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.ssssssss.magicapi.core.config.Constants; -import org.ssssssss.magicapi.core.config.MagicModule; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.script.convert.ClassImplicitConvert; +import org.ssssssss.script.functions.DynamicAttribute; import org.ssssssss.script.reflection.JavaInvoker; import org.ssssssss.script.reflection.JavaReflection; import org.ssssssss.script.runtime.Variables; +import java.beans.Transient; import java.lang.reflect.Method; -import java.util.HashMap; import java.util.Map; /** @@ -24,7 +25,8 @@ import java.util.Map; * * @author mxd */ -public class MongoModule extends HashMap implements MagicModule, ClassImplicitConvert { +@MagicModule("mongo") +public class MongoModule implements ClassImplicitConvert, DynamicAttribute { private static final Logger logger = LoggerFactory.getLogger(MongoModule.class); @@ -54,23 +56,19 @@ public class MongoModule extends HashMap from, Class to) { return Map.class.isAssignableFrom(from) && (Bson.class.isAssignableFrom(to)); @@ -81,7 +79,7 @@ public class MongoModule extends HashMap) source); } - public static class MongoDataBaseGetter extends HashMap> { + public static class MongoDataBaseGetter implements DynamicAttribute, MongoCollection> { MongoDatabase database; @@ -90,8 +88,9 @@ public class MongoModule extends HashMap get(Object key) { - return database.getCollection(key.toString()); + @Transient + public MongoCollection getDynamicAttribute(String key) { + return database.getCollection(key); } } } diff --git a/magic-api-plugins/magic-api-plugin-redis/src/main/java/org/ssssssss/magicapi/redis/RedisModule.java b/magic-api-plugins/magic-api-plugin-redis/src/main/java/org/ssssssss/magicapi/redis/RedisModule.java index 025ee48d..21c1090d 100644 --- a/magic-api-plugins/magic-api-plugin-redis/src/main/java/org/ssssssss/magicapi/redis/RedisModule.java +++ b/magic-api-plugins/magic-api-plugin-redis/src/main/java/org/ssssssss/magicapi/redis/RedisModule.java @@ -3,7 +3,7 @@ package org.ssssssss.magicapi.redis; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.StringRedisTemplate; -import org.ssssssss.magicapi.core.config.MagicModule; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.script.functions.DynamicMethod; import java.util.*; @@ -13,7 +13,8 @@ import java.util.*; * * @author mxd */ -public class RedisModule implements MagicModule, DynamicMethod { +@MagicModule("redis") +public class RedisModule implements DynamicMethod { private final StringRedisTemplate redisTemplate; @@ -21,11 +22,6 @@ public class RedisModule implements MagicModule, DynamicMethod { this.redisTemplate = new StringRedisTemplate(connectionFactory); } - @Override - public String getModuleName() { - return "redis"; - } - /** * 序列化 */ 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 a287e389..84fbfa16 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 @@ -17,7 +17,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Lazy; import org.springframework.core.Ordered; -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; @@ -34,6 +33,7 @@ import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry import org.ssssssss.magicapi.backup.service.MagicBackupService; import org.ssssssss.magicapi.backup.service.MagicDatabaseBackupService; import org.ssssssss.magicapi.backup.web.MagicBackupController; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.magicapi.core.config.*; import org.ssssssss.magicapi.core.exception.MagicAPIException; import org.ssssssss.magicapi.core.handler.MagicCoordinationHandler; @@ -128,8 +128,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon private final ObjectProvider dataSourceEncryptProvider; - private final Environment environment; - private final MagicCorsFilter magicCorsFilter = new MagicCorsFilter(); private final MagicAPIProperties properties; @@ -146,9 +144,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon @Lazy private RequestMappingHandlerMapping requestMappingHandlerMapping; - @Autowired(required = false) - private MultipartResolver multipartResolver; - private DefaultAuthorizationInterceptor defaultAuthorizationInterceptor; public MagicAPIAutoConfiguration(MagicAPIProperties properties, @@ -162,7 +157,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon ObjectProvider dataSourceEncryptProvider, ObjectProvider>> magicDynamicRegistriesProvider, ObjectProvider>> magicResourceStoragesProvider, - Environment environment, ApplicationContext applicationContext ) { this.properties = properties; @@ -176,7 +170,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon this.dataSourceEncryptProvider = dataSourceEncryptProvider; this.magicDynamicRegistriesProvider = magicDynamicRegistriesProvider; this.magicResourceStoragesProvider = magicResourceStoragesProvider; - this.environment = environment; this.applicationContext = applicationContext; } @@ -267,10 +260,7 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon /** * 注册模块、类型扩展 */ - private void setupMagicModules(ResultProvider resultProvider, - List magicModules, - List extensionMethods, - List languageProviders) { + private void setupMagicModules(List extensionMethods, List languageProviders) { // 设置脚本import时 class加载策略 MagicResourceLoader.setClassLoader((className) -> { try { @@ -301,15 +291,10 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon logger.info("注册模块:{} -> {}", "log", Logger.class); MagicResourceLoader.addModule("log", new DynamicModuleImport(Logger.class, context -> LoggerFactory.getLogger(Objects.toString(context.getScriptName(), "Unknown")))); List importModules = properties.getAutoImportModuleList(); - logger.info("注册模块:{} -> {}", "env", EnvModule.class); - MagicResourceLoader.addModule("env", new EnvModule(environment)); - logger.info("注册模块:{} -> {}", "request", RequestModule.class); - MagicResourceLoader.addModule("request", new RequestModule(multipartResolver)); - logger.info("注册模块:{} -> {}", "response", ResponseModule.class); - MagicResourceLoader.addModule("response", new ResponseModule(resultProvider)); - magicModules.forEach(module -> { - logger.info("注册模块:{} -> {}", module.getModuleName(), module.getClass()); - MagicResourceLoader.addModule(module.getModuleName(), module); + applicationContext.getBeansWithAnnotation(MagicModule.class).values().forEach(module -> { + String moduleName = module.getClass().getAnnotation(MagicModule.class).value(); + logger.info("注册模块:{} -> {}", moduleName, module.getClass()); + MagicResourceLoader.addModule(moduleName, module); }); MagicResourceLoader.getModuleNames().stream().filter(importModules::contains).forEach(moduleName -> { logger.info("自动导入模块:{}", moduleName); @@ -326,8 +311,7 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon } @Bean - public MagicConfiguration magicConfiguration(List magicModules, - List languageProviders, + public MagicConfiguration magicConfiguration(List languageProviders, org.ssssssss.magicapi.core.resource.Resource magicResource, ResultProvider resultProvider, MagicResourceService magicResourceService, @@ -345,7 +329,7 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon Constants.RESPONSE_CODE_INVALID = responseCodeConfig.getInvalid(); Constants.RESPONSE_CODE_EXCEPTION = responseCodeConfig.getException(); // 设置模块和扩展方法 - setupMagicModules(resultProvider, magicModules, extensionMethodsProvider.getIfAvailable(Collections::emptyList), languageProviders); + setupMagicModules(extensionMethodsProvider.getIfAvailable(Collections::emptyList), languageProviders); MagicConfiguration configuration = new MagicConfiguration(); configuration.setMagicAPIService(magicAPIService); configuration.setMagicNotifyService(magicNotifyService); diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicDynamicRegistryConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicDynamicRegistryConfiguration.java index 23e50756..7ed9229e 100644 --- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicDynamicRegistryConfiguration.java +++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicDynamicRegistryConfiguration.java @@ -71,12 +71,4 @@ public class MagicDynamicRegistryConfiguration { return new DataSourceMagicDynamicRegistry(dataSourceInfoMagicResourceStorage, magicDynamicDataSource); } - /** - * 注入结果构建方法 - */ - @Bean - @ConditionalOnMissingBean(ResultProvider.class) - public ResultProvider resultProvider() { - return new DefaultResultProvider(properties.getResponse()); - } } diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java index ca95a3db..b0e00349 100644 --- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java +++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java @@ -8,12 +8,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; +import org.springframework.core.env.Environment; import org.springframework.http.MediaType; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.RestTemplate; +import org.springframework.web.multipart.MultipartResolver; import org.ssssssss.magicapi.core.config.Cache; import org.ssssssss.magicapi.core.config.MagicAPIProperties; import org.ssssssss.magicapi.core.config.Page; +import org.ssssssss.magicapi.core.interceptor.DefaultResultProvider; import org.ssssssss.magicapi.core.interceptor.ResultProvider; import org.ssssssss.magicapi.core.model.Options; import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource; @@ -31,6 +34,9 @@ import org.ssssssss.magicapi.modules.db.provider.ColumnMapperProvider; import org.ssssssss.magicapi.modules.db.provider.DefaultPageProvider; import org.ssssssss.magicapi.modules.db.provider.PageProvider; import org.ssssssss.magicapi.modules.http.HttpModule; +import org.ssssssss.magicapi.modules.servlet.RequestModule; +import org.ssssssss.magicapi.modules.servlet.ResponseModule; +import org.ssssssss.magicapi.modules.spring.EnvModule; import org.ssssssss.script.MagicResourceLoader; import org.ssssssss.script.functions.DynamicModuleImport; @@ -67,15 +73,23 @@ public class MagicModuleConfiguration { */ private final ObjectProvider> columnMapperProvidersProvider; + private final Environment environment; + + @Autowired(required = false) + private MultipartResolver multipartResolver; + public MagicModuleConfiguration(MagicAPIProperties properties, ObjectProvider> sqlInterceptorsProvider, ObjectProvider> namedTableInterceptorsProvider, - ObjectProvider> dialectsProvider, ObjectProvider> columnMapperProvidersProvider) { + ObjectProvider> dialectsProvider, + ObjectProvider> columnMapperProvidersProvider, + Environment environment) { this.properties = properties; this.sqlInterceptorsProvider = sqlInterceptorsProvider; this.namedTableInterceptorsProvider = namedTableInterceptorsProvider; this.dialectsProvider = dialectsProvider; this.columnMapperProvidersProvider = columnMapperProvidersProvider; + this.environment = environment; } /** @@ -145,7 +159,7 @@ public class MagicModuleConfiguration { sqlModule.setDialectAdapter(dialectAdapter); sqlModule.setLogicDeleteColumn(properties.getCrud().getLogicDeleteColumn()); sqlModule.setLogicDeleteValue(properties.getCrud().getLogicDeleteValue()); - MagicResourceLoader.addModule(sqlModule.getModuleName(), new DynamicModuleImport(SQLModule.class, context -> { + MagicResourceLoader.addModule("db", new DynamicModuleImport(SQLModule.class, context -> { String dataSourceKey = context.getString(Options.DEFAULT_DATA_SOURCE.getValue()); if (StringUtils.isEmpty(dataSourceKey)) return sqlModule; SQLModule newSqlModule = sqlModule.cloneSQLModule(); @@ -166,6 +180,34 @@ public class MagicModuleConfiguration { return new HttpModule(createRestTemplate()); } + @Bean + @ConditionalOnMissingBean + public EnvModule magicEnvModule(){ + return new EnvModule(environment); + } + + @Bean + @ConditionalOnMissingBean + public RequestModule magicRequestModule(){ + return new RequestModule(multipartResolver); + } + + /** + * 注入结果构建方法 + */ + @Bean + @ConditionalOnMissingBean(ResultProvider.class) + public ResultProvider resultProvider() { + return new DefaultResultProvider(properties.getResponse()); + } + + + @Bean + @ConditionalOnMissingBean + public ResponseModule magicResponseModule(ResultProvider resultProvider){ + return new ResponseModule(resultProvider); + } + private RestTemplate createRestTemplate() { RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new StringHttpMessageConverter(StandardCharsets.UTF_8) { @@ -180,4 +222,5 @@ public class MagicModuleConfiguration { }); return restTemplate; } + } diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/MagicModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/MagicModule.java new file mode 100644 index 00000000..e5b12a77 --- /dev/null +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/MagicModule.java @@ -0,0 +1,19 @@ +package org.ssssssss.magicapi.core.annotation; + +import java.lang.annotation.*; + +/** + * 模块,主要用于import指令,import时根据模块名获取当前类如:import assert; + * + * @author mxd + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface MagicModule { + + /** + * 模块名 + */ + String value(); +} diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Message.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/Message.java similarity index 70% rename from magic-api/src/main/java/org/ssssssss/magicapi/core/config/Message.java rename to magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/Message.java index 7bd737ab..61678412 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Message.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/Message.java @@ -1,4 +1,6 @@ -package org.ssssssss.magicapi.core.config; +package org.ssssssss.magicapi.core.annotation; + +import org.ssssssss.magicapi.core.config.MessageType; import java.lang.annotation.*; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Valid.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/Valid.java similarity index 91% rename from magic-api/src/main/java/org/ssssssss/magicapi/core/config/Valid.java rename to magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/Valid.java index a6e10e45..a31c236c 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Valid.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/annotation/Valid.java @@ -1,4 +1,4 @@ -package org.ssssssss.magicapi.core.config; +package org.ssssssss.magicapi.core.annotation; import org.ssssssss.magicapi.core.interceptor.Authorization; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicModule.java deleted file mode 100644 index d39094ee..00000000 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicModule.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ssssssss.magicapi.core.config; - -import org.ssssssss.script.annotation.UnableCall; - -/** - * 模块,主要用于import指令,import时根据模块名获取当前类如:import assert; - * - * @author mxd - */ -public interface MagicModule { - - /** - * 获取模块名 - * - * @return 返回模块名称 - */ - @UnableCall - String getModuleName(); -} diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicCoordinationHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicCoordinationHandler.java index 45659610..0f1e96bb 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicCoordinationHandler.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicCoordinationHandler.java @@ -1,6 +1,6 @@ package org.ssssssss.magicapi.core.handler; -import org.ssssssss.magicapi.core.config.Message; +import org.ssssssss.magicapi.core.annotation.Message; import org.ssssssss.magicapi.core.config.MessageType; import org.ssssssss.magicapi.core.config.WebSocketSessionManager; import org.ssssssss.magicapi.core.config.Constants; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicDebugHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicDebugHandler.java index 63796109..0bcff062 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicDebugHandler.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicDebugHandler.java @@ -1,7 +1,7 @@ package org.ssssssss.magicapi.core.handler; import org.apache.commons.lang3.StringUtils; -import org.ssssssss.magicapi.core.config.Message; +import org.ssssssss.magicapi.core.annotation.Message; import org.ssssssss.magicapi.core.config.MessageType; import org.ssssssss.magicapi.core.config.WebSocketSessionManager; import org.ssssssss.magicapi.core.context.MagicConsoleSession; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWebSocketDispatcher.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWebSocketDispatcher.java index 0c35b130..b67cfd19 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWebSocketDispatcher.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWebSocketDispatcher.java @@ -6,7 +6,7 @@ import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.TextWebSocketHandler; -import org.ssssssss.magicapi.core.config.Message; +import org.ssssssss.magicapi.core.annotation.Message; import org.ssssssss.magicapi.core.config.MessageType; import org.ssssssss.magicapi.core.config.WebSocketSessionManager; import org.ssssssss.magicapi.core.event.EventAction; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWorkbenchHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWorkbenchHandler.java index 0ee86e2e..313ac8cf 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWorkbenchHandler.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWorkbenchHandler.java @@ -1,6 +1,6 @@ package org.ssssssss.magicapi.core.handler; -import org.ssssssss.magicapi.core.config.Message; +import org.ssssssss.magicapi.core.annotation.Message; import org.ssssssss.magicapi.core.config.MessageType; import org.ssssssss.magicapi.core.config.WebSocketSessionManager; import org.ssssssss.magicapi.core.exception.MagicLoginException; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/MagicWebRequestInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/MagicWebRequestInterceptor.java index c779c2c3..ef9c220e 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/MagicWebRequestInterceptor.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/MagicWebRequestInterceptor.java @@ -4,10 +4,9 @@ import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; import org.ssssssss.magicapi.core.config.Constants; import org.ssssssss.magicapi.core.config.MagicCorsFilter; -import org.ssssssss.magicapi.core.config.Valid; +import org.ssssssss.magicapi.core.annotation.Valid; import org.ssssssss.magicapi.core.web.MagicController; import org.ssssssss.magicapi.core.exception.MagicLoginException; -import org.ssssssss.magicapi.core.interceptor.AuthorizationInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Attributes.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Attributes.java index aaca94ad..e9896a30 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Attributes.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Attributes.java @@ -1,7 +1,6 @@ package org.ssssssss.magicapi.core.model; -import org.ssssssss.script.annotation.UnableCall; - +import java.beans.Transient; import java.util.HashMap; import java.util.Map; @@ -21,7 +20,7 @@ public class Attributes { * @param key key * @param value value */ - @UnableCall + @Transient public void setAttribute(String key, T value) { properties.put(key, value); } @@ -31,17 +30,17 @@ public class Attributes { * * @param key key */ - @UnableCall + @Transient public Object getAttribute(String key) { return properties.get(key); } - @UnableCall + @Transient public Map getProperties() { return properties; } - @UnableCall + @Transient public void setProperties(Map properties) { this.properties = properties; } diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicAPIService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicAPIService.java index dffed23d..d489e07c 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicAPIService.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicAPIService.java @@ -1,6 +1,6 @@ package org.ssssssss.magicapi.core.service; -import org.ssssssss.magicapi.core.config.MagicModule; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.magicapi.core.model.*; import java.io.IOException; @@ -12,7 +12,7 @@ import java.util.Map; /** * API调用接口 */ -public interface MagicAPIService extends MagicModule { +public interface MagicAPIService { /** * 执行MagicAPI中的接口,原始内容,不包含code以及message信息 diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicAPIService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicAPIService.java index 897e1147..6ebf78da 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicAPIService.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicAPIService.java @@ -10,6 +10,7 @@ import org.springframework.http.MediaType; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.magicapi.core.config.Constants; import org.ssssssss.magicapi.core.config.JsonCodeConstants; import org.ssssssss.magicapi.core.config.WebSocketSessionManager; @@ -35,6 +36,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +@MagicModule("magic") public class DefaultMagicAPIService implements MagicAPIService, JsonCodeConstants { private final static Logger logger = LoggerFactory.getLogger(DefaultMagicAPIService.class); @@ -204,11 +206,6 @@ public class DefaultMagicAPIService implements MagicAPIService, JsonCodeConstant return null; } - @Override - public String getModuleName() { - return "magic"; - } - private boolean processWebSocketSendMessage(String clientId, String content) { WebSocketSessionManager.sendByClientId(clientId, content); return true; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicController.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicController.java index 65dc503e..10433e42 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicController.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicController.java @@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.ssssssss.magicapi.core.config.Constants; import org.ssssssss.magicapi.core.config.JsonCodeConstants; import org.ssssssss.magicapi.core.config.MagicConfiguration; -import org.ssssssss.magicapi.core.config.Valid; +import org.ssssssss.magicapi.core.annotation.Valid; import org.ssssssss.magicapi.core.model.*; import org.ssssssss.magicapi.core.exception.InvalidArgumentException; import org.ssssssss.magicapi.core.exception.MagicLoginException; 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 c811f974..6ce95a31 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 @@ -13,7 +13,7 @@ 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.annotation.Valid; import org.ssssssss.magicapi.core.model.*; import org.ssssssss.magicapi.core.exception.MagicLoginException; import org.ssssssss.magicapi.core.interceptor.Authorization; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java index 7a329a20..de00e192 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.ssssssss.magicapi.core.config.Constants; import org.ssssssss.magicapi.core.config.MagicConfiguration; -import org.ssssssss.magicapi.core.config.Valid; +import org.ssssssss.magicapi.core.annotation.Valid; import org.ssssssss.magicapi.core.config.WebSocketSessionManager; import org.ssssssss.magicapi.core.context.CookieContext; import org.ssssssss.magicapi.core.context.RequestContext; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java index 90898765..da04c1e1 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java @@ -6,7 +6,7 @@ import org.springframework.jdbc.support.GeneratedKeyHolder; import org.ssssssss.magicapi.modules.db.dialect.DialectAdapter; import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource; import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource.DataSourceNode; -import org.ssssssss.magicapi.core.config.MagicModule; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.magicapi.core.context.RequestContext; import org.ssssssss.magicapi.core.context.RequestEntity; import org.ssssssss.magicapi.modules.db.cache.SqlCache; @@ -19,11 +19,12 @@ import org.ssssssss.magicapi.modules.db.table.NamedTable; import org.ssssssss.magicapi.core.interceptor.ResultProvider; import org.ssssssss.magicapi.utils.ScriptManager; import org.ssssssss.script.annotation.Comment; -import org.ssssssss.script.annotation.UnableCall; +import org.ssssssss.script.functions.DynamicAttribute; import org.ssssssss.script.parsing.ast.statement.ClassConverter; import org.ssssssss.script.reflection.JavaReflection; import org.ssssssss.script.runtime.RuntimeContext; +import java.beans.Transient; import java.lang.reflect.Field; import java.sql.*; import java.util.*; @@ -36,8 +37,8 @@ import java.util.stream.Stream; * * @author mxd */ -public class SQLModule extends HashMap implements MagicModule { - +@MagicModule("db") +public class SQLModule implements DynamicAttribute { static { try { Field[] fields = Types.class.getFields(); @@ -86,32 +87,32 @@ public class SQLModule extends HashMap implements MagicModule this.dynamicDataSource = dynamicDataSource; } - @UnableCall + @Transient public void setPageProvider(PageProvider pageProvider) { this.pageProvider = pageProvider; } - @UnableCall + @Transient public void setResultProvider(ResultProvider resultProvider) { this.resultProvider = resultProvider; } - @UnableCall + @Transient public void setColumnMapperProvider(ColumnMapperAdapter columnMapperAdapter) { this.columnMapperAdapter = columnMapperAdapter; } - @UnableCall + @Transient public void setDialectAdapter(DialectAdapter dialectAdapter) { this.dialectAdapter = dialectAdapter; } - @UnableCall + @Transient public void setColumnMapRowMapper(RowMapper> columnMapRowMapper) { this.columnMapRowMapper = columnMapRowMapper; } - @UnableCall + @Transient public void setRowMapColumnMapper(Function rowMapColumnMapper) { this.rowMapColumnMapper = rowMapColumnMapper; } @@ -120,17 +121,17 @@ public class SQLModule extends HashMap implements MagicModule this.dynamicDataSource = dynamicDataSource; } - @UnableCall + @Transient public void setSqlInterceptors(List sqlInterceptors) { this.sqlInterceptors = sqlInterceptors; } - @UnableCall + @Transient public void setNamedTableInterceptors(List namedTableInterceptors) { this.namedTableInterceptors = namedTableInterceptors; } - @UnableCall + @Transient public void setDataSourceNode(DataSourceNode dataSourceNode) { this.dataSourceNode = dataSourceNode; } @@ -151,22 +152,22 @@ public class SQLModule extends HashMap implements MagicModule this.ttl = ttl; } - @UnableCall + @Transient public String getLogicDeleteColumn() { return logicDeleteColumn; } - @UnableCall + @Transient public void setLogicDeleteColumn(String logicDeleteColumn) { this.logicDeleteColumn = logicDeleteColumn; } - @UnableCall + @Transient public String getLogicDeleteValue() { return logicDeleteValue; } - @UnableCall + @Transient public void setLogicDeleteValue(String logicDeleteValue) { this.logicDeleteValue = logicDeleteValue; } @@ -175,12 +176,12 @@ public class SQLModule extends HashMap implements MagicModule return sqlCache; } - @UnableCall + @Transient public void setSqlCache(SqlCache sqlCache) { this.sqlCache = sqlCache; } - @UnableCall + @Transient public SQLModule cloneSQLModule() { SQLModule sqlModule = new SQLModule(); sqlModule.setDynamicDataSource(this.dynamicDataSource); @@ -289,21 +290,23 @@ public class SQLModule extends HashMap implements MagicModule return sqlModule; } + + /** * 数据源切换 */ @Override - public SQLModule get(Object key) { + @Transient + public SQLModule getDynamicAttribute(String key) { SQLModule sqlModule = cloneSQLModule(); if (key == null) { sqlModule.setDataSourceNode(dynamicDataSource.getDataSource()); } else { - sqlModule.setDataSourceNode(dynamicDataSource.getDataSource(key.toString())); + sqlModule.setDataSourceNode(dynamicDataSource.getDataSource(key)); } return sqlModule; } - /** * 查询List */ @@ -323,7 +326,7 @@ public class SQLModule extends HashMap implements MagicModule return select(new BoundSql(runtimeContext, sqlOrXml, params, this)); } - @UnableCall + @Transient public List> select(BoundSql boundSql) { assertDatasourceNotNull(); return boundSql.execute(this.sqlInterceptors, () -> queryForList(boundSql)); @@ -362,7 +365,7 @@ public class SQLModule extends HashMap implements MagicModule return update(new BoundSql(runtimeContext, sqlOrXml, params, this)); } - @UnableCall + @Transient public int update(BoundSql boundSql) { assertDatasourceNotNull(); RequestEntity requestEntity = RequestContext.getRequestEntity(); @@ -482,7 +485,7 @@ public class SQLModule extends HashMap implements MagicModule return Arrays.stream(values).sum(); } - @UnableCall + @Transient public Object insert(BoundSql boundSql, String primary) { MagicKeyHolder keyHolder = new MagicKeyHolder(primary); RequestEntity requestEntity = RequestContext.getRequestEntity(); @@ -538,13 +541,13 @@ public class SQLModule extends HashMap implements MagicModule return page(boundSql, new Page(limit, offset)); } - @UnableCall + @Transient public Object page(BoundSql boundSql) { Page page = pageProvider.getPage(boundSql.getRuntimeContext()); return page(boundSql, page); } - @UnableCall + @Transient public String getDataSourceName() { return this.dataSourceNode == null ? "unknown" : dataSourceNode.getName(); } @@ -586,7 +589,7 @@ public class SQLModule extends HashMap implements MagicModule return resultProvider.buildPageResult(requestEntity, page, count, list); } - @UnableCall + @Transient public Object page(BoundSql boundSql, Page page) { assertDatasourceNotNull(); Dialect dialect = dataSourceNode.getDialect(dialectAdapter); @@ -614,7 +617,7 @@ public class SQLModule extends HashMap implements MagicModule return selectInt(new BoundSql(runtimeContext, sqlOrXml, params, this)); } - @UnableCall + @Transient public Integer selectInt(BoundSql boundSql) { assertDatasourceNotNull(); return boundSql.execute(this.sqlInterceptors, () -> dataSourceNode.getJdbcTemplate().query(boundSql.getSql(), new SingleRowResultSetExtractor<>(Integer.class), boundSql.getParameters())); @@ -639,7 +642,7 @@ public class SQLModule extends HashMap implements MagicModule return selectOne(new BoundSql(runtimeContext, sqlOrXml, params, this)); } - @UnableCall + @Transient public Map selectOne(BoundSql boundSql) { assertDatasourceNotNull(); return boundSql.execute(this.sqlInterceptors, () -> { @@ -682,12 +685,6 @@ public class SQLModule extends HashMap implements MagicModule return boundSql.copy(pageSql); } - @UnableCall - @Override - public String getModuleName() { - return "db"; - } - static class MagicKeyHolder extends GeneratedKeyHolder { private final boolean useGeneratedKeys; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/NamedTable.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/NamedTable.java index e28353ce..74912148 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/NamedTable.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/NamedTable.java @@ -11,9 +11,9 @@ import org.ssssssss.magicapi.modules.db.SQLModule; import org.ssssssss.magicapi.modules.db.model.Page; import org.ssssssss.magicapi.modules.db.model.SqlMode; import org.ssssssss.script.annotation.Comment; -import org.ssssssss.script.annotation.UnableCall; import org.ssssssss.script.runtime.RuntimeContext; +import java.beans.Transient; import java.io.Serializable; import java.util.*; import java.util.function.Function; @@ -515,7 +515,7 @@ public class NamedTable extends Attributes { * * @return 表名 */ - @UnableCall + @Transient public String getTableName() { return tableName; } @@ -525,7 +525,7 @@ public class NamedTable extends Attributes { * * @param tableName 表名 */ - @UnableCall + @Transient public void setTableName(String tableName) { this.tableName = tableName; } @@ -533,7 +533,7 @@ public class NamedTable extends Attributes { /** * 获取SQL模块 */ - @UnableCall + @Transient public SQLModule getSqlModule() { return sqlModule; } @@ -541,7 +541,7 @@ public class NamedTable extends Attributes { /** * 获取主键列 */ - @UnableCall + @Transient public String getPrimary() { return primary; } @@ -549,7 +549,7 @@ public class NamedTable extends Attributes { /** * 获取逻辑删除列 */ - @UnableCall + @Transient public String getLogicDeleteColumn() { return logicDeleteColumn; } @@ -557,7 +557,7 @@ public class NamedTable extends Attributes { /** * 获取逻辑删除值 */ - @UnableCall + @Transient public Object getLogicDeleteValue() { return logicDeleteValue; } @@ -565,7 +565,7 @@ public class NamedTable extends Attributes { /** * 获取设置的columns */ - @UnableCall + @Transient public Map getColumns() { return columns; } @@ -573,7 +573,7 @@ public class NamedTable extends Attributes { /** * 设置columns */ - @UnableCall + @Transient public void setColumns(Map columns) { this.columns = columns; } @@ -581,7 +581,7 @@ public class NamedTable extends Attributes { /** * 获取设置的fields */ - @UnableCall + @Transient public List getFields() { return fields; } @@ -589,7 +589,7 @@ public class NamedTable extends Attributes { /** * 设置 fields */ - @UnableCall + @Transient public void setFields(List fields) { this.fields = fields; } @@ -597,7 +597,7 @@ public class NamedTable extends Attributes { /** * 获取设置的group */ - @UnableCall + @Transient public List getGroups() { return groups; } @@ -605,7 +605,7 @@ public class NamedTable extends Attributes { /** * 设置 group */ - @UnableCall + @Transient public void setGroups(List groups) { this.groups = groups; } @@ -613,7 +613,7 @@ public class NamedTable extends Attributes { /** * 获取设置的order */ - @UnableCall + @Transient public List getOrders() { return orders; } @@ -621,7 +621,7 @@ public class NamedTable extends Attributes { /** * 设置 order */ - @UnableCall + @Transient public void setOrders(List orders) { this.orders = orders; } @@ -629,7 +629,7 @@ public class NamedTable extends Attributes { /** * 获取设置的排除的列 */ - @UnableCall + @Transient public Set getExcludeColumns() { return excludeColumns; } @@ -637,7 +637,7 @@ public class NamedTable extends Attributes { /** * 设置排除的列 */ - @UnableCall + @Transient public void setExcludeColumns(Set excludeColumns) { this.excludeColumns = excludeColumns; } @@ -647,7 +647,7 @@ public class NamedTable extends Attributes { * * @return */ - @UnableCall + @Transient public Object getDefaultPrimaryValue() { return defaultPrimaryValue; } @@ -655,7 +655,7 @@ public class NamedTable extends Attributes { /** * 是否设逻辑了逻辑删除 */ - @UnableCall + @Transient public boolean isUseLogic() { return useLogic; } @@ -663,7 +663,7 @@ public class NamedTable extends Attributes { /** * 设置是否使用逻辑删除 */ - @UnableCall + @Transient public void setUseLogic(boolean useLogic) { this.useLogic = useLogic; } @@ -671,7 +671,7 @@ public class NamedTable extends Attributes { /** * 获取是否不过滤空参数 */ - @UnableCall + @Transient public boolean isWithBlank() { return withBlank; } @@ -679,7 +679,7 @@ public class NamedTable extends Attributes { /** * 设置是否不过滤空参数 */ - @UnableCall + @Transient public void setWithBlank(boolean withBlank) { this.withBlank = withBlank; } @@ -687,7 +687,7 @@ public class NamedTable extends Attributes { /** * 获取where */ - @UnableCall + @Transient public Where getWhere() { return where; } @@ -695,7 +695,7 @@ public class NamedTable extends Attributes { /** * 获取RequestEntity */ - @UnableCall + @Transient public RequestEntity getRequestEntity() { return RequestContext.getRequestEntity(); } diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/http/HttpModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/http/HttpModule.java index c20b5b05..eebb894c 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/http/HttpModule.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/http/HttpModule.java @@ -5,7 +5,7 @@ import org.springframework.http.*; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; -import org.ssssssss.magicapi.core.config.MagicModule; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.script.annotation.Comment; import java.util.HashMap; @@ -19,7 +19,8 @@ import java.util.stream.Collectors; * @author mxd * @since 1.1.0 */ -public class HttpModule implements MagicModule { +@MagicModule("http") +public class HttpModule { private final RestTemplate template; private final HttpHeaders httpHeaders = new HttpHeaders(); @@ -41,11 +42,6 @@ public class HttpModule implements MagicModule { this.url = url; } - @Override - public String getModuleName() { - return "http"; - } - @Comment("创建连接") public HttpModule connect(@Comment(name = "url", value = "目标URL") String url) { return new HttpModule(template, url); diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/RequestModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/RequestModule.java index f273c71e..5d4b2632 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/RequestModule.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/RequestModule.java @@ -3,6 +3,7 @@ package org.ssssssss.magicapi.modules.servlet; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartRequest; import org.springframework.web.multipart.MultipartResolver; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.script.annotation.Comment; import javax.servlet.http.HttpServletRequest; @@ -17,6 +18,7 @@ import java.util.stream.Collectors; * * @author mxd */ +@MagicModule("request") public class RequestModule { private static MultipartResolver resolver; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/ResponseModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/ResponseModule.java index d0833546..3bced337 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/ResponseModule.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/ResponseModule.java @@ -7,6 +7,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.magicapi.core.context.RequestContext; import org.ssssssss.magicapi.core.interceptor.ResultProvider; import org.ssssssss.script.annotation.Comment; @@ -26,6 +27,7 @@ import java.util.Map; * * @author mxd */ +@MagicModule("response") public class ResponseModule { private final ResultProvider resultProvider; diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/spring/EnvModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/spring/EnvModule.java index 490a04a4..5e3fd7bd 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/spring/EnvModule.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/spring/EnvModule.java @@ -1,7 +1,7 @@ package org.ssssssss.magicapi.modules.spring; import org.springframework.core.env.Environment; -import org.ssssssss.magicapi.core.config.MagicModule; +import org.ssssssss.magicapi.core.annotation.MagicModule; import org.ssssssss.script.annotation.Comment; /** @@ -9,24 +9,20 @@ import org.ssssssss.script.annotation.Comment; * * @author mxd */ -public class EnvModule implements MagicModule { +@MagicModule("env") +public class EnvModule { private final Environment environment; - public EnvModule(Environment environment) { - this.environment = environment; - } - - @Override - public String getModuleName() { - return "env"; - } - @Comment("获取配置") public String get(@Comment(name = "key", value = "配置项") String key) { return environment.getProperty(key); } + public EnvModule(Environment environment) { + this.environment = environment; + } + @Comment("获取配置") public String get(@Comment(name = "key", value = "配置项") String key, @Comment(name = "defaultValue", value = "未配置时的默认值") String defaultValue) { diff --git a/pom.xml b/pom.xml index aa9521d2..5d3f73b0 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ 2.4.5 - 1.6.4 + 1.8.0 1.21 2.7 1.6