فهرست منبع

close #I42UYG

mxd 3 سال پیش
والد
کامیت
413cebce03

+ 15 - 4
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()
 			));