/**
* <p>方法描述:对接口方法根据分组排序</p>
* <p>创建人: 王成委 </p>
* <p>创建时间: 2015年1月20日 下午16:00:06 </p>
*/
private void orderMappers(){
for(Entry<String,List<RequestMethodMapping>> entry : this.mappers.entrySet() ){
Collections.sort(entry.getValue(), new Comparator<RequestMethodMapping>() {
@Override
public int compare(RequestMethodMapping o1, RequestMethodMapping o2) {
Integer one = o1.getOrder();
Integer two = o2.getOrder();
if(one != null && two != null) return one.intValue()-two.intValue();
return 0;
}
});
}
}
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = (WebApplicationContext)applicationContext;
}
@Override
public void afterPropertiesSet() throws Exception {
this.loadHandlerMapping();
this.orderMappers();
this.applicationContext.getServletContext().setAttribute("api", this.mappers);
}
/**
* <p>方法描述:刷新接口信息</p>
* <p>创建人: 王成委 </p>
* <p>创建时间: 2015年1月10日 上午10:50:06 </p>
* @throws Exception
*/
public void refresh() throws Exception{
this.mappers = new HashMap<String,List<RequestMethodMapping>>();
this.afterPropertiesSet();
}
}
利用C标签生产接口描述信息
<div>
<table>
<tr>
<td>接口地址</td>
<td>接口名称</td>
<td>参数说明</td>
</tr>
<c:forEach items="${api}" var="map">
<tr>
<td colspan="3">
<c:out value="${map.key}" />
</td>
</tr>
<c:forEach items="${map.value}" var="list">
<tr>
<td>
<a href="https://www.linuxidc.com/<%=baseUrl%>${list.url}${list.testUrl}" target="_blank">${list.url}</a>
</td>
<td>${list.name}</td>
<td>
<c:forEach items="${list.params}" var="params">
${params.name}:${params.desc}<br/>
</c:forEach>
</td>
</tr>
</c:forEach>
</c:forEach>
</table>
</div>
基于 Spring 设计并实现 RESTful Web Services
Spring-3.2.4 + Quartz-2.2.0集成实例