RuoYi
3 years ago
10 changed files with 306 additions and 236 deletions
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.common.datasource.env; |
||||
|
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.env.EnvironmentPostProcessor; |
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.core.env.ConfigurableEnvironment; |
||||
|
||||
/** |
||||
* seata 在 springboot 2.6.x 存在循环引用问题的处理 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class ApplicationSeataInitializer implements EnvironmentPostProcessor, Ordered |
||||
{ |
||||
@Override |
||||
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) |
||||
{ |
||||
System.setProperty("spring.main.allow-circular-references", "true"); |
||||
} |
||||
|
||||
@Override |
||||
public int getOrder() |
||||
{ |
||||
return Ordered.LOWEST_PRECEDENCE; |
||||
} |
||||
} |
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
org.springframework.boot.env.EnvironmentPostProcessor=\ |
||||
com.ruoyi.common.datasource.env.ApplicationSeataInitializer |
@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
|
||||
package com.ruoyi.common.swagger.config; |
||||
|
||||
import org.springframework.beans.BeansException; |
||||
import org.springframework.beans.factory.config.BeanPostProcessor; |
||||
import org.springframework.stereotype.Component; |
||||
import org.springframework.util.ReflectionUtils; |
||||
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; |
||||
import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; |
||||
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; |
||||
import java.lang.reflect.Field; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* swagger 在 springboot 2.6.x 不兼容问题的处理 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
@Component |
||||
public class SwaggerBeanPostProcessor implements BeanPostProcessor |
||||
{ |
||||
@Override |
||||
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException |
||||
{ |
||||
if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) |
||||
{ |
||||
customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); |
||||
} |
||||
return bean; |
||||
} |
||||
|
||||
private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) |
||||
{ |
||||
List<T> copy = mappings.stream().filter(mapping -> mapping.getPatternParser() == null) |
||||
.collect(Collectors.toList()); |
||||
mappings.clear(); |
||||
mappings.addAll(copy); |
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) |
||||
{ |
||||
try |
||||
{ |
||||
Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); |
||||
field.setAccessible(true); |
||||
return (List<RequestMappingInfoHandlerMapping>) field.get(bean); |
||||
} |
||||
catch (IllegalArgumentException | IllegalAccessException e) |
||||
{ |
||||
throw new IllegalStateException(e); |
||||
} |
||||
} |
||||
} |
@ -1,3 +1,4 @@
@@ -1,3 +1,4 @@
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ |
||||
com.ruoyi.common.swagger.config.SwaggerAutoConfiguration,\ |
||||
com.ruoyi.common.swagger.config.SwaggerWebConfiguration |
||||
com.ruoyi.common.swagger.config.SwaggerWebConfiguration,\ |
||||
com.ruoyi.common.swagger.config.SwaggerBeanPostProcessor |
Loading…
Reference in new issue