基于idea15的SpringMVC集成Swagger(Maven篇)

对于像我这种web小白,想要集成这个功能又不懂maven走了很多弯路,搜索了很多资料,结果还是搞不得不清不楚,最后还是被我搞明白了。

1.    首先创建maven项目。new project选到maven,勾选create from archetype,然后在下面的项目列找到

org.apache.maven.archetype:maven-archetype-webapp

然后点next,项目名,包名字,一直next到finsh就可以了,在创建的项目中包含一个pom.xml的配置文件。如果本地没有maven的资源库,idea会马上进行自动下载,并且会提示问是否自动加载这些资源,我们选enable就可以了。如果没有选,需要手动完成,则右击pom.xml,找到maven->Reimport,就可以重新加载资源。

2.    配置pom.xml

2.1  配置springmvc的资源库

定义springmvc版本的属性,方便以后修改版本信息


   4.2.5.RELEASE

添加一对标签,并且在标签内部加入


    org.springframework
   spring-webmvc
    ${springmvc.version}
 
 
    org.springframework
    spring-orm
    ${springmvc.version}
  
  
     org.springframework
    spring-test
    ${springmvc.version}
     jar
     test


     org.slf4j
    slf4j-log4j12
     1.7.12


     commons-io
     commons-io
     2.0.1

当然,如果需要用httprequest这个对象不能少了配置tomcat


   org.apache.tomcat
   tomcat-servlet-api
    7.0.8
    provided

2.2  配置mybatis


     org.mybatis
     mybatis
     3.3.0
 
 
     org.mybatis
     mybatis-spring
     1.3.0
 
   
 
     mysql
     mysql-connector-java
     5.1.38
  

2.3  配置swagger


     com.mangofactory
     swagger-springmvc
     1.0.1


     com.fasterxml.jackson.dataformat
     jackson-dataformat-xml
     2.7.4


     com.fasterxml.jackson.core
     jackson-databind
     2.7.4

还需一个仓库


    
     jcenter-release
      jcenter
     http://oss.jfrog.org/artifactory/oss-release-local/
    
 

3 加入Springmvc项目

            加入自己的springmvc项目,注意非java文件放在src/main/resources目录下,编译后文件会在classpath下,还需要调整springmvc,mybatis文件的引用文件路径。

4加入swagger ui资源

            swaggerui 的资源开源在https://github.com/swagger-api/swagger-ui。下载这个库,把库中的dist文件复制到自己项目中webapp目录下。文件夹名字可以随意修改,但是这个路径就是访问api-docs路径。在dist的目录下找到index.html,打开找到一段代码,把下面这个

url ="http://petstore.swagger.io/v2/swagger.json";

替换成

url ="http://localhost:8080/api-docs";

在src中创建一个swagger配置java类

@Configuration
@EnableWebMvc
@EnableSwagger
@ComponentScan("com.myapp.controllers")
public class MySwaggerConfig {
 
  private SpringSwaggerConfig springSwaggerConfig;
 
  @Autowired
  public void setSpringSwaggerConfig(
SpringSwaggerConfig springSwaggerConfig) {
     this.springSwaggerConfig = springSwaggerConfig;
   }
 
  @Bean //Don't forget the @Bean annotation
  public SwaggerSpringMvcPlugin customImplementation(){
     return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
           .apiInfo(apiInfo())
           .includePatterns(".*pet.*");
   }
 
   private ApiInfo apiInfo() {
     ApiInfo apiInfo = new ApiInfo(
              "My Apps API Title",
              "My Apps APIDescription",
              "My Apps API terms ofservice",
              "My Apps API ContactEmail",
              "My Apps API LicenceType",
              "My Apps API LicenseURL"
       );
     return apiInfo;
    }
}

按照自己的需要它的内容。

然后在springmvc配置文件中引用这个bean。

并且设置html静态资源

5 调整controller forswagger

@Controller
@RequestMapping("/admin")
@Api(value = "admin") //写在contrller的@api注释是swagger用于将api分组,切记不要用中文,否则无法生成出文档
public class UserController {
 
   @RequestMapping(value = "/login",method = RequestMethod.POST)
   @ApiOperation(value = "登陆",httpMethod ="POST") //value可以写中文
   public String login(@ApiIgnore ModelMap modelMap //@apiignore表示忽略这个参数的输入,当然我们不需要客户端提交这个值
      , HttpServletRequest request
      , @ApiParam(required = true,value = "用户名")@RequestParam String username
      , @ApiParam(required = true,value = "密码")@RequestParam String pwd)
        throwsException{
                                    。。。。。。。。代码内容
      }
}


 

你可能感兴趣的:(Java)