1.理論準備:
在IntelliJ官網強行看了一會英語,最終放棄。 一是閱讀時間過慢,二是全部看有些浪費時間。看了很多相關的博客,個人認爲這個很不錯,地址: IntelliJ IDEA插件結構。
2.架構分析:
到目前爲止,我已經拿到源碼調試通過過去了兩三天了,始終不能較爲連貫的將各種知識範疇給聯繫起來,所以趁今天有時間將其整理整理,按照個人的理解理了個圖。
上圖中,我主要關注的點在右邊橘紅色部分,也是該代碼插件主要的功能實現。
3.核心代碼結構分析:
最新版(1.2.4版本),其實體有16個,我將其按照功能分類進行一下整理:
上圖爲實現代碼生成的核心實體。
4.執行流程-源碼分析:
首先,我們從它的使用方式來看:
從這裏結合前期的理論準備,我們需要知道這樣的一些配置:
接口體系如下:
點擊相應的菜單,會跳轉到相應的界面。 注意,這邊的類均是 swing下的,它們本身可以看作是相應的視圖,有自己的視圖接口體系,所以我只看與邏輯相關的代碼,一些事件監聽之類的方法就跳過。
以生成代碼爲例子:
總之,要進行代碼的生成,必須有合法的列名與實體類型的映射關係。驗證合法後,通過點擊菜單,將會打開一個視圖實體,SelectSavePath,它是Dialog的子類。其構造方法如下:
最後,根據配置,選擇是否需要格式化代碼。 代碼生成的一個大體流程就是這樣。
5.配置分析:
該文件,幾乎包括了對該插件所有 源 , 的配置。
大體的配置邏輯便是這樣,相應的頁面樣式,這裏就不繼續分析了。 待後面更加熟悉之後,再行看情況進行分析。
此外,關於velocity模板部分還未進行學習,感覺挺強大的,值得一學。。 。
感謝開源的大佬無私奉獻,讓我們有機會接觸方方面面的知識。