国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何開發一個java開源框架-----Jvn框架之實現自動生成在線文檔(第七講)

2019-11-15 00:27:26
字體:
來源:轉載
供稿:網友
如何開發一個java開源框架-----Jvn框架之實現自動生成在線文檔(第七講)

一、

前言:博主正在教大家如何開發一個javaEE框架,我把框架命名為Jvn,博客里有完整的開發視頻,每一篇博文都是一個知識點;

關于框架的介紹和學習,可以從我博客第一講開始看起,博客首頁:http://m.survivalescaperooms.com/everxs/

本次內容視頻以及源碼下載地址:http://pan.baidu.com/s/1o6MJnFc

二、

本次博客講的內容

場景:現在是APP時代,APP很熱門,而且跟后臺交互跑的都是HTTP協議,所以講到這里,對于這里面的交互。

安卓工程師(客戶端),在調用后臺接口的時候,需要一個文檔,二后臺工程師(這里用JAVA),要去維護這份文檔,或者

說手寫這份文檔,工作量跟維護量是非常大的。所以提出了一個想法,在線文檔能否自動生成了。

解決思路:

1,在我們的Controller上面加一個注解@OnlineController同時指定被注解Controller的用途 memo="用戶管理控制器",該COntroller的URL

2,在我們具體的Action,也就是我們Controller里面的方法里面加一個@OnlineMethod注解,同時指定 method="訪問方式(GET或者POST)",memo="方法描述",

param="調用該接口需要的參數比如:name=XXX&age=XXX",該接口的URL

3,把這些信息保存進我們的List里面,啟動框架的時候設進一個List.

4,使用者可以定義一個Controller獲取該list在頁面顯示出來

本次視頻跟源碼的下載地址:http://pan.baidu.com/s/1o6MJnFc

建議看視頻,因為我在視頻里講得很詳細。

Ps:視頻跟代碼都會持續更新,希望大家喜歡,多多支持。

QQ:245223343  永遠的八哥

下面是一些代碼:

OnlineController:

/**| * 在線文檔Controller注解 * @author Administrator * */@Retention(RetentionPolicy.RUNTIME)public @interface OnlineController {String memo();}

OnlineMethod:

/** * 在線文檔的方法注解 * @author Administrator * */@Retention(RetentionPolicy.RUNTIME)public @interface OnlineMethod {String memo();String param();String method();}

Online實體類:

public class Online {PRivate String url;private String memo;private String method;private String param;private int type;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}public String getMethod() {return method;}public void setMethod(String method) {this.method = method;}public String getParam() {return param;}public void setParam(String param) {this.param = param;}public int getType() {return type;}public void setType(int type) {this.type = type;}}

OnlineDoc 操作類:

public class OnlineDoc {/** * 加載有注解的Controller */public static List<Online> loadClass(Map<String,Class> map){List<Online> onlineList = new ArrayList<Online>();System.out.println("map :"+map.size());for(String nameSpace :map.keySet()){Class clazz = map.get(nameSpace);OnlineController onlineController = (OnlineController) clazz.getAnnotation(OnlineController.class);if(onlineController!=null){System.out.println("進來");Online online = new Online();online.setType(1);online.setMemo(onlineController.memo());online.setUrl(nameSpace);onlineList.add(online);Method[] methods = clazz.getMethods();for(Method method :methods){OnlineMethod onlineMethod = method.getAnnotation(OnlineMethod.class);if(onlineMethod!=null){Online o = new Online();o.setMemo(onlineMethod.memo());o.setMethod(onlineMethod.method());o.setParam(onlineMethod.param());o.setType(2);o.setUrl(nameSpace+"/"+method.getName());onlineList.add(o);}}}}System.out.println("執行完 有多少個:"+onlineList.size());return onlineList;}}

最后是配置在線文檔:

public class OnlineDocController extends JvnController{public void index(){List<Online> onlineList = JvnConfig.CONSTANT.getOnlineList();System.out.println("size :" +onlineList.size());getRequest().setAttribute("onlineList", onlineList);render("/WEB-INF/views/online/index.jsp");}}

測試Controller:

@OnlineController(memo = "訂單管理控制器")public class OrderController extends JvnController{@OnlineMethod(memo = "增加訂單", method = "GET", param = "訂單id   orderId")public void add(){}@OnlineMethod(memo = "刪除訂單", method = "GET", param = "訂單id   orderId")public void delete(){}}

在線文檔的jsp:

<%@page import="com.jvn.doc.online.Online"%><%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html ><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><!-- 新 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" ><!-- jQuery文件。務必在bootstrap.min.js 之前引入 --><script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script><!-- 最新的 Bootstrap 核心 Javascript 文件 --><script src="http://cdn.bootcss.com/bootstrap/3.3.4/js/bootstrap.min.js"></script></head><body><h1>在線生成文檔</h1><div style="width: 70%;margin: 0,auto;"><table class="table">  <tr><th>訪問的url</th><th>描述</th><th>參數/說明</th><th>訪問方式</th></tr>     <c:forEach var="online" items="${onlineList}">   <tr>  <td>http://www.baidu.com/jvn${online.url}</td>  <td>${online.memo}</td>  <td>${online.param}</td>  <td>${online.method}</td>  </c:forEach>  </tr></table></div></body></html>

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枣阳市| 镇康县| 双江| 商城县| 嘉鱼县| 中方县| 静海县| 绍兴县| 中宁县| 定陶县| 四子王旗| 根河市| 龙陵县| 太湖县| 娱乐| 中江县| 金堂县| 普宁市| 乐清市| 陕西省| 许昌市| 东平县| 丰镇市| 湖南省| 富平县| 沙河市| 石门县| 噶尔县| 开远市| 宜良县| 克拉玛依市| 盐津县| 莱州市| 五常市| 黄山市| 明溪县| 霍林郭勒市| 淮阳县| 望城县| 北安市| 德清县|