首先pom.xml添加依賴(lài)?
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
在Application.java同級(jí)創(chuàng)建Swagger2的配置類(lèi)Swagger2
@Configuration
@EnableSwagger2
publicclassSwagger2{
@Bean
publicDocketcreateRestApi(){
returnnewDocket(DocumentationType.SWAGGER_2)
? ? ? ? ? ? ? ? .apiInfo(apiInfo())
? ? ? ? ? ? ? ? .select()
????????????????.apis(RequestHandlerSelectors.basePackage("com.didispace.web"))
? ? ? ? ? ? ? ? .paths(PathSelectors.any())
? ? ? ? ? ? ? ? .build();
? ? }
privateApiInfoapiInfo(){
returnnewApiInfoBuilder()
.title("Spring Boot中使用Swagger2構(gòu)建RESTful APIs")
.description("更多Spring Boot相關(guān)文章請(qǐng)關(guān)注:廣告鏈接")
.termsOfServiceUrl(" 廣告鏈接? url")
.contact("XXX")
.version("1.0")
? ? ? ? ? ? ? ? .build();
? ? }
}
@Configuration是用來(lái)讓springboot來(lái)加載該配置的
然后@EnableSwagger2這個(gè)是使用swageer注解。
@RestController
@RequestMapping(value="/users")// 通過(guò)這里配置使下面的映射都在/users下,可去除
publicclassUserController{
staticMap users = Collections.synchronizedMap(newHashMap());
@ApiOperation(value="獲取用戶(hù)列表", notes="")
@RequestMapping(value={""}, method=RequestMethod.GET)
publicListgetUserList(){
List r =newArrayList(users.values());
returnr;
? ? }
@ApiOperation(value="創(chuàng)建用戶(hù)", notes="根據(jù)User對(duì)象創(chuàng)建用戶(hù)")
@ApiImplicitParam(name ="user", value ="用戶(hù)詳細(xì)實(shí)體user", required =true, dataType ="User")
@RequestMapping(value="", method=RequestMethod.POST)
publicStringpostUser(@RequestBody User user){
? ? ? ? users.put(user.getId(), user);
return"success";
? ? }
@ApiOperation(value="獲取用戶(hù)詳細(xì)信息", notes="根據(jù)url的id來(lái)獲取用戶(hù)詳細(xì)信息")
@ApiImplicitParam(name ="id", value ="用戶(hù)ID", required =true, dataType ="Long")
@RequestMapping(value="/{id}", method=RequestMethod.GET)
publicUsergetUser(@PathVariable Long id){
returnusers.get(id);
? ? }
@ApiOperation(value="更新用戶(hù)詳細(xì)信息", notes="根據(jù)url的id來(lái)指定更新對(duì)象,并根據(jù)傳過(guò)來(lái)的user信息來(lái)更新用戶(hù)詳細(xì)信息")
@ApiImplicitParams({
@ApiImplicitParam(name ="id", value ="用戶(hù)ID", required =true, dataType ="Long"),
@ApiImplicitParam(name ="user", value ="用戶(hù)詳細(xì)實(shí)體user", required =true, dataType ="User")
? ? })
@RequestMapping(value="/{id}", method=RequestMethod.PUT)
publicStringputUser(@PathVariable Long id, @RequestBody User user){
? ? ? ? User u = users.get(id);
? ? ? ? u.setName(user.getName());
? ? ? ? u.setAge(user.getAge());
? ? ? ? users.put(id, u);
return"success";
? ? }
@ApiOperation(value="刪除用戶(hù)", notes="根據(jù)url的id來(lái)指定刪除對(duì)象")
@ApiImplicitParam(name ="id", value ="用戶(hù)ID", required =true, dataType ="Long")
@RequestMapping(value="/{id}", method=RequestMethod.DELETE)
publicStringdeleteUser(@PathVariable Long id){
? ? ? ? users.remove(id);
return"success";
? ? }
}
代碼部分結(jié)束,然后迫不及待的去訪問(wèn)http://localhost:8080/swagger-ui.html,會(huì)報(bào)這個(gè)錯(cuò)


說(shuō)明 /swagger-ui.html 還沒(méi)有映射到我們下載的swagger。

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
????????????????registry.addResourceHandler("swagger-ui.html")
? ? ? ? ? ? ? ? .addResourceLocations("classpath:/META-INF/resources/");
}
最后自定義的 類(lèi) (繼承WebMvcConfigurerAdapter)類(lèi),生效的