Swagger2与springmvc整合

3 篇文章 0 订阅

首先,先构建一个spingmvc的maven工程,这里就不写代码了。

然后在pom.xml中添加以下依赖:

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.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>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.7.4</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.7.4</version>
        </dependency>

我们来看下我们引入的springfox-swagger-ui-2.6.1.jar:

 我们可以看到swagger2的静态文件已经被封装在jar包中了,根据这里,我们在spring-mvc.xml中来配置我们的视图解析器:


    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name = "prefix" value="/META-INF/resources/"></property>
        <property name = "suffix" value = ""></property>
    </bean>

 接下来,我们创建swagger2的配置文件,和测试的controller

@Configuration        //让Spring来加载该类配置
@EnableWebMvc        //启用Mvc,非springboot框架需要引入注解@EnableWebMvc
@EnableSwagger2        //启用Swagger2
public class Swagger2Config {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo()).select()
                //扫描指定包中的swagger注解
                //.apis(RequestHandlerSelectors.basePackage("com.xia.controller"))
                //扫描所有有注解的api,用这种方式更灵活
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("基础平台 RESTful APIs")
                .description("基础平台 RESTful 风格的接口文档,内容详细极大的减少了前后端的沟通成本,同时确保代码与文档保持高度一致,极大的减少维护文档的时间。")
                .termsOfServiceUrl("http://xiachengwei5.coding.me")
                .contact("mooc")
                //.license("个人博客")
                //.licenseUrl("http://xiachengwei5.coding.me")
                .version("0.0.1")
                .build();
    }
}
    /**
     * @Api 这个注解分模块的,记得要用tags
     * @author dumingwei
     *
     */
    @Api(tags="个人业务")
    @RestController
    @RequestMapping("/person")
    public class PersonController {
    	/**
    	 * @ApiOperation 这个注解是指该方法是用来做什么的,一定要加上httpMethod,否则会出现一堆
    	 * @param userVo
    	 * @return
    	 */
    	@RequestMapping(value="/getPerson",method= RequestMethod.GET)
        @ApiOperation(httpMethod = "GET", value = "个人信息", produces = MediaType.APPLICATION_JSON_VALUE)
        public @ResponseBody Person getPersons() {
            Person person = new Person();
            person.setFirstName("fname");
            person.setLastName("lname");
            person.setAge(37);
            person.setDeptName("dept");
            return person;
        }
    }
}

打开http://localhost:8080/${projectName}/swagger-ui.html.这里的projectName就是你的工程名,成功则出现下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值