依赖
<!--swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!--swagger-ui.html模式 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <!--doc.html模式 --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.2</version> </dependency>
配置端口号
server.port=1313#启动会报错(起因:Springfox应用的门路匹配基于AntPathMatcher,而Spring Boot 2.6.X应用的是PathPatternMatcher。)#org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerExceptionspring.mvc.pathmatch.matching-strategy=ant_path_matcher
启动类增加注解( @EnableSwagger2 )
@EnableSwagger2@SpringBootApplicationpublic class JavaApplication { public static void main(String[] args) { SpringApplication.run(JavaApplication.class, args); }}
注解介绍
/** * Api注解:定义接口名称 * ApiOperation注解:定义方法名称 * ApiImplicitParam注解:定义param参数的各个属性 * * ApiModel注解:定义对象名称 * ApiModelProperty注解:定义参数名称 */@Api(tags = "测试接口")@RestControllerpublic class TestController { @ApiOperation(value = "测试01") @GetMapping("/test01") public String Test01(){ return "Test01"; }}
拜访地址:http://localhost:1313/swagger...
或者http://localhost:1313/doc.html
新增配置类
/** * @EnableSwagger2:开启swagger,此处也须要应用。 * @Profile("swagger"):指定组件在哪个环境的状况下能力被注册到容器中,不指定,任何环境下都能注册这个组件。 * * spring.profiles.active=swagger * */@Configuration@EnableSwagger2@Profile("swagger")public class SwaggerConfig { /** * 创立API利用 apiInfo() 减少API相干信息 * 通过select()函数返回一个ApiSelectorBuilder实例,用来管制哪些接口裸露给Swagger来展示, * 本例采纳指定扫描的包门路来定义指定要建设API的目录。 * * @return */ @Bean public Docket createRestApi() { // 抉择那些门路和api会生成document return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).pathMapping("/").select() // 对所有api进行监控 .apis(RequestHandlerSelectors.any()) .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)).build() // 配置token .globalOperationParameters(setHeaderToken()); } /** * 配置token * * @return */ private List<Parameter> setHeaderToken() { ParameterBuilder tokenPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<>(); tokenPar.name("Authorization").description("token").modelRef(new ModelRef("string")).parameterType("header") .required(false).build(); pars.add(tokenPar.build()); return pars; } /** * 创立该API的根本信息(这些根本信息会展当初文档页面中) * * @return */ private ApiInfo apiInfo() { return new ApiInfoBuilder().title("测试接口文档").description("测试接口文档").version("1.0").build(); }}