主頁 > 後端開發 > IntelliJ IDEA上手這一篇就夠了,從入門到上癮

IntelliJ IDEA上手這一篇就夠了,從入門到上癮

2023-05-23 07:41:37 後端開發

前言

每次換電腦,最最最頭疼的事情莫過于安裝各種軟體和搭建開發環境,這算是不想換電腦的一個原因吧(最主要還是窮),除非是電腦壞了開不了機或者點一下卡一下,真不想換電腦,每次換電腦都得折騰好久,

趁著這次換電腦了,順便整理下IDEA安裝使用及配置,

官網提供的詳細使用檔案,英文好的可以直接上手了

https://www.jetbrains.com/help/idea/getting-started.html

IntelliJ IDEA簡介

IDEA,全稱IntelliJ IDEA,是 Java 語言的集成開發環境, IDEA 在業界被公認為是最好的 java 開發工具之一,一旦用上了就會上癮,尤其在智能代碼助手、代碼自動提示、重構、 J2EE
支持、 Ant、 JUnit、 CVS 整合、代碼審查、創新的 GUI 設計等方面的功能可以說是超常的,

IDEA在官網是這樣解釋自己的
Excel at enterprise, mobile and web development with Java, Scala and Groovy,
with all the latest modern technologies and frameworks available out of the
box.
簡明翻譯: IntelliJ IDEA 主要用于支持 Java、 Scala、 Groovy 等語言的開發工
具,同時具備支持目前主流的技術和框架,擅長于企業應用、移動應用和 Web 應
用的開發

IntelliJ IDEA 相比于Eclipse的優勢

  • 強大的整合能力,比如: Git、 Maven、 Spring 等
  • 提示功能的快速、 便捷
  • 提示功能的范圍廣
  • 好用的快捷鍵和代碼模板
  • 精準搜索

IntelliJ IDEA 下載安裝

  1. 下載地址

https://www.jetbrains.com/idea/download/#section=windows

DEA 分為兩個版本: 旗艦版(Ultimate)和社區版(Community),
旗艦版:收費(限 30 天免費試用),功能全面,插件豐富,但是收費,按年收費;
社區版:免費試用,功能相對而言不是很豐富,但是不影響開發使用,

  1. 軟硬體要求(官方要求)

以現目前最新版為例(現在最新版是idea-2021.3.2)

  • 作業系統: 64-bit versions of Microsoft Windows 10, 8
  • 記憶體:2 GB RAM minimum, 8 GB RAM recommended
  • 硬碟:2.5 GB hard disk space, SSD recommended
  • 螢屏:1024x768 minimum screen resolution
  • JRE:JRE 1.8 is bundled with the IntelliJ IDEA distribution. You do not need to install Java
    on your computer to run IntelliJ IDEA.
  • JDK A standalone JDK is required for Java development

個人建議配置: 記憶體 8G 或以上, CPU 最好 i5 以上, 最好安裝塊固態硬碟(SSD),將 IDEA
安裝在固態硬碟上,這樣流暢度會加快很多

  1. 安裝程序

雙擊下載好的exe檔案進行無腦安裝即可


  1. 激活
    淘寶,你懂的,

目錄結構介紹

  1. 安裝目錄介紹

bin:容器,執行檔案和啟動引數等

idea64.exe.vmoptions 是比較重要的組態檔,這里以我個人電腦為例(win10 64位 16G記憶體)

-Xms512m   # 設定初始的記憶體數,增加該值可以提高 Java 程式的啟動速度
-Xmx1500m  #設定最大記憶體數,提高該值,可以減少記憶體 Garage 收集的頻率,提高程式性能
-XX:ReservedCodeCacheSize=512m  #保留代碼占用的記憶體容量
-XX:+IgnoreUnrecognizedVMOptions
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
  • help:快捷鍵檔案和其他幫助檔案
  • jbr: 咱們在介紹intellij idea安裝之前的準備時就給大家說過硬體和軟體上的一個要求,如果你只是想運行java程式,那么你就用不著再去裝jre了,因為intellij idea已經系結好了,在jbr目錄中,大家就能夠看到它已經提供好了java的運行環境,當然,如果你要是想開發java程式的話,那么就得需要獨立安裝jdk了
  • lib: idea 依賴的類別庫
  • license:各個插件許可
  • plugin:插件
  1. 設定目錄介紹

路徑
C:\Users\用戶.IntelliJIdea2019.3

這是 IDEA 的各種配置的保存目錄, 這個設定目錄有一個特性,就是你洗掉掉整
個目錄之后,重新啟動 IntelliJ IDEA 會再自動幫你生成一個全新的默認配置,
所以很多時候如果你把 IntelliJ IDEA 配置改壞了,刪掉該目錄,一切都會還原到默認值

① config 目錄

此目錄為IDEA最重要的目錄,目錄主要記錄了: IDE 主要配置功能、自定義的代碼模板、自定義的檔案
模板、自定義的快捷鍵、 Project 的 tasks 記錄等等個性化的設定

② system目錄

system 目錄是 IntelliJ IDEA 系統檔案目錄,是 IntelliJ IDEA 與開發專案一個
橋梁目錄, 里面主要有:快取、索引、容器檔案輸出等等

創建Java工程,實作Hell World

  1. 創建工程
  • Create New Project:創建一個新的工程
  • Import Project:匯入一個現有的工程
  • Open:打開一個已有工程,比如:可以打開 Eclipse 專案,
  • Check out from Version Control:可以通過服務器上的專案地址 check out Github
    上面專案或其他 Git 托管服務器上的專案

這里選擇 Create New Project

IntelliJ IDEA 沒有類似 Eclipse 的作業空間的概念( Workspaces),最大單元就是
Project, 這里可以把 Project 理解為 Eclipse 中的 Workspace,

  1. 選擇jdk版本,框架

  2. 選擇模板

  3. 設定專案路徑及專案名稱

  4. 專案界面

  • 工程下的 src 類似于 Eclipse 下的 src 目錄, 用于存放代碼
  • 工程下的.idea 和 project01.iml 檔案都是 IDEA 工程特有的,類似于 Eclipse 工
    程下的.settings、 .classpath、 .project 等
  1. 創建package和class

在src目錄下創建一個package

在剛建的package下新建class

在HelloWorld類里宣告主方法,控制臺列印Hello World! 到此成功完成

模塊(Module)簡介

在 Eclipse 中我們有 Workspace(作業空間)和 Project(工程)的概念,在 IDEA
中只有 Project(工程)和 Module(模塊)的概念
① Eclipse 中 workspace 相當于 IDEA 中的 Project
②Eclipse 中 Project 相當于 IDEA 中的 Module

eclipse在同一視窗可以管理 n 個專案,這在IntelliJ IDEA 是無法做到的,
IntelliJ IDEA 提供的解決方案是打開多個專案實體,
即打開多個專案視窗, 即: 一個 Project 打開一個 Window 視窗

在 IntelliJ IDEA 中 Project 是最頂級的級別,次級別是 Module, 一個 ProjectIntelliJ IDEA 的安裝、 配置與使用可以有多個 Module,目前主流的大型專案都是分布式部署的, 結構都是類似這種多 Module 結構

下圖為若依專案模塊截圖,根據model命名可以看出,他們之間處于同一專案下,彼此之間有著不可分割的業務關系

相比多個Module專案,小專案就沒這么復雜,IntelliJ IDEA創建專案的時候默認的就是單Module結構的.

  1. IntelliJ IDEA 中一個專案是以Module為單位的,那么,下面我們就來看看建立和洗掉Module

① 怎么建立Module?

之后,我們可以在 Module 的 src 里寫代碼,此時 Project 工程下的 src 就沒什么用了,可以刪掉,

② 如何洗掉一個Module呢?

  • remove Module
  • delete Module

直到第二步完成,Module將徹底從磁盤上洗掉

查看專案配置

IDEA 常用配置

file-->Settings 進入設定界面

  1. Appearance & Behavior

① 設定主題

默認有如下三種主題,根據自己喜好設定即可

② 設定表單及選單的字體及大小

  1. Editor - General

① 設定滑鼠滾輪修改字體大小

② 設定滑鼠懸浮提示

③ 設定自動導包

  • Add unambiguous imports on the fly:自動匯入不明確的結構
  • Optimize imports on the fly: 自動幫我們優化匯入的包

④ 設定顯示行號和方法間的分隔符

  • 如上圖紅圈所示, 可以勾選 Show line numbers:顯示行數, 建議勾上,好定位代碼
  • 如上圖紅圈所示, 可以勾選 Show method separators: 顯示方法分隔線,建議勾上,單一個方法代碼比較多時,好區分一個方法到哪結束

⑤ 忽略大小寫提示

  • IntelliJ IDEA 的代碼提示和補充功能默認是區分大小寫的,我們輸入stringb是沒有提示的
  • 按照上圖,我們把Match case 前的勾去掉后代碼提示就不區分大小寫了,輸入stringb后就會有提示

⑥ 設定取消單行顯示 tabs 的操作

在打開很多檔案的時候, IntelliJ IDEA 默認是把所有打開的檔案名 Tab 單行顯示的,如果需要多行顯示檔案,超出部分不折疊,則按照上圖設定即可

  1. Editor – Font

① 設定默認的字體、字體大小、字體行間距

  1. Editor – Color Scheme

① 修改代碼中注釋的字體顏色

  • Doc Comment – Text: 修改檔案注釋的字體顏色
  • Block comment: 修改多行注釋的字體顏色
  • Line comment: 修改當行注釋的字體顏色
  1. Editor – File and Code Templates

① 修改類頭的檔案注釋資訊

/**
@author xiezhr
@create ${YEAR}-${MONTH}-${DAY} ${TIME}
*/
  1. Editor – File Encodings

① 設定專案檔案編碼格式

  1. Build,Execution,Deployment

① 設定自動編譯

  • Intellij Idea 默認狀態為不自動編譯狀態, Eclipse 默認為自動編譯,若你是剛才eclipse轉過來的,這里需要設定下,
  1. 設定代碼水平或垂直顯示

快捷鍵設定

  1. 相信不少小伙伴是剛才eclipse轉過來的,習慣了eclipse的快捷鍵,沒問題Intellij Idea中支持將快捷鍵設定成eclipse快捷鍵,

  1. 匯入快捷鍵設定


  1. 常用快捷鍵(標?的為常用)

① 編輯類

快捷鍵 快捷鍵說明
Ctrl + Space 補全代碼,由于經常與作業系統的輸入法的切換沖突,所以實際很少用,一般直接在 idea 中開啟輸入自動補全機制
Ctrl + Shift + Space 在列出的可選項中只顯示出你所輸入的關鍵字最相關的資訊,?
Ctrl + Shift + Enter 代碼補全后,自動在代碼末尾添加分號結束符
Ctrl + P 在某個方法中,呼叫該按鍵后,會展示出這個方法的呼叫引數串列資訊
Ctrl + Q 展示某個類或者方法的 API 說明檔案
Ctrl + mouse 跳進到某個類或者方法源代碼中進行查看?
Alt + Insert 自動生成某個類的 Getters, Setters, Constructors, hashCode/equals, toString 等代碼 ?
Ctrl + O 展示該類中所有覆寫或者實作的方法串列
Ctrl + Alt + T 自動生成具有環繞性質的代碼,比如:if..else,try..catch, for, synchronized 等等,使用前要先選擇好需要環繞的代碼塊?
Ctrl + / 對單行代碼,添加或洗掉注釋,分為兩種情況:如果只是游標停留在某行,那么連續使用該快捷鍵,會不斷注釋掉下一行的代碼;如果選定了某行代碼(選定了某行代碼一部分也算這種情況),那么連續使用該快捷鍵,會在添加或洗掉該行注釋之間來回切換?
Ctrl + Shift + / 對代碼塊,添加或洗掉注釋,它與 Ctrl + / 的區別是,它只會在代碼塊的開頭與結尾添加注釋符號?
Ctrl + W 選中當前游標所在的代碼塊,多次觸發,代碼塊會逐級變大?
Ctrl + Shift + W 是 Ctrl + W 的反向操作,多次觸發,代碼塊會逐級變小,最小變為游標
Alt + Q 展示包含當前游標所在代碼的父節點資訊,比如在 java 方法中呼叫,就會展示方法簽名資訊
Alt + Enter 展示當前當前游標所在代碼,可以變化的擴展操作
Ctrl + Alt + L 格式化代碼?
Ctrl + Alt + O 去除沒有實際用到的包,這在 java 類中特別有用?
Ctrl + Alt + I 按照縮進的設定,自動縮進所選擇的代碼段
Tab / Shift + Tab 縮進或者不縮進一次所選擇的代碼段?
Ctrl + X 或 Shift Delete 剪切當前代碼?
Ctrl + C 或 Ctrl + Insert 拷貝當前代碼?
Ctrl + V 或 Shift + Insert 粘貼之前剪切或拷貝的代碼?
Ctrl + Shift + V 從之前的剪切或拷貝的代碼歷史記錄中,選擇現在需要粘貼的內容?
Ctrl + D 復制當前選中的代碼?
Ctrl + Y 洗掉當前游標所在的代碼行?
Ctrl + Shift + J 把下一行的代碼接續到當前的代碼行
Ctrl + Enter 當前代碼行與下一行代碼之間插入一個空行,原來所在的游標不變?
Shift + Enter 當前代碼行與下一行代碼之間插入一個空行,原來游標現在處于新加的空行上?
Ctrl + Shift + U 所選擇的內容進行大小寫轉換?
Ctrl + Shift + ]/[ 從當前游標所在位置開始,一直選擇到當前游標所在代碼段起始或者結束位置
Ctrl + Delete 洗掉從當前游標所在位置開始,直到這個單詞的結尾的內容
Ctrl + NumPad(+/-) 展開或收縮代碼段?
Ctrl + Shift + NumPad(+) 展開所有代碼段
Ctrl + Shift + NumPad(-) 收縮所有代碼段
Ctrl + F4 關閉當前標簽頁
Shift + F6 修改名字?

② 查找替換

快捷鍵 快捷鍵說明
Ctrl + F 在當前標簽頁中進行查找,還支持正則運算式?
F3 如果找到了多個查找結果,每呼叫一次就會跳到下一個結果,很方便哦
Shift + F3 是 F3 的反向操作,即每呼叫一次就會跳到上一個結果
Ctrl + R 在當前標簽頁中進行替換操作?
Ctrl + Shift + F 通過路徑查找?
Ctrl + Shift + R 通過路徑替換?

圖示 說明
向上箭頭 就是 快捷鍵【Shift + F3】,每呼叫一次就會跳到上一個結果
向下箭頭 就是 快捷鍵【F3】,每呼叫一次就會跳到下一個結果
加號符號 把當前的高亮項加入到選中的串列中
減號符號 把當前的高亮項從選中的串列中移除
勾選符號 把所有的查找結果同時選中,這很適合批量操作
文本內的向上箭頭 打開查詢結果串列面板
兩個框加一個向下箭頭 更多選項
Match Case 是否大小寫敏感
Regex 正則運算式
Words 匹配單詞
x matches x 表示的是找到的記錄數

④ 查看使用情況

快捷鍵 快捷鍵說明
Alt + F7 在當前專案中的使用情況,會打開一個使用情況面板
Ctrl + F7 在當前檔案中的使用情況,找的內容會低亮顯示
Ctrl + Shift + F7 在當前檔案中的使用情況,找的內容會高亮顯示
Ctrl + Alt + F7 打開使用情況串列?

④ 編譯運行

快捷鍵 快捷鍵說明
Ctrl + F9 編譯專案(如果之前有編譯過,那么只會編譯那些修改的類或者依賴的包?
Ctrl + Shift + F9 編譯選中的范圍(如果在某個類中,那么只會編譯當前類)
Alt + Shift + F10 會打開一個已經配置的運行串列,讓你選擇一個后,再運行
Alt + Shift + F9 會打開一個已經配置的運行串列,讓你選擇一個后,再以除錯模式運行
Shift + F10 立即運行當前配置的運行實體,這個在單元測驗中特別好用?
Shift + F9 立即以編譯模式運行當前配置的運行實體?
Ctrl + Shift + F10 按照編輯器系結的檔案型別,運行相關的程式,比如一個 html 頁面,呼叫后,會直接打開一個瀏覽器

⑤ 除錯

快捷鍵 快捷鍵說明
F8 跳到當前代碼下一行?
F7 跳入到呼叫的方法內部代碼?
Shift + F7 會打開一個面板,讓你選擇具體要跳入的類方法,這個在復雜的嵌套代碼中特別有用
Shift + F8 跳出當前的類,到上一級?
Alt + F9 讓代碼運行到當前游標所在處,非常棒的功能?
Alt + F8 打開一個運算式面板,然后進行進一步的計算
F9 結束當前斷點的本輪除錯(因為有可能代碼會被呼叫多次,所以呼叫后只會結束當前的這一次);如果有下一個斷點會跳到下一個斷點中?
Ctrl + F8 在當前游標處,添加或者洗掉斷點
Ctrl + Shift + F8 打開當前斷點的面板,可以進行條件過濾哦

⑥ 導航

快捷鍵 快捷鍵說明
Ctrl + N 打開類查詢框?
Ctrl + Shift + N 打開檔案查詢框?
Ctrl + Alt + Shift + N 打開文本查詢框
Alt + 右箭頭/左箭頭 跳到下一個/上一個編輯器標簽
F12 如果當前在編輯視窗,觸發后,會跳到之前操作過的工具列上
ESC 從工具列上,再跳回原來的編輯視窗,一般與 F12 配合使用
Shift + ESC 隱藏最后一個處于活躍狀態的工具視窗
Ctrl + Shift + F4 同時關閉處于活動狀態的某些工具列視窗
Ctrl + G 跳轉至某一行代碼?
Ctrl + E 打開曾經操作過的檔案歷史串列
Ctrl + Alt + 右箭頭/左箭頭 在曾經瀏覽過的代碼行中來回跳
Ctrl + Shift + Backspace 跳轉到最近的編輯位置(如果曾經編輯過代碼)
Alt + F1 打開一個型別串列,選擇后會導航到當前檔案或者內容的具體與型別相關的面板中
Ctrl + B 或 Ctrl + 滑鼠左鍵 如果是類,那么會跳轉到當前游標所在的類定義或者介面;如果是變數,會打開一個變數被參考的串列?
Ctrl + Alt + B 跳轉到實作類,而不是介面?
Ctrl + Shift + I 打開一個面板,里面包含類代碼
Ctrl + Shift + B 打開變數的型別所對應的類代碼,只對變數有用
Ctrl + U 打開方法的超類方法或者類的超類,只對有超類的方法或者類有效
Alt + 上/下箭頭 在某個類中,跳到上一個/下一個方法的簽名上
Ctrl + ]/[ 移動游標到類定義的終止右大括號或者起始左大括號
Ctrl + F12 打開類的結構串列?
Ctrl + H 打開類的繼承關系串列
Ctrl + Shift + H 打開某個類方法的繼承關系串列
Ctrl + Alt + H 打開所有類的方法串列,這些方法都呼叫了當前游標所處的某個類方法?
F2/Shift + F2 在編譯錯誤的代碼行中來回跳
F4 打開當前游標所在處的方法或類原始碼
Alt + Home 激活包路徑的導航欄
F11 把游標所處的代碼行添加為書簽或者從書簽中洗掉?
Ctrl + F11 把游標所處的代碼行添加為帶快捷鍵的書簽或者從快捷鍵書簽中洗掉,
Shift + F11 打開書簽串列?

Ctrl + N (打開類查詢框)

鍵入類名的關鍵字,會自動出現相關的類,很強大

Alt + F1(打開一個型別串列)

模板設定

模板包含Live Templates 和 Postfix Completion
二者的區別: Live Templates 可以自定義,而 Postfix Completion 不可以

  1. Live Templates(實時代碼模板)

配置一些常用代碼字母縮寫,在輸入簡寫時可以出現你預定義的固定模式的代碼,使得開發效率大大提高.

Java 中輸入 sout 會出現 System.out.println();

  1. 已有的常用模板

舉例
① psvm

psvm 可生成 main 方法

② sout

sout 可生成 System.out.println()

③ fori
fori:可生成 for 回圈
iter:可生成增強 for 回圈
itar:可生成普通 for 回圈

④ list.for
list.for 可生成集合 list 的 for 回圈
List list = new ArrayList();
輸入: list.for 即可輸出
for(String s:list){
}

⑤ ifn
ifn 可生成 if(xxx = null)
inn:可生成 if(xxx != null)
xxx.nn 或 xxx.null

⑥ prsf
prsf 可生成 private static final
psf 可生成 public static final
psfi 可生成 public static final int
psfs 可生成 public static final String

  1. 如果對已有的模板不習慣,可以修改

  1. 如果對已有的模板不習慣,也可以定義自己的模板,步驟如下

① 定義一個模板的組

② 在上一步定義的模板組下定義一個模板

③ 選擇應用范圍

關聯資料庫

  1. 關聯資料庫

IntelliJ IDEA 的 Database 最大特性就是對于 Java Web 專案來講,常使用的 ORM 框架,如 Hibernate、Mybatis 有很好的支持,比如配置好了 Database 之后,IntelliJ IDEA 會自動識別 domain 物件與資料表的關系,也可以通過 Database 的資料表直接生成 domain 物件等等

  1. 常用操作

  • 圖示 1:同步當前的資料庫連接,這個是最重要的操作,配置好連接以后或通過其他工具操作資料庫以后,需要及時同步,
  • 圖示 2:配置當前的連接,
  • 圖示 3:斷開當前的連接,
  • 圖示 4:顯示相應資料庫物件的資料
  • 圖示 5:編輯修改當前資料庫物件

版本控制

不管是個人開發還是團隊開發,都離不開版本控制,IntelliJ IDEA也集成了版本控制工具,

注:IntelliJ IDEA 雖然默認對這些版本控制工具提供插件支持,但是還需要我們自己安裝版本控制客戶端滴

  1. Git是我們常用的版本控制工具,是目前世界上最先進的分布式版本控制系統(沒有之一),
    我們這里就以Git為例,說一說IntelliJ IDEA怎么配置和使用Git

① 下載和安裝Git客戶端

官網下載地址:https://git-scm.com/downloads

全部無腦下一步安裝即可

默認安裝完成后,右鍵出現下圖所示圖示即表示安裝成功

安裝完成后,還需要最后一步設定,在命令列輸入:

# 注意git config命令的--global引數,用了這個引數,表示你這臺機器上所有的Git倉庫都會使用這個配置
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

因為Git是分布式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址

② 關聯 git.exe

③ 關聯 GitHub 上的賬戶,并測驗連接

④ 在 GitHub 上創建賬戶下的一個新的倉庫作為測驗

⑤ 從當前github 賬號上checkout專案

獲取GitHub上專案路徑,并將專案路徑填入其中

按照以上步驟,在GitHub上的專案即克隆到了本地,是不是很簡單哦

⑥ Git常用操作

clone:拷貝遠程倉庫
commit:本地提交
push:遠程提交
pull:更新到本地

上面只提了最最最常用的命令,如果你想更加深入的了解git,建議參考

廖雪峰的Git教程

注:即使我們沒有使用任何版本控制工具,IntelliJ IDEA也為我們提供了歷史版本查看功能

斷點除錯功能

  1. debug 模式設定

設定 Debug 連接方式,默認是 Socket,Shared memory 是 Windows 特有的一個屬性,一般在 Windows 系統下建議使用此設定,記憶體占用相對較少

  1. 常用斷點除錯說明
圖示 顯示 說明
step over 進入下一步,如果當前行斷點是一個方法,則不進入當前方法體內
step into 進入下一步,如果當前行斷點是一個方法,則進入當前方法體內
force step into 進入下一步,如果當前行斷點是一個方法,則進入當前方法體內
step out 跳出
resume program 恢復程式運行,但如果該斷點下面代碼還有斷點則停在下一個斷點上
stop 停止
view breakpoints 查看所有斷點
  1. 條件斷點

在實際專案中,我們會遇到這樣一種場景,我們已經定位問題(bug)就出在這個回圈里,但是確定不了回圈到第幾次的時候報錯,
當回圈次數比較少,是3次或5次的時候,我們可以一次一次的除錯,但當回圈次數是100次,甚至1000次呢?這個時候我們就需要用到條件斷點了,

在回圈里增加條件判斷,能大大提高我們的效率

我們在需要設定斷點的陳述句前單擊,當出現紅色斷點時,右鍵出現如下圖所示,即可加入條件,

debug程式,程式在i=10的時候停止

配置maven

  1. Java專案構成

在介紹maven 前,我們先了解下一個Java專案需要哪些東西,

  • 如果我們需要log4j,就需要吧log4j相關的jar包放到classpath中,如果我們需要fastjson,就需要把fastjson相關的jar包放到classpath中,這就是依賴包的管理
  • 我們要確定專案的目錄結構,例如,src目錄存放Java原始碼,resources目錄存放組態檔,bin目錄存放編譯生成的.class檔案
  • 我們還需要配置環境,例如JDK的版本,編譯打包的流程
  • 需要對代碼進行編譯,才能夠讓專案在一個獨立的服務器上編譯、測驗、部署
  1. maven 簡介

這些作業難度不大,但是非常瑣碎且耗時,如果每一個專案都自己搞一套配置,肯定是費時費力,我們需要的是一個標準化的Java專案管理和構建工具

Maven就是是專門為Java專案打造的管理和構建工具,Maven有以下功能

  • 提供了一套標準化的專案結構
  • 提供了一套標準化的構建流程(編譯,測驗,打包,發布……)
  • 提供了一套依賴管理機制
  1. Maven 專案結構

  1. Maven構建流程

  1. IntelliJ IDEA 配置Maven

  1. 新建Maven專案

① 新建專案

②選擇Maven專案

③設定專案引數

④配置本地Maven設定

⑤初始化專案

⑥專案構建完成

  1. 添加第三方jar包

mysql 是我們日常開發中常用的資料庫,這里我們以匯入MySQL驅動包為例

①當我們執行App.java中代碼時,由于沒加mysql驅動包,所以會報如下錯誤

②修改pom.xml檔案,添加如下內容

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.20</version>
</dependency>

注:dependency標簽中的內容我們不用死記,我們只需要到https://mvnrepository.com/查詢,然后復制即可

③ 等待驅動下載完成

④ 再次運行,成功

創建web專案并配置tomcat

  1. 新建maven web專案

① 創建專案

②選擇Maven webapp格式

③填寫專案引數

④ 配置本地Maven相關引數

⑤配置java源代碼目錄

maven web專案默認是沒有java源代碼目錄的,所以需要手動創建,并設定其為源代碼目錄
右鍵main目錄-> New->Directory->輸入java->右鍵java->Mark Directory as-> Sources Root
這樣就創建了存放java源檔案的目錄了

⑥ 新建servlet


package com.xiezhr;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

@WebServlet(name = "HelloServlet")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.getWriter().println("<h1>Hello Servlet! Hello xiezhr!</h1>");
        response.getWriter().println(new Date().toLocaleString());
    }
}

⑦修改web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.xiezhr.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

⑧pom.xml添加servlet包依賴

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
</dependency>
  1. 配置tomcat

① 打開tomcat配置,并選擇tomcat 路徑

② 設定部署

③ 運行專案

④ 測驗成功

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/553035.html

標籤:Java

上一篇:go語言中實作生產者-消費者模式有哪些方法呢

下一篇:返回列表

標籤雲
其他(159443) Python(38156) JavaScript(25441) Java(18080) C(15230) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7204) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4574) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1940) C++(1919) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • IntelliJ IDEA上手這一篇就夠了,從入門到上癮

    ### 前言 >每次換電腦,最最最頭疼的事情莫過于安裝各種軟體和搭建開發環境。這算是不想換電腦的一個原因吧(最主要還是窮)。除非是電腦壞了開不了機或者點一下卡一下,真不想換電腦。每次換電腦都得折騰好久。 ![](https://img2023.cnblogs.com/blog/2381533/202 ......

    uj5u.com 2023-05-23 07:41:37 more
  • go語言中實作生產者-消費者模式有哪些方法呢

    # 1. 簡介 本文將介紹在 Go 語言中實作生產者消費者模式的多種方法,并重點探討了通道、條件變數的適用場景和優缺點。我們將深入討論這些方法的特點,以幫助開發者根據應用程式需求選擇最適合的方式。通過靈活運用 Go 語言提供的并發原語,我們能夠實作高效、可靠的生產者消費者模式,提升系統的并發性能和可 ......

    uj5u.com 2023-05-23 07:39:25 more
  • freemodbus移植進STM32(包含HAL庫和標準庫兩種方法)

    #freemodbus移植 >基于freemodbus1.6 >使用HAL庫 >軟體:stm32cubemx stm32cubeide >>后續會更新標準庫的移植。以及rtos下的移植(盡量) ##下載freemodbus1.6 這個獲取方法網上到處都是,不細說了。 ##cubemx新建工程 新建工 ......

    uj5u.com 2023-05-23 07:38:32 more
  • 【重學C++】03 | 手擼C++智能指標實戰教程

    ## 文章首發 [【重學C++】03 | 手擼C++智能指標實戰教程](https://mp.weixin.qq.com/s/B85A_AFIAeOlfLzXOXydAw) ## 前言 大家好,今天是【重學C++】的第三講,書接上回,第二講《[02 脫離指標陷阱:深入淺出 C++ 智能指標](htt ......

    uj5u.com 2023-05-23 07:32:52 more
  • 獻給轉java的c#和java程式員的資料庫orm框架

    # 獻給轉java的c#和java程式員的資料庫orm框架 一個好的程式員不應被語言所束縛,正如我現在開源java的orm框架一樣,如果您是一位轉java的c#程式員,那么這個框架可以帶給你起碼沒有那么差的業務撰寫和強型別體驗。如果您是一位java程式員,那么該框架可以提供比`Mybatis-Plu ......

    uj5u.com 2023-05-22 08:27:33 more
  • SICP:惰性求值、流和尾遞回(Python實作)

    在上一篇博客中,我們介紹了用Python對來實作一個Scheme求值器。然而,我們跳過了部分特殊形式(special forms)和基本程序(primitive procedures)實作的介紹,如特殊形式中的delay、cons-stream,基本程序中的force、streawn-car、str... ......

    uj5u.com 2023-05-22 07:35:15 more
  • 使用 Async Rust 構建簡單的 P2P 節點

    # 使用 Async Rust 構建簡單的 P2P 節點 ### P2P 簡介 - P2P:peer-to-peer - P2P 是一種網路技術,可以在不同的計算機之間共享各種計算資源,如 CPU、網路帶寬和存盤。 - P2P 是當今用戶在線共享檔案(如音樂、影像和其他數字媒體)的一種非常常用的方法 ......

    uj5u.com 2023-05-22 07:33:10 more
  • 用go設計開發一個自己的輕量級登錄庫/框架吧(拓展篇)

    用go設計開發一個自己的輕量級登錄庫/框架吧(拓展篇),給自己的庫/框架拓展一下吧,主庫:https://github.com/weloe/token-go ......

    uj5u.com 2023-05-22 07:30:30 more
  • Java 網路編程 —— 實作非阻塞式的客戶端

    ## 創建阻塞的 EchoClient 客戶程式一般不需要同時建立與服務器的多個連接,因此用一個執行緒,按照阻塞模式運行就能滿足需求 ```java public class EchoClient { private SocketChannel socketChannel = null; public ......

    uj5u.com 2023-05-21 07:32:01 more
  • 基于Django的簡易博客系統教程

    ## 1. 安裝Django 在命令列中輸入以下命令安裝Django ```shell pip install django ``` ## 2. 創建Django專案 在命令列中輸入以下命令創建一個名為myblog的Django專案 ```shell django-admin startprojec ......

    uj5u.com 2023-05-21 07:31:58 more