一、在common子模块下创建Swagger配置类
1. guli_parent->common子模块->service_base子模块->SwaggerConfig配置类
- common子模块是pom类型
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
- service_base子模块是jar类型
2. SwaggerConfig配置类
@Configuration //注解表示是配置类
@EnableSwagger2 //开启Swagger
public class SwaggerConfig {
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("webApi")
.apiInfo(webApiInfo())
.select()
.paths(Predicates.not(PathSelectors.regex("/admin/.*")))
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.build();
}
private ApiInfo webApiInfo(){
return new ApiInfoBuilder()
.title("在线教育API文档")
.description("本文档描述了在线教育微服务接口定义")
.version("0.0.1-SNAPSHOT")
.contact(new Contact("java","http://atguigu.com","123456@qq.com"))
.build();
}
}
二、在其他模块(如service模块)中引入Swagger配置类
1. 在service模块pom文件中引入Swagger所在模块
<!--service 的pom文件加入Swagger配置类所在的包 -->
<dependency>
<groupId>com.atguigu</groupId>
<artifactId>service_base</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
2. 在service_edu启动类上添加注解或在service_edu配置类上添加导入类似Swagger其他模块的配置类
我们知道配置类需要在启动时加载,所以需要交给Spring IOC管理,即在启动时需要扫描到配置类所在的包。一般有两种方式处理:第一在启动类上使用@ComponentScan注解
//"com.atredhorse"为Swagger配置类的包路径,
//"com.atguigu"自身包路径,必须加入,否则IOC管理不到自身的包
@SpringBootApplication
@ComponentScan(basePackages = {"com.atredhorse","com.atguigu"})
public class EduServiceApplication {
public static void main(String[] args){
SpringApplication.run(EduServiceApplication.class,args);
}
}
第二:在service_edu配置类中导入Swagger配置类路径
//调用模块的配置类,导入Swagger配置类的包路径
@Configuration
@Import(value = {SwaggerConfig.class})
public class SpringConfig {
}
这样service_edu就可以使用Swagger2了。访问http://localhost:8001/swagger-ui.html,8001是工程的port。