项目使用SpringMVC+Maven

1.在站点项目的POM文件中引入Swagger的jar包

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.1.4.RELEASE</spring.version>
<jackson.version>2.5.0</jackson.version>
</properties> <!-- Swagger -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>0.9.5</version>
</dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- Swagger -->

2.添加自定义MySwaggerConfig类文件,我的写和Controller平级的Common中

aaarticlea/png;base64,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" alt="" />

下面上MySwaggerConfig的代码实现

 package com.etaofinance.wap.common;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
@Configuration
@EnableSwagger
public class MySwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig;
/**
* Required to autowire SpringSwaggerConfig
*/
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
{
this.springSwaggerConfig = springSwaggerConfig;
} /**
* Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
* framework - allowing for multiple swagger groups i.e. same code base
* multiple swagger resource listings.
*/
@Bean
public SwaggerSpringMvcPlugin customImplementation()
{
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.apiInfo(apiInfo())
.includePatterns(".*?");
} private ApiInfo apiInfo()
{
ApiInfo apiInfo = new ApiInfo(
"易淘金服-众筹",
"易淘金服众筹Wap接口",
"My Apps API terms of service",
"ru.huaxiao@etao.cn",
"My Apps API Licence Type",
"http:100.com");
return apiInfo;
}
}

ApiInfo 定义的是页面显示的一些信息,这点我就不删除了

3.xxx-servlet.xml配置文件中添加注入节点

      <!-- Swagger 注入配置 -->
<bean class="com.etaofinance.wap.common.MySwaggerConfig">
</bean>
<!-- Swagger 注入配置 -->

4.在Controll上添加注解

/**
* 项目列表接口(WAP)
* @param req
* @return
*/
@RequestMapping("projectlist")
@ResponseBody
@ApiOperation(value = "项目接口;列表", httpMethod = "POST",
consumes="application/json;charset=UFT-8",produces="application/json;charset=UFT-8",
notes = "项目接口列表")
public PagedResponse<ProjectModel> projectlist(@RequestBody PagedProjectReq req) {
return projectService.getProjectList(req);
}

说明:
其中@ApiOperation和@ApiParam为添加的API相关注解,个参数说明如下:
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”);
@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”)

其他参数可参考官方文档

5:添加Swagger UI配置

在GitHub上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面,结果目录如下图

注意:这是我不推荐的一种方式,我建议添加一个Action然后通过配置改变何时该页面可以被访问

下面说说我的写法

5.1.将Swagger所需要的文件放入资源的文件夹

aaarticlea/png;base64,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" alt="" />

5.2.添加一个CommonController 和SwaggerAction

package com.etaofinance.wap.controllor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.etaofinance.api.service.inter.IMemberService;
import com.etaofinance.entity.common.HttpResultModel;
import com.etaofinance.entity.req.SendCodeReq; @Controller
@RequestMapping("common")
public class CommonController {
@Autowired
IMemberService memberService; @RequestMapping("/swagger")
public ModelAndView suggAdd() {
ModelAndView model = new ModelAndView("common/swagger");
return model;
}
}

5.3添加jsp.承载页面

<%@page import="java.util.stream.Collectors"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.etaofinance.core.util.PropertyUtils"%>
<%
String basePath = PropertyUtils.getProperty("java.wap.url");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="icon" type="image/png" href="<%=basePath%>/swagger/images/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="<%=basePath%>/swagger/images/favicon-16x16.png" sizes="16x16" />
<link href='<%=basePath%>/swagger/css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='<%=basePath%>/swagger/css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='<%=basePath%>/swagger/css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='<%=basePath%>/swagger/css/reset.css' media='print' rel='stylesheet' type='text/css'/>
<link href='<%=basePath%>/swagger/css/print.css' media='print' rel='stylesheet' type='text/css'/>
<script src='<%=basePath%>/swagger/lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/jquery.wiggle.min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/handlebars-2.0.0.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/js-yaml.min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/lodash.min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/backbone-min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/swagger-ui.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/jsoneditor.min.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/marked.js' type='text/javascript'></script>
<script src='<%=basePath%>/swagger/lib/swagger-oauth.js' type='text/javascript'></script> <!-- Some basic translations -->
<!-- <script src='lang/translator.js' type='text/javascript'></script> -->
<!-- <script src='lang/ru.js' type='text/javascript'></script> -->
<script src='<%=basePath%>/swagger/lang/zh-cn.js' type='text/javascript'></script> <script type="text/javascript">
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "<%=basePath%>/api-docs";
} hljs.configure({
highlightSizeThreshold: 5000
}); // Pre load translate...
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
window.swaggerUi = new SwaggerUi({
url: url,
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
onComplete: function(swaggerApi, swaggerUi){
if(typeof initOAuth == "function") {
initOAuth({
clientId: "your-client-id",
clientSecret: "your-client-secret-if-required",
realm: "your-realms",
appName: "your-app-name",
scopeSeparator: ",",
additionalQueryStringParams: {}
});
} if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
},
onFailure: function(data) {
log("Unable to Load SwaggerUI");
},
docExpansion: "none",
jsonEditor: false,
defaultModelRendering: 'schema',
showRequestHeaders: false
}); window.swaggerUi.load(); function log() {
if ('console' in window) {
console.log.apply(console, arguments);
}
}
});
</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="<%=basePath%>/swagger/images/logo_small.png" /><span class="logo__title">swagger</span></a>
<form id='api_selector'>
<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="<%=basePath%>/swagger#" data-sw-translate>Explore</a></div>
</form>
</div>
</div>
<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
</body>
</html>

注意加红的字体的地方.这里是Swagger的路径.

6.让你的站点跑起来吧!!最后结果如下

aaarticlea/png;base64,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" alt="" />

最后 看看拦截器的代码

public class AuthInteceptor extends HandlerInterceptorAdapter {

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String basePath =PropertyUtils.getProperty("java.wap.url");
String IsOpenSwagger=PropertyUtils.getProperty("IsOpenSwagger");
if(request.getServletPath().equals("/common/swagger")&&IsOpenSwagger.equals("0"))
{//验证是否开启Swagger 1 开启 0未开启 不允许访问
response.sendRedirect(basePath);
return false;
}
}

演示参数中的时间类型有问题 ,修改源码格式化

修改swagger-ui.js

'use strict';
//////
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}; function representYamlTimestamp(object,fmt /*, style*/) {
//return object.toISOString();
var res="";
if(fmt==undefined){
res= object.Format("yyyy-MM-dd HH:mm:ss");
}else{
res= object.Format(fmt);
}
//alert(res);
return res;
};
/////////////////////
$(function() {

[java]SpringMVC+Swagger实现自动接口的更多相关文章

  1. java集成swagger

    概览: java集成Swagger Swagger-UI的使用 Springboot跨域请求的访问解决 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 W ...

  2. SpringMVC之使用Validator接口进行验证

    对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证.SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提 ...

  3. java基础(四)-----抽象类与接口

    抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们 ...

  4. Java开发知识之Java中的集合Set接口以及子类应用

    ---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...

  5. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  6. Java的四个标记接口:Serializable、Cloneable、RandomAccess和Remote接口

    一.概述 标记接口是一些没有属性和方法的接口,也是一种设计思想.Java中的一个标记接口表示的的是一种类的特性,实现了该标记接口的类则具有该特性.如实现了Serializable接口的类,表示这个类的 ...

  7. [Java] SpringMVC工作原理之一:DispatcherServlet

    一.DispatcherServlet 处理流程 在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作.在看 Di ...

  8. 【转】Java迭代:Iterator和Iterable接口

    Java迭代 : Iterator和Iterable接口 从英文意思去理解 Iterable :故名思议,实现了这个接口的集合对象支持迭代,是可迭代的.able结尾的表示 能...样,可以做.... ...

  9. JAVA springmvc参数

    一.简单参数: package jd.com.contronller; import jd.com.projo.goods; import org.springframework.stereotype ...

随机推荐

  1. 7-days-asp-dotnet-mvc-day1

    目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 今天是开心的一天.因为我们终于来到了系列学习的最后一节.我相信你喜欢之前的课程,并从中学到了许多. ...

  2. ORM-Dapper+DapperExtensions

    ORM-Dapper+DapperExtensions 现在成熟的ORM比比皆是,这里只介绍Dapper的使用(最起码我在使用它,已经运用到项目中,小伙伴们反馈还可以). 优点: 1.开源.轻量.小巧 ...

  3. 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释

    迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 參考迭代器模式(ite ...

  4. 如何解决KEIL 5 编KEIL4同RTX系统的project解

    1.我个人KEIL5与KEIL4对照 相较于KEIL 5 的"华丽".笔者还是喜欢KEIL4的"内敛",主要也还是习惯了.懒得换了.由于工作的  原      ...

  5. JavaEE(4) - JMS实现企业PTP消息处理

    1. 在Weblogic服务器上配置PTP消息目的 配置持久化: Services-->Persistence Stores-->New(Create FileStore, Create ...

  6. projecteuler----&gt;problem=34----Digit factorials

    Problem 34 145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145. Find the sum of all number ...

  7. 多线程相互排斥--mutex(二)

    不知道大家对多线程或多进程间的同步相互排斥的控制机制了解的怎么样,事实上有非常多种方法能够实现这个目的,可是这些方法事实上由4种最主要的方法实现.这4种最主要的方法详细定义例如以下:在这有讲得不正确的 ...

  8. RPC框架实现

    转载RPC框架实现 RPC(Remote Procedure Call,远程过程调用)框架是分布式服务的基石,实现RPC框架需要考虑方方面面.其对业务隐藏了底层通信过程(TCP/UDP.打包/解包.序 ...

  9. C#中WebBrowser的使用

    原文:C#中WebBrowser的使用 其实网络上这类文章很多,我大致从头说说我自己的经验. 1.加入引用 在控件栏按右键,选择“添加/移除项”,选COM组件,选中“Microsoft Web Bro ...

  10. Cocos2d-x3.0之路--02(引擎文件夹分析和一些细节)

    关于怎么搭建好开发环境的我就不写了,网上非常多. 那么 我们来看看 引擎文件的文件夹 所谓知己知彼 百战不殆嘛 先说一下setup.py 这个文件是有关配置的python文件,比方我们在进行andro ...