mirror of https://github.com/elunez/eladmin
fix swagger compatibility with springboot
parent
2a879115bc
commit
ae4284f189
|
@ -86,6 +86,10 @@
|
||||||
<artifactId>oshi-core</artifactId>
|
<artifactId>oshi-core</artifactId>
|
||||||
<version>6.1.4</version>
|
<version>6.1.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<!-- 打包 -->
|
<!-- 打包 -->
|
||||||
|
|
|
@ -19,14 +19,32 @@ import io.swagger.annotations.Api;
|
||||||
import me.zhengjie.annotation.rest.AnonymousGetMapping;
|
import me.zhengjie.annotation.rest.AnonymousGetMapping;
|
||||||
import me.zhengjie.utils.SpringContextHolder;
|
import me.zhengjie.utils.SpringContextHolder;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties;
|
||||||
|
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
|
||||||
|
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
|
||||||
|
import org.springframework.boot.actuate.endpoint.ExposableEndpoint;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.EndpointMapping;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier;
|
||||||
|
import org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.context.ApplicationPidFileWriter;
|
import org.springframework.boot.context.ApplicationPidFileWriter;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
||||||
import org.springframework.scheduling.annotation.EnableAsync;
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开启审计功能 -> @EnableJpaAuditing
|
* 开启审计功能 -> @EnableJpaAuditing
|
||||||
*
|
*
|
||||||
|
@ -63,4 +81,35 @@ public class AppRun {
|
||||||
public String index() {
|
public String index() {
|
||||||
return "Backend service started successfully";
|
return "Backend service started successfully";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(
|
||||||
|
WebEndpointsSupplier webEndpointsSupplier,
|
||||||
|
ServletEndpointsSupplier servletEndpointsSupplier,
|
||||||
|
ControllerEndpointsSupplier controllerEndpointsSupplier,
|
||||||
|
EndpointMediaTypes endpointMediaTypes,
|
||||||
|
CorsEndpointProperties corsProperties,
|
||||||
|
WebEndpointProperties webEndpointProperties,
|
||||||
|
Environment environment) {
|
||||||
|
List<ExposableEndpoint<?>> allEndpoints = new ArrayList();
|
||||||
|
Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
|
||||||
|
allEndpoints.addAll(webEndpoints);
|
||||||
|
allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
|
||||||
|
allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
|
||||||
|
String basePath = webEndpointProperties.getBasePath();
|
||||||
|
EndpointMapping endpointMapping = new EndpointMapping(basePath);
|
||||||
|
boolean shouldRegisterLinksMapping = this.shouldRegisterLinksMapping(
|
||||||
|
webEndpointProperties, environment, basePath);
|
||||||
|
return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints,
|
||||||
|
endpointMediaTypes, corsProperties.toCorsConfiguration(),
|
||||||
|
new EndpointLinksResolver(allEndpoints, basePath),
|
||||||
|
shouldRegisterLinksMapping, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean shouldRegisterLinksMapping(WebEndpointProperties webEndpointProperties,
|
||||||
|
Environment environment, String basePath) {
|
||||||
|
return webEndpointProperties.getDiscovery().isEnabled() &&
|
||||||
|
(StringUtils.hasText(basePath) ||
|
||||||
|
ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue