77import org .springframework .beans .factory .BeanFactory ;
88import org .springframework .beans .factory .BeanFactoryAware ;
99import org .springframework .beans .factory .config .ConfigurableBeanFactory ;
10+ import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
1011import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
1112import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
1213import org .springframework .context .annotation .Bean ;
1314import org .springframework .context .annotation .Configuration ;
1415import org .springframework .context .annotation .Import ;
1516import org .springframework .util .StringUtils ;
17+ import org .springframework .web .bind .annotation .RequestMethod ;
1618import springfox .documentation .builders .*;
1719import springfox .documentation .schema .ModelRef ;
1820import springfox .documentation .service .ApiInfo ;
1921import springfox .documentation .service .Contact ;
2022import springfox .documentation .service .Parameter ;
2123import springfox .documentation .service .ResponseMessage ;
2224import springfox .documentation .spi .DocumentationType ;
23- import org .springframework .web .bind .annotation .RequestMethod ;
2425import springfox .documentation .spring .web .plugins .Docket ;
26+ import springfox .documentation .swagger .web .UiConfiguration ;
2527
2628import java .util .*;
2729import java .util .stream .Collectors ;
@@ -45,8 +47,22 @@ public SwaggerProperties swaggerProperties() {
4547 return new SwaggerProperties ();
4648 }
4749
50+ @ Bean
51+ public UiConfiguration uiConfiguration (SwaggerProperties swaggerProperties ) {
52+ return new UiConfiguration (
53+ swaggerProperties .getUiConfig ().getValidatorUrl (),// url
54+ swaggerProperties .getUiConfig ().getDocExpansion (), // docExpansion => none | list
55+ swaggerProperties .getUiConfig ().getApiSorter (), // apiSorter => alpha
56+ swaggerProperties .getUiConfig ().getDefaultModelRendering (), // defaultModelRendering => schema
57+ swaggerProperties .getUiConfig ().getSubmitMethods ().split ("," ),
58+ swaggerProperties .getUiConfig ().getJsonEditor (), // enableJsonEditor => true | false
59+ swaggerProperties .getUiConfig ().getShowRequestHeaders (), // showRequestHeaders => true | false
60+ swaggerProperties .getUiConfig ().getRequestTimeout ()); // requestTimeout => in milliseconds, defaults to null (uses jquery xh timeout)
61+ }
62+
4863 @ Bean
4964 @ ConditionalOnMissingBean
65+ @ ConditionalOnBean (UiConfiguration .class )
5066 @ ConditionalOnProperty (name = "swagger.enabled" , matchIfMissing = true )
5167 public List <Docket > createRestApi (SwaggerProperties swaggerProperties ) {
5268 ConfigurableBeanFactory configurableBeanFactory = (ConfigurableBeanFactory ) beanFactory ;
0 commit comments