说明:本篇将介绍如何使用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项目的创建,欢迎留言讨论。