1.開發背景
最近一直在寫dubbo接口,以前總是用word文檔寫接口描述然後發給別人。現在太多了,而且跟別人對接聯調的人家急著用,根本沒時間去寫word文檔。那就想想怎麼用doc文檔注釋自動生成接口文檔了。本來以前對這一塊有點印象,但是並不熟悉,加上沒有很強烈的要去使用的意圖,所以一直沒有弄。今天要感謝公司的大神,大家都叫他歐神,神一樣的男人。讓我用文檔注釋。然後就知道怎麼弄了,以下是生成的流程。
2.生成方法
先說生成的方法吧,免得一開始將注釋規範可能讀者覺得比較繁瑣,而且注釋規範基本上大家都有一套自己的做法。只要規範了注釋,就能輕易的生成注釋文檔。
2.1單擊project->Generate Javadoc出現如下界面
Javadoc command:執行doc文檔注釋的命令,也可以在cmd窗口中輸入這個命令
Select types for which Javadoc will be generated:要生成文檔注釋的項目,這裡選擇dubbo中間價項目,接口都在這裡面聲明,生成的文檔自然就夠用了
Create Javadov for menbers with cisibility:選擇private就將私有屬性也生成到文檔中,默認選擇的是public,建議選擇private
Destination:生成文檔路徑
2.2點擊下一步
這一頁的配置基本上全部選擇默認,也可以根據自己的尿性勾選必要的東西
這裡也可以導入自己的樣式文件,這樣可以讓文檔更美觀,這裡省略
文檔標題可以使用html,示例如下:
大數據接口Api
<h2><ul><li>Maven:</li><li><dependency></li><li> <groupId>api.jjshome.bigdata</groupId></li><li> <artifactId>bd-api-client</artifactId></li><li> <version>1.0.0-SNAPSHOT</version></li><li></dependency></li></ul></h2>
2.3點擊下一步
這裡要輸入自定義@標籤的定義,如下:
-encoding UTF-8 -charset UTF-8 -tag 功能描述\::a:"功能描述" -tag 項目名稱\::a:"項目名稱" -tag 項目版本\::a:"項目版本" -tag 使用對象\::a:"使用對象" -tag 接口版本\::a:"接口版本" -tag 創建作者\::a:"創建作者" -tag 創建日期\::a:"創建日期" -tag 問題反饋\::a:"問題反饋";
當然了,如果你全部用doc自帶的標籤就不用輸入任何東西了。
2.4點擊完成
然後去2.1步驟中生成的doc路徑下打開index.html就可以看到doc文檔了,成果如下:
到這裡就完成了生成的步驟了,下面我說一下一點點注釋要注意的地方,對於注釋規範的人可以不用看下去了,但是如果你生成的api裡面基本上沒有什麼內容,那麼建議你還是看看下面的內容。
3.doc注釋
3.1多行注釋
對於屬性,方法,類的注釋必須使用多行注釋,單行注釋不會生成到文檔中
3.2屬性注釋:
/** 員工ID */
private String workerId;
3.3方法注釋:
/**
* @功能描述: <p>根據workerId查詢經紀人小區帶看列表</p>
* <p><font color=red>注意:</font>
* 只返回根據帶看數量,最近一次帶看時間倒序排序的前topNum條記錄</p>
* @創建作者: **
* @創建日期: 2016年9月22日 下午3:11:46
* @param workerId 員工ID
* @param topNum 排序前幾個
* @return <p>返回對象參考{@link BigdataResult}<{@link List}<{@link AgentDKRecordVo}>></p>
*/
public BigdataResult<List<AgentDKRecordVo>> queryAgentDKList(String workerId, Integer topNum);
這裡多使用註解就能生成漂亮的文檔了,參數和返回對象一定要寫清楚,如果有對象參數的話,就可以用@see註解,示例如下:
/**
* @功能描述: 根據workerId查詢經紀人成交記錄
* @創建作者: **
* @創建日期: 2016年9月22日 下午8:49:02
* @param workerId 員工ID
* @param page 分頁對象
* @return <p>返回對象參考{@link BigdataResult}<{@link List}<{@link EsfCjHqHouseInfo}>></p>
* @see PageInfo
*/
public BigdataResult<List<EsfCjHqHouseInfo>> queryEsfCjListByWorkerId(String workerId, PageInfo page);
這裡的@see和@link都可以連結到指定對象的注釋文檔頁面,具體區別使用一次之後就一目了然了,同時@see和@link後面的對象也是需要導包的,不導包的話就使用全局限定名,如@see java.util.List
當然,還可以加入自己定義的一些註解,這些註解要生成到文檔注釋中就要在如上圖的2.3步驟中聲明出來,如@功能描述
3.4類的注釋
/**
* @功能描述: 接口返回錯誤碼
* @項目版本: 1.0.0
* @項目名稱: 大數據接口中心
* @相對路徑: *.ResultCodeCenter.java
* @創建作者: **
* @問題反饋: **@126.com
* @創建日期: 2016年9月22日 下午2:32:53
*/
public class ResultCodeConstant {}
4注釋模板
單擊window->Preferences,搜索框輸入「Template」,就能看到模板設置的選項了,舉個慄子:
這裡可以對屬性,方法,類,以及更多內容做模板設置,這樣輸入注釋的時候就能統一了,而且免去了多打字的痛苦,上圖是一個類的注釋模板
有了這些基本上生成的接口文檔就夠用了,當然。如果有更高的要求或者注釋有自己的規範,也可以按照自己的來設置更多內容。
文末福利:
後臺回復【視頻】:免費獲取100G學習視頻
後臺回復【書籍真多】:免費獲取超1000冊編程電子書資料
後臺回復【提問】:任何問題都可以問我,感謝支持。