Skip to content

Commit

Permalink
perf($Starter): abstract Swagger 2 configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnymillergh committed Jan 29, 2021
1 parent e88b4d6 commit 5ae8a56
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,6 @@
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

import javax.annotation.PostConstruct;
import java.io.File;
Expand All @@ -71,7 +67,7 @@
@ConditionalOnWebApplication
@AutoConfigureOrder(Integer.MIN_VALUE)
@EnableConfigurationProperties(MafConfiguration.class)
@Import({MyBatisPlusConfiguration.class})
@Import({MyBatisPlusConfiguration.class, Swagger2Configuration.class})
public class MafAutoConfiguration {
@PostConstruct
public void postConstruct() {
Expand Down Expand Up @@ -159,25 +155,6 @@ public HttpApiResourceRemoteApiController httpApiResourceRemoteController(MafCon
return new HttpApiResourceRemoteApiController(mafConfiguration, httpApiScanHelper);
}

@Bean
@ConditionalOnProperty(value = "maf.configuration.swagger-disabled", havingValue = "false")
public Swagger2Configuration swagger2Configuration(MafProjectProperty mafProjectProperty) {
log.warn("Initial bean: '{}'", Swagger2Configuration.class.getSimpleName());
return new Swagger2Configuration(mafProjectProperty);
}

@Bean
@ConditionalOnProperty(value = "maf.configuration.swagger-disabled", havingValue = "false")
public Docket docket(Swagger2Configuration swagger2Configuration, MafProjectProperty mafProjectProperty) {
log.warn("Initial bean: '{}'", Docket.class.getSimpleName());
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(swagger2Configuration.apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(mafProjectProperty.getBasePackage()))
.paths(PathSelectors.any())
.build();
}

@Bean
public CommonService commonService(MafProjectProperty mafProjectProperty) {
log.warn("Initial bean: '{}'", CommonServiceImpl.class.getSimpleName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public class MafConfiguration {
* Swagger disabled. true: disabled; false: enabled.
*/
@NotNull
private Boolean swaggerDisabled;
private Boolean swaggerDisabled = false;

/**
* Flatten ignored urls string [ ].
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,16 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
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.swagger2.annotations.EnableSwagger2;

import javax.annotation.PostConstruct;
Expand All @@ -24,6 +30,7 @@
@Configuration
@EnableSwagger2
@RequiredArgsConstructor
@ConditionalOnProperty(value = "maf.configuration.swagger-disabled", havingValue = "false")
public class Swagger2Configuration {
private final MafProjectProperty mafProjectProperty;

Expand Down Expand Up @@ -51,4 +58,15 @@ public ApiInfo apiInfo() {
.version(version)
.build();
}

@Bean
public Docket docket(Swagger2Configuration swagger2Configuration, MafProjectProperty mafProjectProperty) {
log.warn("Initial bean: '{}'", Docket.class.getSimpleName());
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(swagger2Configuration.apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(mafProjectProperty.getBasePackage()))
.paths(PathSelectors.any())
.build();
}
}

0 comments on commit 5ae8a56

Please sign in to comment.