Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
signal
traffic-signal-platform
Commits
331fc433
Commit
331fc433
authored
Jun 12, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 解决包问题
parent
c0856a1e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
52 deletions
+44
-52
Swagger2.java
...-service/src/main/java/net/wanji/web/config/Swagger2.java
+44
-52
No files found.
signal-control-service/src/main/java/net/wanji/web/config/Swagger2.java
View file @
331fc433
package
net
.
wanji
.
web
.
config
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.config.BeanPostProcessor
;
import
org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration
;
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.*
;
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.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.util.ReflectionUtils
;
import
org.springframework.core.env.Environment
;
import
org.springframework.util.StringUtils
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
...
...
@@ -13,12 +19,11 @@ import springfox.documentation.service.ApiInfo;
import
springfox.documentation.service.Contact
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
import
java.lang.reflect.Field
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Configuration
@EnableSwagger2
...
...
@@ -49,52 +54,39 @@ public class Swagger2 {
.
build
();
}
// @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));
// }
@Bean
public
static
BeanPostProcessor
springfoxHandlerProviderBeanPostProcessor
()
{
return
new
BeanPostProcessor
()
{
@Override
public
Object
postProcessAfterInitialization
(
Object
bean
,
String
beanName
)
throws
BeansException
{
if
(
bean
instanceof
WebMvcRequestHandlerProvider
||
bean
instanceof
WebFluxAutoConfiguration
)
{
customizeSpringfoxHandlerMappings
(
getHandlerMappings
(
bean
));
}
return
bean
;
public
WebMvcEndpointHandlerMapping
webEndpointServletHandlerMapping
(
WebEndpointsSupplier
webEndpointsSupplier
,
ServletEndpointsSupplier
servletEndpointsSupplier
,
ControllerEndpointsSupplier
controllerEndpointsSupplier
,
EndpointMediaTypes
endpointMediaTypes
,
CorsEndpointProperties
corsProperties
,
WebEndpointProperties
webEndpointProperties
,
Environment
environment
)
{
List
<
ExposableEndpoint
<?>>
allEndpoints
=
new
ArrayList
<
ExposableEndpoint
<?>>();
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
void
customizeSpringfoxHandlerMappings
(
List
mappings
)
{
List
copy
=
(
List
)
mappings
.
stream
()
.
filter
(
mapping
->
mapping
==
null
)
.
collect
(
Collectors
.
toList
());
mappings
.
clear
();
mappings
.
addAll
(
copy
);
private
boolean
shouldRegisterLinksMapping
(
WebEndpointProperties
webEndpointProperties
,
Environment
environment
,
String
basePath
)
{
return
webEndpointProperties
.
getDiscovery
().
isEnabled
()
&&
(
StringUtils
.
hasText
(
basePath
)
||
ManagementPortType
.
get
(
environment
).
equals
(
ManagementPortType
.
DIFFERENT
));
}
@SuppressWarnings
(
"unchecked"
)
private
List
getHandlerMappings
(
Object
bean
)
{
try
{
Field
field
=
ReflectionUtils
.
findField
(
bean
.
getClass
(),
"handlerMappings"
);
field
.
setAccessible
(
true
);
return
(
List
)
field
.
get
(
bean
);
}
catch
(
IllegalArgumentException
|
IllegalAccessException
e
)
{
throw
new
IllegalStateException
(
e
);
}
}
};
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment