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 5f3e72fa..653a6385 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 @@ -132,6 +132,12 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon private final ApplicationContext applicationContext; + private boolean registerMapping = false; + + private boolean registerInterceptor = false; + + private boolean registerWebsocket = false; + @Autowired @Lazy private RequestMappingHandlerMapping requestMappingHandlerMapping; @@ -248,7 +254,8 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { String web = properties.getWeb(); - if (web != null) { + if (web != null && !registerMapping) { + registerMapping = true; // 当开启了UI界面时,收集日志 LoggerManager.createMagicAppender(); // 配置静态资源路径 @@ -268,8 +275,11 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new MagicWebRequestInterceptor(properties.isSupportCrossDomain() ? magicCorsFilter : null, authorizationInterceptorProvider.getIfAvailable(this::createAuthorizationInterceptor))) - .addPathPatterns("/**"); + if(!registerInterceptor){ + registerInterceptor = true; + registry.addInterceptor(new MagicWebRequestInterceptor(properties.isSupportCrossDomain() ? magicCorsFilter : null, authorizationInterceptorProvider.getIfAvailable(this::createAuthorizationInterceptor))) + .addPathPatterns("/**"); + } } @@ -627,7 +637,8 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry webSocketHandlerRegistry) { String web = properties.getWeb(); - if (web != null) { + if (web != null && !registerWebsocket) { + registerWebsocket = true; MagicWebSocketDispatcher dispatcher = new MagicWebSocketDispatcher(properties.getClusterConfig().getInstanceId(), magicNotifyServiceProvider.getObject(), Arrays.asList( new MagicDebugHandler() ));