tech.mhuang.pacebox.springboot.autoconfiguration.swagger.SwaggerAutoConfiguration Maven / Gradle / Ivy
The newest version!
package tech.mhuang.pacebox.springboot.autoconfiguration.swagger;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import tech.mhuang.pacebox.springboot.autoconfiguration.ConfigConsts;
/**
* swagger自动注册
*
* @author mhuang
* @since 1.0.0
*/
@Configuration
@ConditionalOnProperty(prefix = ConfigConsts.SWAGGER, name = ConfigConsts.ENABLE, havingValue = ConfigConsts.TRUE)
@EnableConfigurationProperties(SwaggerProperties.class)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
public class SwaggerAutoConfiguration {
private final SwaggerProperties properties;
public SwaggerAutoConfiguration(SwaggerProperties properties) {
this.properties = properties;
}
/**
* create api info
*
* @return openApi
*/
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI().info(new Info()
.title(this.properties.getTitle())
.description(this.properties.getDescription())
.version(this.properties.getVersion())
.license(new License().url(this.properties.getLicenseUrl()).name(this.properties.getLicenseName()))
.termsOfService(this.properties.getTermsOfServiceUrl())
);
}
}