diff --git a/pom.xml b/pom.xml
index 6e6cdb651d900511884a6b97dbc72f5af3d71e10..c715765c02f61c6d1161020fce158564bba6115c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
com.gitee.starblues
spring-brick-parent
pom
- 3.0.1
+ 3.0.2
spring-brick-common
diff --git a/spring-brick-bootstrap/pom.xml b/spring-brick-bootstrap/pom.xml
index 5e1c5c6a4ce96373b51e0f22ce232fe3f82cddc9..730adc0fc110be1b5e129d048858d46bf3b76dfb 100644
--- a/spring-brick-bootstrap/pom.xml
+++ b/spring-brick-bootstrap/pom.xml
@@ -7,7 +7,7 @@
spring-brick-parent
com.gitee.starblues
- 3.0.1
+ 3.0.2
spring-brick-bootstrap
diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java
index 35eb69509929b109232c4e7d8ffe141ba52c343c..0321276c98ebb22c5e19fe62a551f7e2ff7018af 100644
--- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java
+++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java
@@ -46,10 +46,4 @@ public class EmptyMainApplicationContext implements MainApplicationContext {
return Collections.emptyMap();
}
- @Override
- public ClassLoader getClassLoader() {
- return EmptyMainApplicationContext.class.getClassLoader();
- }
-
-
}
diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java
index c46e5f620dc5cd40e42cca43844a988b117df61f..59a700261526741a46a6065cbf5bcf4ebe4cd30b 100644
--- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java
+++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java
@@ -103,7 +103,7 @@ public class PluginSpringApplication extends SpringApplication {
return super.run(args);
} catch (Exception e) {
pluginProcessor.failure(processorContext);
- logger.error("启动插件[{}]失败. {}",
+ logger.debug("启动插件[{}]失败. {}",
processorContext.getPluginDescriptor().getPluginId(),
e.getMessage(), e);
throw new RuntimeException(e);
diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java
index 48bb8fb2c11b3db0d71ef30f5f42a4540ec4c764..1ecd40b72597b378be61c274161f94a127f3e38e 100644
--- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java
+++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java
@@ -24,19 +24,20 @@ import com.gitee.starblues.bootstrap.processor.interceptor.PluginInterceptorRegi
import com.gitee.starblues.bootstrap.utils.SpringBeanUtils;
import com.gitee.starblues.integration.IntegrationConfiguration;
import com.gitee.starblues.spring.MainApplicationContext;
-import com.gitee.starblues.utils.ClassUtils;
-import com.gitee.starblues.utils.OrderUtils;
-import com.gitee.starblues.utils.PluginConfigUtils;
-import com.gitee.starblues.utils.SpringBeanCustomUtils;
+import com.gitee.starblues.utils.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.web.context.request.WebRequestInterceptor;
import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.handler.AbstractHandlerMapping;
import org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* 插件拦截器处理者
@@ -48,67 +49,79 @@ public class PluginInterceptorsProcessor implements SpringPluginProcessor {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final static String INTERCEPTORS = "pluginHandlerInterceptors";
- private AbstractHandlerMapping handlerMapping;
+ private List handlerMappings;
@Override
public void initialize(ProcessorContext context) throws ProcessorException {
MainApplicationContext applicationContext = context.getMainApplicationContext();
- handlerMapping = SpringBeanCustomUtils.getExistBean(applicationContext,
+ handlerMappings = SpringBeanCustomUtils.getBeans(applicationContext,
AbstractHandlerMapping.class);
- if(handlerMapping == null){
+ if(handlerMappings.isEmpty()){
logger.warn("Not found AbstractHandlerMapping, Plugin interceptor can't use");
}
}
@Override
public void refreshAfter(ProcessorContext context) throws ProcessorException {
- if(handlerMapping == null){
+ if(handlerMappings.isEmpty()){
return;
}
List interceptorRegisters = SpringBeanUtils.getBeans(
context.getApplicationContext(),
PluginInterceptorRegister.class);
- List interceptorsObjects = new ArrayList<>();
- List adaptedInterceptors = getAdaptedInterceptors();
- if(adaptedInterceptors == null){
+
+ Map> handlerInterceptorMap = new HashMap<>();
+ for (AbstractHandlerMapping handlerMapping : handlerMappings) {
+ List adaptedInterceptors = getAdaptedInterceptors(handlerMapping);
+ if(!ObjectUtils.isEmpty(adaptedInterceptors)){
+ handlerInterceptorMap.put(handlerMapping, adaptedInterceptors);
+ }
+ }
+ if(handlerInterceptorMap.isEmpty()){
+ logger.debug("handlerInterceptorMap is empty");
return;
}
IntegrationConfiguration configuration = context.getConfiguration();
String pluginId = context.getPluginDescriptor().getPluginId();
String pluginRestPrefix = PluginConfigUtils.getPluginRestPrefix(configuration, pluginId);
+
+ List storeInterceptors = new ArrayList<>();
for (PluginInterceptorRegister interceptorRegister : interceptorRegisters) {
PluginInterceptorRegistry interceptorRegistry = new PluginInterceptorRegistry(pluginRestPrefix);
interceptorRegister.registry(interceptorRegistry);
- List