SpringMVC專案接入Springfox
阿新 • • 發佈:2018-12-27
/* * Copyright (c) 2015. Lorem ipsum dolor sit amet, consectetur adipiscing elit. * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. * Vestibulum commodo. Ut rhoncus gravida arcu. */ import com.mangofactory.swagger.configuration.SpringSwaggerConfig; import com.mangofactory.swagger.models.dto.ApiInfo; import com.mangofactory.swagger.plugin.EnableSwagger; import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import java.io.File; /** * 使用註解的方式來掃描API * 無需在Spring的xml配置檔案來配置,由 @see @EnableWebMvc 代替 * <p/> * <p> @author 劉新宇 * <p/> * <p> @date 2015年4月26日 下午1:18:48 * <p> @version 0.0.1 */ @Configuration @EnableWebMvc @EnableSwagger public class SpringfoxConfig extends WebMvcConfigurerAdapter { /** * Project Name */ public static String PROJECT_NAME; static { String projectName = System.getProperty("user.dir"); if (projectName.contains("hotel")) { int end = projectName.indexOf(File.separator, projectName.indexOf("hotel")); PROJECT_NAME = projectName.substring(projectName.lastIndexOf(File.separator, projectName.indexOf("hotel")) + 1, end == -1 ? projectName.length() : end); } else { PROJECT_NAME = "hotel-server"; } } private SpringSwaggerConfig springSwaggerConfig; @Autowired public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) { this.springSwaggerConfig = springSwaggerConfig; } /** * 鏈式程式設計 來定製API樣式 * 後續會加上分組資訊 * * @return */ @Bean public SwaggerSpringMvcPlugin customImplementation() { return new SwaggerSpringMvcPlugin(this.springSwaggerConfig) .apiInfo(apiInfo()) .includePatterns(".*") .apiVersion("0.0.1"); //.swaggerGroup(PROJECT_NAME); } private ApiInfo apiInfo() { ApiInfo apiInfo = new ApiInfo( PROJECT_NAME + " API", PROJECT_NAME + " 後臺API文件", "http://127.0.0.1:9081/api", "[email protected]", "MTA License", "MTA API License URL" ); return apiInfo; } }