最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java注釋轉(zhuǎn)json插件開(kāi)發(fā)實(shí)戰(zhàn)詳解

 更新時(shí)間:2023年06月19日 11:03:45   作者:離線(xiàn)請(qǐng)留言  
這篇文章主要為大家介紹了java注釋轉(zhuǎn)json插件開(kāi)發(fā)實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

目的

將java的代碼注釋轉(zhuǎn)換為json格式,并寫(xiě)入文件

本文介紹了完整的開(kāi)發(fā)流程及如何使用

運(yùn)行環(huán)境

jdk1.8

maven3.x

設(shè)計(jì)思想

系統(tǒng)構(gòu)思

  • 編譯完成的class里沒(méi)有注釋的,所以注釋信息只有在編譯代碼時(shí)存儲(chǔ)起來(lái)
  • 將能夠生成javadoc.json的代碼做成maven插件

關(guān)鍵技術(shù)算法 需要實(shí)現(xiàn)Doclet

必須引入下述jar包, 來(lái)導(dǎo)入com.sun.javadoc.Doclet

<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.8</version>
    <scope>system</scope>
    <systemPath>/home/zhaozhiwei/applications/jdk1.8.0_181/lib/tools.jar</systemPath>
</dependency>

代碼路徑

<https:github.com:zhaozhiwei1992/javadoc-json-maven-plugin>

入口: com.example.Javadoc2JsonMojo#execute

生成javadoc.json文件

com.example.CommentToJson(做成maven插件使用)

{
  "com.example.web.rest.PersonResource.findByID(java.lang.Long)#date": "2022/10/25-上午10:19",
  "com.example.web.rest.PersonResource#Package": "com/example/springbootcache/controller/PersonController.java",
  "com.example.web.rest.PersonResource.findByID(java.lang.Long)#Description": "根據(jù)id獲取用戶(hù)信息",
  "com.example.web.rest.PersonResource.save(Person)#method": "save",
  "com.example.web.rest.PersonResource#author": "zhaozhiwei",
  "com.example.web.rest.PersonResource.deleteByID(java.lang.Long)#Description": "根據(jù)id刪除person信息",
  "com.example.web.rest.PersonResource#Title": "PersonController",
  "com.example.web.rest.PersonResource.update(Person)#date": "2022/10/25-上午10:21",
  "com.example.web.rest.PersonResource.save(Person)#Description": "保存方法",
  "com.example.web.rest.PersonResource#Description": "用戶(hù)信息接口",
  "com.example.web.rest.PersonResource#date": "2022/10/25 下午8:23",
  "com.example.web.rest.PersonResource.update(Person)#Description": "修改內(nèi)容看是否會(huì)調(diào)整緩存",
  ... 省略了一大堆
}

類(lèi)代碼注釋規(guī)范

/**
 * @Title: PersonController
 * @Package: com/example/springbootcache/controller/PersonController.java
 * @Description: 用戶(hù)信息接口
 * @author: zhaozhiwei
 * @date: 2022/10/25 下午8:23
 * @version: V1.0
 */

方法代碼注釋規(guī)范

/**
 * @date: 2022/10/25-上午10:19
 * @author: zhaozhiwei
 * @method: findByID
  * @param id : 唯一id
 * @return: com.lx.demo.springbootcache.domain.Person
 * @Description: 根據(jù)id獲取用戶(hù)信息
 * 獲取十次, 只有第一次是讀庫(kù),后續(xù)都是取緩存
 * 直接刪掉redis緩存里的內(nèi)容,仍然可以獲取數(shù)據(jù),并且走緩存,此時(shí)獲取的是服務(wù)緩存ehcache中的信息
 * seq 10 |xargs -i curl -XGET 'http://localhost:8080/persons/2'
 */

參數(shù)定義

@parameter額外屬性:
@parameter alias="<aliasName>":為mojo參數(shù)使用別名
@parameter expression="${aSystemProperty}":使用系統(tǒng)屬性表達(dá)式對(duì)mojo參數(shù)進(jìn)行賦值
@parameter defaultValue="aValue/${anExpression}":提供一個(gè)默認(rèn)值

開(kāi)發(fā)流程

項(xiàng)目構(gòu)建

mvn archetype:generate -DgroupId=com.example -DartifactId=javadoc-json-maven-plugin -DarchetypeArtifactId=maven-archetype-mojo -DinteractiveMode=false

使用插件

Install

在javadoc-json-maven-plugin項(xiàng)目中執(zhí)行maven的install命令,
將插件安裝到本地倉(cāng)庫(kù)

引入自定義插件

在其它項(xiàng)目引入插件測(cè)試

展開(kāi)插件可以看到Mojo列表,由于項(xiàng)目里只有一個(gè)Mojo,且Mojo上用注釋@goal指定了名稱(chēng)為generate,所以這里只能看到一個(gè)javadoc-json:generate

<plugin>
                <groupId>com.example</groupId>
                <artifactId>javadoc-json-maven-plugin</artifactId>
                <version>2.0-SNAPSHOT</version>
                <configuration>
<!--                    指定java注釋掃描目錄-->
                    <basePackage>com/example/web/rest</basePackage>
                </configuration>
            </plugin>

執(zhí)行插件

雙擊javadoc-json:generate就會(huì)執(zhí)行這個(gè)插件。

執(zhí)行完畢后,可以看到項(xiàng)目根目錄的target文件下多了個(gè)javadoc.json文件。

命令行執(zhí)行插件(可選)

命令格式為mvn groupId:artifactId:version:goal,執(zhí)行如下命令:

mvn com.<example:javadoc-json-maven-plugin:1.0.0-SNAPSHOT:generate>

由于我們的插件命名符合規(guī)范,所以上面的命令可以簡(jiǎn)寫(xiě)為:

mvn javadoc-json:generate

尚未解決的問(wèn)題

javadoc插件去掉異常提示

參考

maven插件開(kāi)發(fā) http://m.fzitv.net/article/283906.htm

參數(shù)定義 http://m.fzitv.net/article/122552.htm

以上就是java注釋轉(zhuǎn)json插件開(kāi)發(fā)實(shí)戰(zhàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于java注釋轉(zhuǎn)json的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 部署SpringBoot項(xiàng)目到Linux服務(wù)器數(shù)據(jù)盤(pán)的完整流程

    部署SpringBoot項(xiàng)目到Linux服務(wù)器數(shù)據(jù)盤(pán)的完整流程

    這篇文章講述了如何在Linux服務(wù)器上掛載數(shù)據(jù)盤(pán)并部署SpringBoot項(xiàng)目,具體步驟包括查看磁盤(pán)狀態(tài)、分區(qū)與格式化、掛載分區(qū)、配置開(kāi)機(jī)自動(dòng)掛載等,以及上傳項(xiàng)目文件、編寫(xiě)啟動(dòng)腳本、啟動(dòng)項(xiàng)目并測(cè)試、配置Systemd服務(wù)管理,需要的朋友可以參考下
    2025-11-11
  • Spring Boot 開(kāi)發(fā)環(huán)境熱部署詳細(xì)教程

    Spring Boot 開(kāi)發(fā)環(huán)境熱部署詳細(xì)教程

    這篇文章主要介紹了Spring Boot 開(kāi)發(fā)環(huán)境熱部署,本文給大家介紹了Spring Boot 開(kāi)發(fā)環(huán)境熱部署的原理及快速配置方法,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot整合模板引擎過(guò)程代碼實(shí)例

    SpringBoot整合模板引擎過(guò)程代碼實(shí)例

    這篇文章主要介紹了SpringBoot整合模板引擎過(guò)程代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 基于jdbc處理Clob的使用介紹

    基于jdbc處理Clob的使用介紹

    本篇文章是對(duì)jdbc處理Clob的使用進(jìn)行了分析介紹,需要的朋友參考下
    2013-05-05
  • Spring線(xiàn)程池ThreadPoolTaskExecutor配置與實(shí)踐方式

    Spring線(xiàn)程池ThreadPoolTaskExecutor配置與實(shí)踐方式

    文章介紹了Spring框架的ThreadPoolTaskExecutor,其主要功能包括線(xiàn)程池管理、任務(wù)執(zhí)行及高級(jí)特性,核心參數(shù)有核心線(xiàn)程數(shù)、最大線(xiàn)程數(shù)、隊(duì)列容量等,文中還詳細(xì)解釋了拒絕策略、線(xiàn)程上下文類(lèi)加載器等高級(jí)功能,并提供了配置示例和使用建議,幫助開(kāi)發(fā)者有效管理線(xiàn)程池
    2026-03-03
  • java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作

    java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作

    這篇文章主要介紹了java 音頻轉(zhuǎn)換wav格式標(biāo)準(zhǔn)音頻的操作,主要是使用ffmpeg命令進(jìn)行轉(zhuǎn)換,該工具類(lèi)主要是為了將各類(lèi)音頻轉(zhuǎn)為wav標(biāo)準(zhǔn)格式,其中可以調(diào)節(jié)采樣率、聲道數(shù)等指標(biāo),依賴(lài)maven環(huán)境,需要的朋友可以參考下
    2021-10-10
  • Java并發(fā)編程系列之LockSupport的用法

    Java并發(fā)編程系列之LockSupport的用法

    這篇文章主要為大家介紹了Java LockSupport的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助,希望能夠給你帶來(lái)幫助
    2021-11-11
  • 2020最新版idea激活教程(推薦)

    2020最新版idea激活教程(推薦)

    這篇文章主要介紹了2020最新版idea激活教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant

    mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant

    最近在使用mybatis-plus時(shí)用到了通用枚舉,遇到了問(wèn)題,本文主要介紹了mybatis-plus通用枚舉@JsonValue接收參數(shù)報(bào)錯(cuò)No enum constant,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Resttemplate中設(shè)置超時(shí)時(shí)長(zhǎng)方式

    Resttemplate中設(shè)置超時(shí)時(shí)長(zhǎng)方式

    這篇文章主要介紹了Resttemplate中設(shè)置超時(shí)時(shí)長(zhǎng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論

高清| 咸丰县| 奈曼旗| 固镇县| 林甸县| 镇远县| 凤庆县| 泾源县| 嵊泗县| 恩施市| 贵溪市| 德庆县| 鄢陵县| 武汉市| 灵川县| 恩施市| 津南区| 九龙坡区| 柳林县| 新巴尔虎右旗| 万山特区| 扶绥县| 平度市| 罗源县| 和顺县| 双桥区| 繁昌县| 于都县| 岚皋县| 磴口县| 万安县| 贺州市| 基隆市| 宁都县| 临泉县| 庄河市| 浑源县| 濉溪县| 安图县| 灵石县| 丰都县|