1、依赖包导入
<!-- Knife4jSpringBoot依赖包 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
2、自动配置引入
@EnableKnife4j
@EnableSwagger2
@EnableConfigurationProperties({ SwaggerProperties.class })
@Import({ BeanValidatorPluginsConfiguration.class })
@Configuration
public class SwaggerAutoConfiguration implements BeanFactoryAware {
private static final String EMPTY = "";
private static final String AUTHORIZATION_KEY = "Authorization";
private static final List<String> DEFAULT_EXCLUDE_PATH = Arrays.asList("/error", "/actuator/**");
@Autowired
private SwaggerProperties swaggerProperties;
private BeanFactory beanFactory;
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
@Bean
@ConditionalOnMissingBean
public List<Docket> dockets(SwaggerProperties swaggerProperties) {
ConfigurableBeanFactory configurableBeanFactory = (ConfigurableBeanFactory) beanFactory;
List<Docket> dockets = new ArrayList<Docket>();
Map<String, SwaggerProperties.GroupConfig> groupConfigs = swaggerProperties.getGroupConfigs();
if (null == groupConfigs || groupConfigs.isEmpty()) {
Docket docket = createDefaultDocket(swaggerProperties);
configurableBeanFactory.registerSingleton("defaultDocket", docket);
dockets.add(docket);
} else {
for (Map.Entry<String, SwaggerProperties.GroupConfig> entry : groupConfigs.entrySet()) {
Docket docket = createGroupDocket(swaggerProperties, entry.getKey(), entry.getValue());
configurableBeanFactory.registerSingleton(String.format("%sDocket", entry.getKey()), docket);
dockets.add(docket);
}
}
return dockets;
}
/**
* @param apiInfoBuilder
* @return builder
*/
protected ApiInfoBuilder apiInfoBuilder(ApiInfoBuilder apiInfoBuilder) {
return apiInfoBuilder;
}
/**
* @param apiSelectorBuilder
* @return builder
*/
protected ApiSelectorBuilder apiSelectorBuilder(ApiSelectorBuilder apiSelectorBuilder) {
return apiSelectorBuilder;
}
protected Docket docket(String title, String basePackage) {
return docket(title, EMPTY, basePackage);
}
protected Docket docket(String title, String version, String basePackage) {
return docket(title, version, basePackage, EMPTY);
}
protected Docket docket(String title, String version, String basePackage, String groupName) {
return docket(title, String.format("%s document", title).toLowerCase(), version, basePackage, groupName);
}
protected Docket docket(String title, String description, String version, String basePackage, String groupName, String... paths) {