基于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版本的属性,方便以后修改版本信息

<properties>
   <springmvc.version>4.2.5.RELEASE<springmvc.version>
</properties>

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

<dependency>
    <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
    <version>${springmvc.version}</version>
 </dependency>
 <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${springmvc.version}</version>
  </dependency>
  <dependency>
     <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${springmvc.version}</version>
     <type>jar</type>
     <scope>test</scope>
</dependency>
<dependency>
     <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
     <version>1.7.12</version>
</dependency>
<dependency>
     <groupId>commons-io</groupId>
     <artifactId>commons-io</artifactId>
     <version>2.0.1</version>
</dependency>

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

<dependency>
   <groupId>org.apache.tomcat</groupId>
   <artifactId>tomcat-servlet-api</artifactId>
    <version>7.0.8</version>
    <scope>provided</scope>
</dependency>

2.2  配置mybatis

<dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.3.0</version>
 </dependency>
 <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis-spring</artifactId>
     <version>1.3.0</version>
 </dependency>
   
 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.38</version>
  </dependency>

2.3  配置swagger

<dependency>
     <groupId>com.mangofactory</groupId>
     <artifactId>swagger-springmvc</artifactId>
     <version>1.0.1</version>
</dependency>
<dependency>
     <groupId>com.fasterxml.jackson.dataformat</groupId>
     <artifactId>jackson-dataformat-xml</artifactId>
     <version>2.7.4</version>
</dependency>
<dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-databind</artifactId>
     <version>2.7.4</version>
</dependency>

还需一个仓库

<repositories>
    <repository>
     <id>jcenter-release</id>
      <name>jcenter</name>
     <url>http://oss.jfrog.org/artifactory/oss-release-local/</url>
    </repository>
 </repositories>

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。

<bean class="com.xxxx.xxxx.MySwaggerConfig"/>

并且设置html静态资源

<mvc:resourcesmapping="*.html" location="/"/>

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{
                                    。。。。。。。。代码内容
      }
}


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值