使用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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…