添加依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.9</version>
</dependency>
添加配置文件
package com.ldj.common.config;
import com.google.common.base.Function;
import com.google.common.base.Optional;
import org.springframework.context.annotation.Bean;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.function.Predicate;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
private static final String splitor = ";";
@Bean
public Docket dockerBean() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(serverApiInfo())
.groupName("资源中心")
.select()
.apis(basePackage(
"com.ldj.common.base.bsc.controller"+splitor+
"com.ldj.model.controller"+splitor+
"com.ldj.data.controller"+splitor+
"com.ldj.ops.controller"+splitor+
"com.ldjservice.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
private ApiInfo serverApiInfo() {
return new ApiInfoBuilder()
.title("资源中心")
.description("资源中心接口文档")
.contact(new Contact("ldj", "**", ""))
.version("1.0")
.build();
}
public static Predicate<RequestHandler> basePackage(final String basePackage) {
return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true);
}
private static Function<Class<?>, Boolean> handlerPackage(final String basePackage) {
return input -> {
for (String strPackage : basePackage.split(splitor)) {
boolean isMatch = input.getPackage().getName().startsWith(strPackage);
if (isMatch) {
return true;
}
}
return false;
};
}
private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
return Optional.fromNullable(input.declaringClass());
}
}
启动类启用
@MapperScan(basePackages = {"com.spring.ldj.mapper"})
@SpringBootApplication
@EnableKnife4j
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
控制层
@RestController
@RequestMapping("/goods")
@Api("商品模块")
public class GoodsController {
@Autowired
private GoodsService goodsService;
@ApiOperation("添加商品")
@PostMapping("/save")
public ResultForm save(Goods goods){
goodsService.save(goods);
return new ResultForm(true,"添加成功");
}
@ApiOperation("修改商品")
@PostMapping("/update")
public ResultForm update(Goods goods){
goodsService.update(goods);
return new ResultForm(true,"修改成功");
}
}