說明:本篇將介紹如何使用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項目的創建,歡迎留言討論。