使用Ideal創建一個spring boot的helloWorld項目

說明:本篇將介紹如何使用Ideal2024.2.1去創建一個spring boot的helloWorld項目,本篇將包含創建的詳細步驟以及spring boot項目的目錄結構說明,創建過程中的選項說明等。

詳細步驟如下:

第一步:點擊文件——新建——項目(若是英文版對應點擊即可)

第二步:點擊Spring Boot,填寫SpringBoot相關信息以及相關信息解釋如下:

1.名稱(Name)

作用:項目的名稱,通常也是生成的根目錄名

示例:demo0707-helloWorld

注意:最好使用小寫字母和連字符,避免空格和特殊字符

2.位置(Location)

作用:項目在本地文件系統中的存儲路徑

示例:E:\idea-Code

3.創建Git倉庫(Create Git repository)

作用:是否在項目初始化時創建本地Git倉庫

建議:勾選以方便后續版本控制

4.語言(Language)

選項:Java/Kotlin/Groovy

作用:選擇項目的主要編程語言

Java:最常用,生態最完善

Kotlin:現代語言,與Spring Boot兼容性好

Groovy:動態語言,適合腳本場景

5.類型(Type)

選項:Gradle-Groovy/Gradle-Kotlin/Maven

作用:選擇構建工具和對應的DSL

Maven:XML配置,傳統選擇

Gradle-Groovy:使用Groovy DSL的Gradle構建腳本

Gradle-Kotlin:使用Kotlin DSL的Gradle構建腳本

就是你在引入包的時候選擇什么樣的形式來引入

6.組(Group)

作用:項目的組織標識,遵循Java包命名規范

示例:com.example

通常使用公司域名反轉(如com.companyname)

7.工件(Artifact)

作用:項目的唯一標識符,通常是項目名稱的小寫形式

示例:demo0707-helloWorld

會用于生成最終的jar/war文件名

8.包名稱(Package name)

作用:項目的基礎包名,通常是Group和Artifact的組合

自動生成:com.example.demo0707helloworld

9.JDK版本(JDK)

選項:如Oracle OpenJDK 17.0.2

作用:選擇項目使用的JDK版本和供應商

建議:使用LTS版本(如8,11,17)

10.Java版本(Java)

選項:如8,11,17等

作用:指定項目使用的Java語言版本,必須與所選JDK版本兼容

11.打包方式(Packaging)

選項:Jar/War

Jar:可執行jar,包里面內嵌服務器(Spring Boot默認),適合Docker容器化部署,可直接通過java -jar命令運行

War:傳統web應用包,需部署到外部服務器

第三步:配置項目的依賴以及說明

? 在新建一個項目的時候一般只需要配置以下三個依賴即可,后續可以根據開發的需要逐步添加項目依賴,項目中所有的依賴都在pom.xml文件或者build.gradle文件中,可以直接在文件中進行添加或者刪除依賴。spring boot的版本選擇也在這。

依賴說明:

1.Spring Boot DevTools

作用:開發階段的熱部署工具集

包含功能:

應用自動重啟(代碼修改后)

LiveReload(瀏覽器自動刷新)

開發時配置默認值(如禁用模板緩存)

遠程調試支持

注意:僅用于開發環境,生產環境會自動禁用

2.Lombok

作用:通過注解減少樣板代碼

常用注解:

@Data:自動生成getter/setter/toString等

@NoArgsConstructor/@AllArgsConstructor:構造方法

@Slf4j:自動注入日志對象

優勢:使代碼更簡潔,減少重復代碼

3.Spring Configuration Processor

作用:為自定義配置屬性提供元數據支持

功能:在?application.properties/application.yml?中為自定義屬性提供代碼提示,

生成配置元數據文件?spring-configuration-metadata.json

使用場景:開發自定義 Starter 或配置類時特別有用

第四步:在點擊創建后,會加載軟件包以及Maven以及JDK等。新建后的項目目錄結構如下:

項目目錄結構分析:

demo0707-helloWorld/

├── .idea/ # IDE 配置

├── src/

│ ├── main/

│ │ ├── java/ # Java 源代碼

│ │ └── resources/ # 資源文件

│ └── test/ # 測試代碼

├── .gitignore # Git 忽略規則

├── HELP.md # 幫助文檔

├── mvnw, mvnw.cmd # Maven Wrapper的 JAR 文件和配置文件

└── pom.xml # 項目核心配置

在項目的實際開發中,用的最多的是在Java文件下編寫Java代碼,在resources文件下放資源文件。

Demo0707HelloWorldApplication文件:這個是項目的啟動文件,在項目運行時會首先執行這個文件

application.properties文件:這是配置文件,可以配置項目的參數,例如數據庫賬號密碼等

第五步:完善目錄結構

在實際的開發中我們還需要對項目的目錄結構進一步拓展,符合我們的開發習慣。

在?com.example.demo0707helloworld?包下創建我們進行Java開發的目錄結構:

controller/:存放控制器

service/:業務邏輯

repository/:數據訪問

config/:配置類

model/:數據模型

在 resources 下添加:

static/:CSS/JS/圖片

templates/:視圖模板

application.yml:可選替代 properties

添加后的目錄結構:

第六步:在啟動程序Demo0707HelloWorldApplication 中添加打印HelloWorld打印程序

package com.example.demo0707helloworld;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Demo0707HelloWorldApplication {public static void main(String[] args) {SpringApplication.run(Demo0707HelloWorldApplication.class, args);System.out.println("Hello World!");}}

第七步:運行程序

三角符號表示正式運行,爬蟲符號表述調試運行(遇到斷點會停下來)

執行結果:

D:\Soft\openJDK\openjdk-17.0.2_windows-x64_bin\jdk-17.0.2\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:60257,suspend=y,server=n -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" -javaagent:C:\Users\Admin\AppData\Local\JetBrains\IntelliJIdea2024.2\captureAgent\debugger-agent.jar -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dfile.encoding=UTF-8 -classpath "E:\Idea-Code\demo0707-helloWorld\target\classes;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter\3.5.3\spring-boot-starter-3.5.3.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot\3.5.3\spring-boot-3.5.3.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-context\6.2.8\spring-context-6.2.8.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-aop\6.2.8\spring-aop-6.2.8.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-beans\6.2.8\spring-beans-6.2.8.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-expression\6.2.8\spring-expression-6.2.8.jar;C:\Users\Admin\.m2\repository\io\micrometer\micrometer-observation\1.15.1\micrometer-observation-1.15.1.jar;C:\Users\Admin\.m2\repository\io\micrometer\micrometer-commons\1.15.1\micrometer-commons-1.15.1.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.5.3\spring-boot-autoconfigure-3.5.3.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.5.3\spring-boot-starter-logging-3.5.3.jar;C:\Users\Admin\.m2\repository\ch\qos\logback\logback-classic\1.5.18\logback-classic-1.5.18.jar;C:\Users\Admin\.m2\repository\ch\qos\logback\logback-core\1.5.18\logback-core-1.5.18.jar;C:\Users\Admin\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.24.3\log4j-to-slf4j-2.24.3.jar;C:\Users\Admin\.m2\repository\org\apache\logging\log4j\log4j-api\2.24.3\log4j-api-2.24.3.jar;C:\Users\Admin\.m2\repository\org\slf4j\jul-to-slf4j\2.0.17\jul-to-slf4j-2.0.17.jar;C:\Users\Admin\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-core\6.2.8\spring-core-6.2.8.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-jcl\6.2.8\spring-jcl-6.2.8.jar;C:\Users\Admin\.m2\repository\org\yaml\snakeyaml\2.4\snakeyaml-2.4.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-devtools\3.5.3\spring-boot-devtools-3.5.3.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-configuration-processor\3.5.3\spring-boot-configuration-processor-3.5.3.jar;C:\Users\Admin\.m2\repository\org\projectlombok\lombok\1.18.38\lombok-1.18.38.jar;C:\Users\Admin\.m2\repository\org\slf4j\slf4j-api\2.0.17\slf4j-api-2.0.17.jar;D:\Soft\Idea2024.2\IntelliJ IDEA 2024.2.1\lib\idea_rt.jar" com.example.demo0707helloworld.Demo0707HelloWorldApplication
已連接到地址為 ''127.0.0.1:60257',傳輸: '套接字'' 的目標虛擬機.   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v3.5.3)2025-07-07T16:35:46.972+08:00  INFO 11960 --- [demo0707-helloWorld] [  restartedMain] c.e.d.Demo0707HelloWorldApplication      : Starting Demo0707HelloWorldApplication using Java 17.0.2 with PID 11960 (E:\Idea-Code\demo0707-helloWorld\target\classes started by Admin in E:\Idea-Code\demo0707-helloWorld)
2025-07-07T16:35:46.975+08:00  INFO 11960 --- [demo0707-helloWorld] [  restartedMain] c.e.d.Demo0707HelloWorldApplication      : No active profile set, falling back to 1 default profile: "default"
2025-07-07T16:35:47.009+08:00  INFO 11960 --- [demo0707-helloWorld] [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2025-07-07T16:35:47.399+08:00  INFO 11960 --- [demo0707-helloWorld] [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2025-07-07T16:35:47.419+08:00  INFO 11960 --- [demo0707-helloWorld] [  restartedMain] c.e.d.Demo0707HelloWorldApplication      : Started Demo0707HelloWorldApplication in 0.817 seconds (process running for 2.094)
Hello World!
已與地址為 ''127.0.0.1:60257',傳輸: '套接字'' 的目標虛擬機斷開連接進程已結束,退出代碼為 0

結果說明:

1.應用成功啟動(Spring Boot標志出現)

2.打印了"Hello World!"

3.因為沒有持續任務,JVM正常退出(退出代碼0表示正常)

這樣就完成了一次springboot的HelloWorld項目的創建,歡迎留言討論。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87948.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87948.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87948.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

國內Ubuntu訪問不了github等外網

各位小伙伴們,大家好呀。 大家是不是經常遇到訪問不了外網的情況呀。 在Ubuntu中可以這樣做。 訪問這個網站網站測速-Ping檢測-Trace查詢-Dig查詢-路由跟蹤查詢-tools.ipip.net, 對于github.com,在這個網站輸入github.com,會返…

PDF轉換工具,即開即用

在辦公室里,這句話被反復驗證。每天面對成堆的Word和Excel文件,將它們轉換成PDF格式是常有的事。可之前用過的工具,不是一次只能轉一個,就是操作繁瑣得讓人頭疼。記得有次趕項目,需要把二十多個文檔轉成PDF&#xff0c…

2. 你可以說一下 http 版本的發展過程嗎

你可以說一下 http 版本的發展過程嗎 總結:0.9:只能發送 get,無狀態。1.0:新增 post,請求頭,狀態碼,cookie。1.1:新增 put/delete/options/patch,keep-alive&#xff0c…

04-Linux驅動模塊的自動加載

概述 上一節,我們講述了Linux驅動開發的基本的模塊代碼編寫和手動執行模塊加載的操作, 這一節,我們講述嵌入式設備上使用Sysvint引導方式下如何開機自動加載模塊的步驟。感興趣的同學看下使用systemd引導方式的開啟自動加載模塊的步驟 操作…

【牛客算法】游游的整數切割

文章目錄 一、題目介紹1.1 題目鏈接1.2 題目描述1.3 輸入描述1.4 輸出描述1.5 示例二、解題思路2.1 核心算法設計2.2 性能優化關鍵2.3 算法流程圖三、解法實現3.1 解法一:基礎遍歷法3.1.1 初級版本分析3.2 解法二:奇偶預統計法(推薦)3.2.1 優化版本分析四、總結與拓展4.1 關…

筆記本電腦忽亮忽暗問題

關于筆記本電腦忽亮忽暗的問題這個問題困擾了我大半年,最后忽然找到解決方法了---主要的話有三種可能性1.關閉顯示器自動調亮的功能2.關閉節能模式自動調亮功能3.調整顯卡的功率,關閉自動調亮功能一開始一直都是嘗試的第一種方法,沒解決。。。…

Qt的頂部工具欄在多個界面使用

Qt的工具欄在多個界面使用1、前言2、創建一個工具欄類2.1 新建一個工具欄類3、提升工具欄類3.1登錄界面添加工具欄3.2 創建工具欄對象4、總結1、前言 今天遇到了個問題,頂部的工具欄,像軟鍵盤,時間顯示和退出按鈕那些,想在多個界…

C#和SQL Server連接常用通訊方式

C#和SQL Server連接通訊 在 C# 中與 SQL Server 建立數據庫連接,主要通過 ADO.NET 技術實現。以下是幾種常見的連接方式及相關實踐: ADO.NET 全面指南:C# 數據庫訪問核心技術 ADO.NET 是 .NET Framework 中用于數據訪問的核心組件&#xf…

安卓10.0系統修改定制化____實現自動開啟 USB 調試?的步驟解析 列舉常用的幾種修改方法

對于安卓開發者、測試人員,甚至是喜歡折騰手機的數碼愛好者來說,USB 調試是一個非常重要的功能。它能讓手機與電腦相連,實現應用安裝、系統調試、數據傳輸等操作。但每次連接手機都要手動去設置里開啟 USB 調試,實在麻煩。其實,通過修改安卓 10.0 的 ROM,就能讓手機自動開…

Redisson詳細教程 - 從入門到精通

目錄 1. 什么是Redisson 2. 為什么要用Redisson 3. 環境準備和配置 4. 基礎使用方法 5. 分布式數據結構 6. 分布式鎖詳解 7. 分布式服務 8. 實際應用場景 9. 最佳實踐 10. 常見問題解答 總結 1. 什么是Redisson 簡單理解 想象一下,Redis就像一個超級強大的"內…

動態規劃VS記憶化搜索(2)

luoguP1434滑雪 題目描述 Michael 喜歡滑雪。這并不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待升降機來載你。Michael 想知道在一個區域中最長的滑坡。區域由…

如何將服務守護進程化

進程組 什么是進程組 之前我們提到了進程的概念, 其實每一個進程除了有一個進程 ID(PID)之外 還屬于一個進程組。進程組是一個或者多個進程的集合, 一個進程組可以包含多個進程。 每一個進程組也有一個唯一的進程組 ID(PGID), 并且這個 PGID …

【跟著PMP學習項目管理】項目管理 之 范圍管理知識點

目錄 一、收集需求 1、知識點匯總 2、輸入 3、工具 4、輸出 二、定義范圍 1、知識點匯總 2、輸入 3、工具 4、輸出 三、創作工作分解結構 1、知識點匯總 2、輸入 3、工具 4、輸出 四、核實范圍 1、知識點匯總 2、輸入 3、工具 4、輸出 五、控制范圍 1、知…

AIX 環境磁盤空間管理指南

AIX 環境磁盤空間管理指南 在AIX環境中,磁盤空間的監控、管理與擴展是運維人員必備的技能。本文通過實際案例,系統地介紹如何查詢磁盤信息、卷組(VG)、邏輯卷(LV)信息,以及在磁盤空間不足時的擴容方案,幫助讀者掌握磁盤空間管理的…

k8s將service的IP對應的不同端口分配到不同的pod上

在Kubernetes中,Service是一種抽象層,它將請求路由到一組Pod。當你需要將Service的不同端口映射到不同的Pod時,可以通過以下兩種主要方式實現: 方法一:使用單個Service的多端口配置 如果不同的Pod提供不同的服務&…

aic8800M40低功耗sdio wifi在arm-linux平臺調試經驗

背景 好多年沒有搞過wifi相關的內容了,最近也被安排上了,把一顆低功耗aic8800M40的芯片在arm-linux開發板上做bring up,記錄一下SDIO wifi調試的過程和經驗,SDIO驅動這里需要改動一些linux內核HOST驅動代碼,會在文章中貼出來: AIC8800M40芯片簡介 這個wifi芯片是一顆低…

Redis基礎(1):NoSQL認識

SQL和NoSQL數據庫可以分為關系型數據庫和非關系型數據庫,SQL(Structured Query Language)相信大家并不陌生,這是用于操作關系型數據庫的語言,而NoSQL,顧名思義,它對應的就是非關系數據庫,它是操作非關系型數…

QT6 源(153)模型視圖架構里的表格窗體視圖 QTableWidget 篇三:源碼及其元素 QTableWidgetItem 的源代碼帶注釋

&#xff08;14&#xff09;本源代碼定義于頭文件 qtablewidget . h 頭文件 &#xff1a; #ifndef QTABLEWIDGET_H #define QTABLEWIDGET_H#include <QtWidgets/qtableview.h> #include <QtWidgets/qtwidgetsglobal.h> #include <QtCore/qlist.h> #include …

SSL證書是網絡安全的一把利刃

SSL證書&#xff08;安全套接層證書&#xff0c;現普遍升級為TLS證書&#xff09;確實是網絡安全領域中一把至關重要的“利刃”&#xff0c;它在保護數據傳輸安全、建立用戶信任、防范網絡攻擊等方面發揮著不可替代的作用。以下是其核心價值與作用的詳細分析&#xff1a;一、SS…

Apache 配置文件提權的實戰思考

在 Linux 系統中&#xff0c;如果普通用戶被授予以 sudo 執行 Apache 并加載自定義配置文件的權限&#xff08;如 sudo apache2 -f /home/user/user.conf&#xff09;&#xff0c;那么該權限極可能被濫用為本地提權路徑。 雖然 Apache 默認采用了更嚴格的權限限制機制&#xff…