您的位置:首页 > 编程语言 > Java开发

Swagger/SpringFox和SpringMvc初步整合

2016-12-05 14:06 495 查看
首先,还是写一下我的环境:

1、Spring 4.1.6

2、SptingMvc 4.1.6

3、Spring-data-jpa-1.8.0

4、jpa部分使用的hibernate 的那块

5、注意,我这里没有使用Spring boot

6、Restful 我觉得,这个才是我要用swagger的原因

(据说Spring boot是个很好的东西,但是,请恕鄙人的水平还不到那么高,还只是正在看Spring boot 的阶段,就不误导大家了。)

这只是一个大概的环境,毕竟SwaggerFox 要求的没这么严格,如果,你调试不好,可以试试我的Spring版本

一、Maven配置
http://mvnrepository.com/
1、直接搜索SpringFox,我写这篇博客的时候,最新版本是2.6.1,理论上,最新的版本都是可以的。

2、在maven中导入SpringFox之后,导入SpringFox-ui,我没有用过原生的Swagger-ui。。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

这里用maven导入依赖的时候,注意一下,这里下载springfox 的时候,默认也是会连带着把springfox的依赖一块下载下来的,我记得这个就会下载一个3.1版本的spring的包,

我相信大家都是用的自己版本的Spring,所以,注意在配置的时候,解除一下jar包的依赖。这里,我就不具体写流程了,大家可以参考一下其他人的博客

4000 http://blog.csdn.net/cyzero/article/details/8251643     这里给一个供参考

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

还有一中方法是直接导入jar包,我个人是不太推荐这么干的,我记得之前看SpringFox 的依赖,感觉还是有点其他的东西的,不光是对Spring的依赖


二、就是配置了

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration		//配置注解
@EnableWebMvc		//启用Mvc
@EnableSwagger2		//启用Swagger2,毕竟SpringFox的核心依旧是Swagger
public class SwaggerConfig extends WebMvcConfigurerAdapter{
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()						//选择哪些路径和API会生成document
.apis(RequestHandlerSelectors.any())			//对所有api进行监控
.paths(PathSelectors.any())				//对所有路径进行监控
.build();
}
@Override		//下边的都是配置映射的,这个,我没办法给你们解释,水平不到.....
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}

}
-----------------------------------------------------------------------------------------------

提示一下:

上边的这个配置,直接新建一个类就好,名字什么的没必要跟我这个一样。

还有,这个并不会跟web.xml/application.xml/dispatcher-servlet.xml起冲突,放心大胆的用就好。

再者,这个只是最简单的配置,还可以加很多东西,但是,这部分就需要大家自己去继续学习了,我这里只是引个路。

-----------------------------------------------------------------------------------------------

到这里,最小化的Springfox就配置完了,如果你的项目中有controller的话,

启动项目-打开浏览器-输入地址:
http://localhost:8080/project-name/swagger-ui.html#/
(project-name这个不用我解释了吧?)

回车,就能看到最基本的Swagger界面了

这个页面,默认是英文的....有兴趣的话,可以看下springfox-swagger-ui-2.6.1jar这个包,很有意思的一个包,自带翻译



我可以稍微指个路,修改这个jar包中的swagger-ui.html文件,也就是之前在浏览器打开的页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="icon" type="image/png" href="webjars/springfox-swagger-ui/images/favicon-32x32.png" sizes="32x32"/>
<link rel="icon" type="image/png" href="webjars/springfox-swagger-ui/images/favicon-16x16.png" sizes="16x16"/>
<link href='webjars/springfox-swagger-ui/css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='webjars/springfox-swagger-ui/css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='webjars/springfox-swagger-ui/css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='webjars/springfox-swagger-ui/css/reset.css' media='print' rel='stylesheet' type='text/css'/>
<link href='webjars/springfox-swagger-ui/css/print.css' media='print' rel='stylesheet' type='text/css'/>

<script src='webjars/springfox-swagger-ui/lib/object-assign-pollyfill.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/jquery.wiggle.min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/handlebars-4.0.5.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/lodash.min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/backbone-min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/swagger-ui.min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/jsoneditor.min.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/marked.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lib/swagger-oauth.js' type='text/javascript'></script>
//这个自带翻译...............^_^也是6的不行
<script src='webjars/springfox-swagger-ui/lang/translator.js' type='text/javascript'></script>
<script src='webjars/springfox-swagger-ui/lang/zh-cn.js' type='text/javascript'></script>

<script src='webjars/springfox-swagger-ui/springfox.js' type='text/javascript'></script>
</head>

<body class="swagger-section">
<div id='header'>
<div class="swagger-ui-wrap">
<a id="logo" href="http://swagger.io"><img class="logo__img" alt="swagger" height="30" width="30" src="webjars/springfox-swagger-ui/images/logo_small.png" /><span class="logo__title">swagger</span></a>
<form id='api_selector'>
<div class='input'>
<select id="select_baseUrl" name="select_baseUrl"/>
</div>
<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
<div id='auth_container'></div>
<div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>
</form>
</div>
</div>

<div id="message-bar" class="swagger-ui-wrap" data-sw-translate> </div>
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
</body>
</html>


如果有心呢,就去看看这个jar包,我感觉挺不错的,如果没时间,就直接复制粘贴我的就好了....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息