<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] [https://www.cnblogs.com/jajian/p/8081658.html](https://www.cnblogs.com/jajian/p/8081658.html) # Alibaba Java Code Guidelines 阿里巴巴java開發手冊使用 http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/ 阿里巴巴java開發手冊使用 https://segmentfault.com/a/1190000011730490 **在文件夾或者文件上右擊編碼歸約掃描** 掃描代碼后,將不符合規約的代碼按?**Blocker/Critical/Major**?三個等級顯示在下方,雙擊可以定位至代碼處,右側窗口還有針對代碼的批量修復功能 ![](https://img.kancloud.cn/f7/7e/f77ef5ce01c2e2bcc65e248d855d5598_1225x614.png) 解釋下**Blocker/Critical/Major**三個等級, 在 Snoar 中對代碼規則有五個級別,這是前三個:崩潰/嚴重/重要 ,也就是說前兩級別是必須要處理掉的。 # maven-helper插件 安裝Plugins,裝完重啟IDE maven helper 打開pom文件,并可以切換tab,簡單使用,如下圖 ![](https://box.kancloud.cn/835a5b22133d2861f13f2aec6ef5dcf1_513x563.png) 顯示依賴樹 打開pom文件,然后右鍵: ![](https://box.kancloud.cn/f8706a6fb9cfe5825c1524c7935e0b41_526x315.png) 如果有依賴沖突的話,顯示的是顯示為紅色 可以command+f搜索 命令行就是`mvn dependency:tree` ![](https://box.kancloud.cn/d1c12752f8ede83dea0c62e4f1fb9a75_879x556.png) ![](https://box.kancloud.cn/be747619b37a256b3526a8a62dc23588_823x646.png) 通過idea的maven依賴分析將不需要的依賴exclude掉 ![](https://box.kancloud.cn/f6440b53d382413d46be466aa4a3671a_363x267.png) 官方地址: https://plugins.jetbrains.com/plugin/7179-maven-helper # GsonFormat插件 也有在線版本的:[https://www.bejson.com/json2javapojo/new/](https://www.bejson.com/json2javapojo/new/) Java開發中,經常有把json格式的內容轉成Object的需求,GsonFormat這款插件可以實現該功能。 command+n調出下面的對話框 ![](https://box.kancloud.cn/5f5f3e2fed125e60e270dee676bd4750_536x455.png) 然后粘貼json ![](https://box.kancloud.cn/62a8f982c0ffa812401e8fe7c9eddf35_921x601.png) 然后點擊ok到下一層 ![](https://box.kancloud.cn/ed331931a849daa6f54ec22b25feefe7_901x567.png) 這邊是可以編輯的 官方地址: https://plugins.jetbrains.com/plugin/7654-gsonformat # FindBugs-IDEA插件 代碼分析工具,可發現代碼中潛在BUG和不規范之處,有利于提高代碼質量。右鍵即可選擇要掃描的范圍,可在FindBugs-IDEA控制臺查看掃描結果并根據code bug級別選擇修復 ![](https://box.kancloud.cn/79569839f4abd9021504686da33e0235_904x531.png) **結果分析** ~~~tsx 1. Bad practice 壞的實踐 一些不好的實踐,下面列舉幾個: 1)類定義了equals(),卻沒有hashCode();。 2)Statement 的execute方法調用了非常量的字符串;或Prepared Statement是由一個非常量的字符串產生。 3)方法終止或不處理異常,一般情況下,異常應該被處理或報告,或被方法拋出。 2. Correctness 一般的正確性問題 可能導致錯誤的代碼,下面列舉幾個: 1)空指針被引用;在方法的異常路徑里,空指針被引用;方法沒有檢查參數是否null;null值產生并被引用;null值產生并在方法的異常路徑被引用;傳給方法一個聲明為@NonNull的null參數;方法的返回值聲明為@NonNull實際是null。 2)類定義了hashcode()方法,但實際上并未覆蓋父類Object的hashCode();類定義了tostring()方法,但實際上并未覆蓋父類Object的toString();很明顯的方法和構造器混淆;方法名容易混淆。 3)方法嘗試訪問一個Prepared Statement的0索引;方法嘗試訪問一個ResultSet的0索引。 4)所有的write都把屬性置成null,這樣所有的讀取都是null,這樣這個屬性是否有必要存在;或屬性從沒有被write。 3. Internationalization 國際化 當對字符串使用upper或lowercase方法,如果是國際的字符串,可能會不恰當的轉換。 4. Malicious code vulnerability 惡意代碼 如果代碼公開,可能受到惡意攻擊的代碼,下面列舉幾個: 1)一個類的finalize()應該是protected,而不是public的。 2)屬性是可變的數組;屬性是可變的Hashtable;屬性應該是package protected的。 5. Multithreaded correctness 多線程的正確性 多線程編程時,可能導致錯誤的代碼,下面列舉幾個: 1)ESync:空的同步塊,很難被正確使用。 2)MWN:錯誤使用notify(),可能導致IllegalMonitorStateException異常;或錯誤的 使用wait()。 3)使用notify()而不是notifyAll(),只是喚醒一個線程而不是所有等待的線程。 4)構造器調用了Thread.start(),當該類被繼承可能會導致錯誤。 6. Performance 性能問題 可能導致性能不佳的代碼,下面列舉幾個: 1)DM:方法調用了低效的Boolean的構造器,而應該用Boolean.valueOf(…);用類似 Integer.toString(1) 代替new Integer(1).toString();方法調用了低效的float的構造器,應該用靜態的valueOf方法。 2)SIC:如果一個內部類想在更廣泛的地方被引用,它應該聲明為static。 3)SS: 如果一個實例屬性不被讀取,考慮聲明為static。 4)UrF:如果一個屬性從沒有被read,考慮從類中去掉。 5)UuF:如果一個屬性從沒有被使用,考慮從類中去掉。 7. Dodgy 不符合規范的,有潛在危險的 具有潛在危險的代碼,可能運行期產生錯誤,下面列舉幾個: 1)CI: 類聲明為final但聲明了protected的屬性。 2)DLS:對一個本地變量賦值,但卻沒有讀取該本地變量;本地變量賦值成null,卻沒有讀取該本地變量。 3)ICAST: 整型數字相乘結果轉化為長整型數字,應該將整型先轉化為長整型數字再相乘。 4)INT:沒必要的整型數字比較,如X <= Integer.MAX_VALUE。 5)NP: 對readline()的直接引用,而沒有判斷是否null;對方法調用的直接引用,而方法可能返回null。 6)REC:直接捕獲Exception,而實際上可能是RuntimeException。 7)ST: 從實例方法里直接修改類變量,即static屬性。 ~~~ 官方地址: https://plugins.jetbrains.com/plugin/3847-findbugs-idea # .ignore插件 地址:https://plugins.jetbrains.com/plugin/7495--ignore 生成各種ignore文件,一鍵創建git ignore文件的模板,免得自己去寫 # visualVM Launcher 地址:https://plugins.jetbrains.com/plugin/7115-visualvm-launcher 運行java程序的時候啟動visualvm,方便查看jvm的情況 比如堆內存大小的分配 某個對象占用了多大的內存,jvm調優必備工具 # GenerateAllSetter插件 ![](https://img.kancloud.cn/d4/5d/d45d95d93a08dc68dac534aae01c19a1_752x166.png) 地址:https://plugins.jetbrains.com/plugin/9360-generateallsetter 一鍵調用一個對象的所有set方法并且賦予默認值 在對象字段多的時候非常方便 # MyBatisCodeHelperPro插件 地址:https://plugins.jetbrains.com/plugin/9837-mybatiscodehelperpro mybatis代碼自動生成插件,大部分單表操作的代碼可自動生成 減少重復勞動 大幅提升效率 視頻: https://www.bilibili.com/video/av23458308/ # Rainbow Brackets插件 地址:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets 彩虹顏色的括號 看著很舒服 敲代碼效率變高 ![](https://box.kancloud.cn/537d06f66d6cc98a8eec839487352694_915x262.png) # Power Mode II ![](https://img.kancloud.cn/da/c8/dac8a67ab65366bc9d4697d98d74e350_1068x1230.png) # Translation [http://yiiguxing.github.io/TranslationPlugin/start.html](http://yiiguxing.github.io/TranslationPlugin/start.html) 翻譯插件 translate.google.com在國內是需要VPN才能訪問的 1. 申請有道智云翻譯服務(可選) * 注冊[有道智云](http://ai.youdao.com/)帳號并獲取其**應用ID**和**密鑰** * 綁定**應用ID**和**密鑰**:Preferences(Settings) > \[Other Settings\] > Translation > 有道翻譯 注:請注意保管好你的應用密鑰,防止其泄露。如帳號欠費,將無法使用。 2. 申請百度翻譯服務(可選) * 注冊[百度翻譯開放平臺](http://api.fanyi.baidu.com/api/trans/product/desktop?req=developer)帳號并獲取其**應用ID**和**密鑰** * 綁定**應用ID**和**密鑰**:Preferences(Settings) > \[Other Settings\] > Translation > 百度翻譯 注:請注意保管好你的應用密鑰,防止其泄露。如帳號欠費,將無法使用。 3. 開始翻譯 選擇文本或者鼠標指向文本 > 單擊鼠標右鍵 > Translate 或者使用快捷鍵進行翻譯,詳見[Actions](http://yiiguxing.github.io/TranslationPlugin/start.html#actions). # mongo4idea mongo客戶端 https://github.com/dboissier/mongo4ideaiedis # redis https://plugins.jetbrains.com/plugin/9228-iedis 還有個iedis2要收費 # PlantUML插件 如果不想裝graphviz,想直接用, 可以下載chrome插件PlantUML Viewer, 安裝之后直接編輯文本,可以在瀏覽器直接顯示 --- 還有個SequenceDiagram 時序圖插件,沒用的起來 # Settings Sync plugin設置共享 在開始使用 Settings Sync 之前,請確保**Settings Sync**插件已啟用 如果要共享 IDE 設置,請執行以下步驟: 1. 登錄以下任一項: * 您的 IDE:從主菜單中選擇 **Help | Register**,選擇使用 [JetBrains 帳戶](https://sales.jetbrains.com/hc/en-gb/articles/208459005-What-is-JetBrains-Account-) 激活您的許可證并輸入您的憑據。 * [Toolbox App](https://www.jetbrains.com/toolbox/app/):單擊應用程序右上角的齒輪圖標,然后選擇 **Settings** 并單擊 **Log in** 按鈕。請注意,通過登錄 Toolbox App,您將自動登錄到您運行的所有 JetBrains 產品。 2. 在 IntelliJ IDEA 窗口的右下角,單擊齒輪圖標并選擇 **Enable Settings Sync**。您的本地設置將導出到關聯您的帳戶的 JetBrains 存儲庫。 3. 如果想要自動同步所有已啟用和已禁用插件的列表,請選擇 **Sync plugins silently** 選項。有關如何禁用手動同步插件的說明,請參閱 [Sync plugins](https://www.jetbrains.com/help/idea/sharing-your-ide-settings.html#sync-plugins)。 4. 在要應用這些設置的其他計算機上,單擊齒輪按鈕并選擇 **Enable Sync**。在打開的對話框中,單擊 **Get Settings from Account** 以從存儲庫導入設置。如果要使用本地設置覆蓋存儲庫,請單擊 **Keep and Sync Local Settings**。 每次運行不同的 IDE 實例時(或者在超過一小時不活動后激活它),或者當任何這些設置被修改并且已應用此更改時,本地設置將自動與存儲在存儲庫中的設置同步。 **Sync plugin** 安裝或卸載插件或更改其狀態(啟用/禁用)時,可以將這些更改應用于所有 IDE 安裝。 如果想要在 IDE 實例之間自動同步插件,請在啟用設置同步時選擇 **Sync plugins silently** 選項。 手動同步插件的步驟: 1. 在 IntelliJ IDEA 窗口的右下角,單擊齒輪圖標并選擇 **Sync Plugins**。 2. 打開一個對話框,顯示自上次同步以來修改的所有插件的列表。單擊每個插件旁邊的箭頭按鈕,然后選擇修改插件的狀態、將存儲庫狀態應用于所有安裝、在本地跳過此更改或跳過所有 IDE 實例。 3. 在為每個插件選擇了要執行的操作后,單擊 **Apply Changes**。 # CamelCase插件 1. 安裝方法 idea菜單欄-file-settings-搜索"plugins"-點擊下面按鈕‘browse repositories‘-搜索“CamelCase”-點擊安裝 2. 使用方法 安裝后重新打開idea,選中內容,快捷鍵shit+alt+u,選中內容中的單詞 就會變,直到變成你想要的。必須要字符串本來就是下劃線或者駝峰這些類型,username不行,userName可以 這個真的很方便,特別是mysql數據庫字段帶下劃線 直接復制字段到java,開發很快! # CheckStyle代碼風格檢查 配個google stype,也可以自定義code style,然后對整個項目檢查 # grep console ![](https://img.kancloud.cn/12/07/1207f20aaa2d898c483720b2f939be98_2102x736.png) 并且可以設置不同的日志級別的顯示樣式 ![](https://img.kancloud.cn/08/e7/08e70abcfb5270942d43287000df543c_2354x1100.png) 設置下背景色 # MyBatis Log Plugin Mybatis現在是java中操作數據庫的首選,在開發的時候,我們都會把Mybatis的腳本直接輸出在console中,但是默認的情況下,輸出的腳本不是一個可以直接執行的。 **配置打印日志參數,注意,如果這里不使用日志打印的話那個插件的功能是無法使用的。這里是非常重要的配置。** ![](https://img.kancloud.cn/0d/02/0d02250e51dacc6586073b4452a73eac_703x171.png) 在idea的tool里面 ![](https://img.kancloud.cn/79/bb/79bbf124d6d318f7c405ff3d1bfbe95a_511x378.png) 單擊,窗口就出來了.接下來我們使用工具時,只要控制臺有sql打印,我們的mybatis sql log 就會自動幫大家把sql和參數進行拼裝 ![](https://img.kancloud.cn/ca/f2/caf24ed3a1236fd280e457ddd69f6b22_811x313.png) # ResfulTookit 一套 RESTful 服務開發輔助工具集。 1. 根據 URL 直接跳轉到對應的方法定義 ( or Ctrl Alt N ); 2. 提供了一個 Services tree 的顯示窗口; 3. 一個簡單的 http 請求工具; 4. 在請求方法上添加了有用功能: 復制生成 URL;,復制方法參數... 5. 其他功能: java 類上添加 Convert to JSON 功能,格式化 json 數據 ( Windows: Ctrl + Enter; Mac: Command + Enter )。 根據 URL 直接跳轉到對應的方法定義 ( Ctrl \\ or Ctrl Alt N ); ![](https://img.kancloud.cn/a0/b5/a0b50e5420616938aba82ce7728980ac_418x234.png) **接口測試** RestfulToolkit另外還提供一個強大的功能,它會根據我們的controller提供的方法,自動生成請求數據。那在我們使用postman測試接口時方便了很多。 ![](https://img.kancloud.cn/7c/ab/7cab1a1d9eb8458e8d53ea03d50e0178_966x893.png) # jenkins control plugin ![](https://img.kancloud.cn/4a/13/4a1385689b95cf36558413ca638923d4_518x292.png) **建議:**如果啟用 CSRF的話(默認啟用),到 系統管理 -> Configure Global Security(全局安全配置)中, 勾選下圖選項. ![](https://img.kancloud.cn/67/a8/67a874f3c9ba33a74e6566cc6db06431_629x139.png) 注意:如果你用的是 jenkins 2, 并且啟用了 CSRF(防止跨站點請求偽造),需要填 Crumb Data, 這個可以通過以下url獲取: [http://localhost:8080/crumbIssuer/api/xml?tree=crumb#](http://http//localhost:8080/crumbIssuer/api/xml?tree=crumb#) ![](https://img.kancloud.cn/62/d2/62d2716dbc8e5a0ecbec1b9b5186dbcd_496x451.png) 說明:本頁面內容不可復制,可通過鼠標右鍵》查看網頁源代碼獲取,將crumb值填入第二張圖idea設置的Crumb Data中 ? 不建議:如果不啟用 CSRF的話(默認啟用),到 系統管理 -> Configure Global Security(全局安全配置)中, 取消勾選下圖選項 ![](https://img.kancloud.cn/74/82/74829b1c928e5e9cd884e0182aa18d31_352x137.png) 說明:如果不啟用 CSRF的話,第二張圖idea設置的Crumb Data則不用填 進行到此處已經集成完成,可以愉快的玩耍了,嘿嘿。 1. Go to View->Tools&Windows->Jenkins,打開右側邊欄的 Jenkins 工作臺。 2. 到你的jenkins 服務器瀏覽器頁面上,手動創建一個簡單的Job,回到Intellij, 刷新下,應該就可以看到這個job了 ![](https://img.kancloud.cn/d7/c6/d7c68e092608cf9bba3f4c205a42976a_264x120.png) # CodeGlance側邊地圖插件
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看