使用springfox 集成swagger 与spring mvc
2016-07-29 11:32
543 查看
创建一个maven 模块
将springfox相关的配置都配置在一个单独的api模块中,可以把这个模块当成web应用跑起来。
<pluginRepositories>
<pluginRepository>
<id>jcenter-snapshots</id>
<name>jcenter</name>
<url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
</pluginRepository>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>jcenter-releases</id>
<name>jcenter</name>
<url>http://jcenter.bintray.com</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<!--<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
<scope>provided</scope>
</dependency>-->
<!--<dependency>
<groupId>nl.jworks.markdown_to_asciidoc</groupId>
<artifactId>markdown_to_asciidoc</artifactId>
<version>1.0</version>
</dependency>-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<build>
<plugins>
<!--可以将文档导出md文件,不过目前导出时会报错-->
<plugin>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<swaggerInput>http://localhost:8081/api/v2/api-docs?group=external</swaggerInput>
<outputDir>${project.build.directory}/asciidoc</outputDir>
<config>
<swagger2markup.markupLanguage>MARKDOWN</swagger2markup.markupLanguage>
</config>
</configuration>
</plugin>
</plugins>
<finalName>${project.name}</finalName>
</build>
```
2. 在需要引入swagger注解的模块中引入相应的依赖。
```
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
</dependencies>
```
3. 在api模块中添加初始化swagger的代码。
```
@EnableSwagger2
public class Swagger2Spring {
@Bean
public Docket petApi() {
return new Docket(DocumentationType.SWAGGER_2);
}
```
api模块也是一个spring mvc 项目,在spring mvc 的配置文件中加入代码。
```
<mvc:annotation-driven/>
<!--需要扫描的controller-->
<context:component-scan base-package="cn.com.yixun.**.api" use-default-filters="false" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- Enables swgger ui-->
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
将springfox相关的配置都配置在一个单独的api模块中,可以把这个模块当成web应用跑起来。
<pluginRepositories>
<pluginRepository>
<id>jcenter-snapshots</id>
<name>jcenter</name>
<url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
</pluginRepository>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>jcenter-releases</id>
<name>jcenter</name>
<url>http://jcenter.bintray.com</url>
</pluginRepository>
</pluginRepositories>
<repositories> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>jcenter-releases</id> <name>jcenter</name> <url>http://jcenter.bintray.com</url> </repository> <repository> <id>jcenter-snapshots</id> <name>jcenter</name> <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url> </repository> </repositories>
<dependencies>
<!--<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
<scope>provided</scope>
</dependency>-->
<!--<dependency>
<groupId>nl.jworks.markdown_to_asciidoc</groupId>
<artifactId>markdown_to_asciidoc</artifactId>
<version>1.0</version>
</dependency>-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> </dependency> <!--api--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.3</version> </dependency> <dependency> <!--项目模块--> <groupId>com.inlycat</groupId> <artifactId>yixun-core</artifactId> <version>1.0</version> </dependency> <dependency> <!--项目模块--> <groupId>com.inlycat</groupId> <artifactId>yixun-app</artifactId> <version>1.0</version> <type>war</type> </dependency> <dependency> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-staticdocs</artifactId> <version>2.4.0</version> </dependency> </dependencies>
<build>
<plugins>
<!--可以将文档导出md文件,不过目前导出时会报错-->
<plugin>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<swaggerInput>http://localhost:8081/api/v2/api-docs?group=external</swaggerInput>
<outputDir>${project.build.directory}/asciidoc</outputDir>
<config>
<swagger2markup.markupLanguage>MARKDOWN</swagger2markup.markupLanguage>
</config>
</configuration>
</plugin>
</plugins>
<finalName>${project.name}</finalName>
</build>
```
2. 在需要引入swagger注解的模块中引入相应的依赖。
```
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
</dependencies>
```
3. 在api模块中添加初始化swagger的代码。
```
@EnableSwagger2
public class Swagger2Spring {
@Bean
public Docket petApi() {
return new Docket(DocumentationType.SWAGGER_2);
}
```
api模块也是一个spring mvc 项目,在spring mvc 的配置文件中加入代码。
```
<mvc:annotation-driven/>
<!--需要扫描的controller-->
<context:component-scan base-package="cn.com.yixun.**.api" use-default-filters="false" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- Enables swgger ui-->
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
<!-- Include a swagger configuration--> <bean name="/applicationSwaggerConfig" class="cn.com.yixun.doc.swagger.Swagger2Spring"/>
启动项目之后打开网址,{项目地址}/swagger-ui.html 就可以访问了。 后记:由于swagger对项目的侵入性比较强,可以考虑把注解写在接口上。
相关文章推荐
- Spring MVC集成Tiles使用方法
- Spring MVC集成其他带来的事务注解无效之context:component-scan扫描使用上的容易忽略的use-default-filters
- Spring MVC学习总结(13)——Spring MVC集成Swagger时文档无法排序问题
- springfox-swagger原理解析及使用过程中可能会遇到的坑
- Spring MVC 中使用Swagger 自动构建 Restful API
- Spring MVC集成Struts Tiles使用方法
- Spring MVC 集成 Swagger,API文档自动生成~
- Spring MVC学习总结(12)——Spring MVC集成Swagger时报错{"schemaValidationMessages":[
- Spring MVC学习总结(11)——Spring MVC集成Swagger跨域问题
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api
- 使用maven管理spring3.1.2 及spring mvc ,hibernate4.3.6集成开发的依赖环境
- spring mvc 集成 swagger及swagger ui
- Spring MVC集成Tiles使用方法
- Spring MVC学习总结(12)——Spring MVC集成Swagger时报错{"schemaValidationMessages":[
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api
- 第二十六天 蛰伏的Hibernate遇到春日的暖阳 —Spring MVC 集成Hibernate使用(一)
- tiles3 基础使用及与spring mvc集成
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api
- Swagger 与 spring mvc 集成
- Swagger与RestFul 集成 以及 注解使用Demo