一、在启动类中添加如下代码:(目的是为了打印输出swagger
的地址等)
注解:@Slf4j
实现接口:CommandLineRunner
依赖注入:
@Autowired private Environment environment;
@Override public void run(String... strings) throws Exception { try { String port = Optional.ofNullable(environment.getProperty("server.port")).orElse("8080"); log.info("\n------------------------环境信息---------------------------\n\t" + "Application '{}' is running! Access URLs:\n\t" + "Local : \thttp://{}:{}\n\t" + "Swagger: \thttp://{}:{}/doc.html\n\t" + "Profile(s): \t{}\n----------------------------------------------------------", environment.getProperty("spring.application.name"), InetAddress.getLocalHost().getHostAddress(), port, InetAddress.getLocalHost().getHostAddress(), port, Arrays.toString(environment.getActiveProfiles())); } catch (UnknownHostException e) { e.printStackTrace(); } }
启动类全部代码如下:
/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.CommonConstant; import org.springblade.core.launch.BladeApplication; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.web.client.RestTemplate; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Arrays; import java.util.Optional; /** * 启动器 * * @author Chill */ @Slf4j @EnableScheduling @SpringBootApplication public class Application implements CommandLineRunner { @Autowired private Environment environment; @Bean public RestTemplate restTemplate(RestTemplateBuilder builder){ return builder.build(); } public static void main(String[] args) { BladeApplication.run(CommonConstant.APPLICATION_NAME, Application.class, args); } @Override public void run(String... strings) throws Exception { try { String port = Optional.ofNullable(environment.getProperty("server.port")).orElse("8080"); log.info("\n------------------------环境信息---------------------------\n\t" + "Application '{}' is running! Access URLs:\n\t" + "Local : \thttp://{}:{}\n\t" + "Swagger: \thttp://{}:{}/doc.html\n\t" + "Profile(s): \t{}\n----------------------------------------------------------", environment.getProperty("spring.application.name"), InetAddress.getLocalHost().getHostAddress(), port, InetAddress.getLocalHost().getHostAddress(), port, Arrays.toString(environment.getActiveProfiles())); } catch (UnknownHostException e) { e.printStackTrace(); } } }
二、找到需要生成Swagger接口文档的控制器类(eg:ActiveCodeController):
1.在控制器类的上面添加注解:
@Api(value = "卡信息", tags = "卡信息接口")
value
里面写的是:这个控制器的描述,或者功能
如图所示:
2.在需要生成文档的方法上写注解:
@ApiOperation(value = "详情", notes = "传入cardInfo")
value
:接口的功能或者描述
notes
:传入参数的描述
全部代码:
/** * 详情 */ @GetMapping("/detail") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入cardInfo") public R<CardInfo> detail(CardInfo cardInfo) { CardInfo detail = cardInfoService.getOne(Condition.getQueryWrapper(cardInfo)); return R.data(detail); }
或者:
/** * 分页 卡信息 */ @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入cardInfo") public R<IPage<CardInfo>> list(CardInfo cardInfo, Query query) { IPage<CardInfo> pages = cardInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(cardInfo)); return R.data(pages); }
其他的可以自己补充。
三、配置Swagger
的配置类,类路径:BladeX-Boot/src/main/java/org/springblade/common/config/SwaggerConfiguration.java
加入如下代码:
@Bean public Docket developerDocket() { return docket("开发者中心接口", Collections.singletonList(AppConstant.BASE_PACKAGES + ".modules.developer")); }
【开发者接口】:就是Swagger的接口功能的名称
【.modules.developer】:让Swagger扫描哪个包,指向包就可以。
然后启动服务,启动完成之后,查看控制台打印的Swagger地址。
点击地址就可以查看