idea使用Spring Initializer创建springboot项目的坑【保姆级教学】

项目场景:

提示:这里先简述项目创建后遇到的问题和解决方案:

idea 使用 Spring Initializer 创建springboot项目后,
有以下问题:

① 右键没有Run
② 右键New新建文件发现无Java Class选项

然后解决掉 ①② 问题后出现新的问题:

③ @SpringBootApplication 注解爆红找不到引用
④ pom依赖能下载但是加载不到本地


项目创建和解决方案

提示:下面开始逐步演示创建过程遇到的问题和解决方案

① - File ——> New ——> Project

在这里插入图片描述

② - 选择默认Default,然后Next

在这里插入图片描述

③ - Type选择默认Maven,然后Next

在这里插入图片描述

④ - 勾选上 Web 模板,然后Next

在这里插入图片描述

⑤ - 选择好项目的位置,点击【Finish】:

在这里插入图片描述

默认创建好的项目结构如下:

在这里插入图片描述

这时候项目没有爆红,但是出现了三个问题:
① 只有pom爆红
② 右键没有Run
③ 右键New新建文件发现无Java Class选项

① 只有pom爆红

在这里插入图片描述

② 右键没有Run

在这里插入图片描述

③ 右键New新建文件发现无Java Class选项

在这里插入图片描述

先解决问题 ① 只有pom爆红,设置项目maven路径

在这里插入图片描述

然后选中pom.xml右键如图下载依赖到maven仓库

在这里插入图片描述

下载过程中有可能会遇到这个错误:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project demo5: Fatal error compiling

在这里插入图片描述

这是因为:maven-compliler-plugin版本与maven版本不一致,Maven版本太低或maven-compiler-plugin版本过高。
想了解的可以自行去搜【JDK对应的Maven版本】。

因为我是JDK 1.8,所以降低maven-compiler-plugin版本
注意:上面创建过程虽然选择JDK1.8但是实际pom里还是17

在这里插入图片描述

改完之后重新下载依赖到仓库

在这里插入图片描述

这时候还是有可能遇到问题:

在这里插入图片描述

在pom.xml文件中添加以下依赖,或者把工程的测试类删除也行

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>

我这里选择添加依赖,改完之后重新下载依赖到仓库

在这里插入图片描述

下载成功后,去仓库看下发现确实多了很多文件

在这里插入图片描述

在这里插入图片描述

三个问题现在解决了一个,接下来解决剩下两个:
① 只有pom爆红
② 右键没有Run
③ 右键New新建文件发现无Java Class选项
问题二三其实是同一个问题,
选中src右键如图操作

在这里插入图片描述

Sources 描述: 一般用于标注类似 src 这种可编译目录。有时候不仅 src 目录需要可编译,还有其他一些特殊目录也需要可编译,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点要注意。

操作后发现② ③问题已经解决,但是出现了新的问题:
导入依赖的代码都变红

在这里插入图片描述

在这里插入图片描述

问题就在这里: 没有将需要的pom依赖自动加载到项目
选择 File -> Project Structure -> Project Settings -> Modules:

在这里插入图片描述

解决方案:删除下面文件
在这里插入图片描述

然后重新Reimport,如果没反应就关闭idea,然后打开就会自动加载依赖到项目

在这里插入图片描述

注意:这里包结构自动发生了变化,并且依赖也加载了

在这里插入图片描述

这两个地方是一一对应的

在这里插入图片描述

项目默认端口号8080,可以设置一个不重复的然后测试是否能启动

在这里插入图片描述

右键 run

在这里插入图片描述

启动成功,端口号是上面设置的

在这里插入图片描述


补充1:

上面 选中src右键如图操作设置为 Sources,应该直接选中java设置的。
这两种应该都可以,
即使选择src设置,关闭项目后再打开也会自动变化的,
上面逐步演示的步骤就是选中src右键设置为 Sources

在这里插入图片描述


补充2:

之所以这么详细写这个文章,
是因为我在dea使用Spring Initializer创建springboot项目遇到的这些坑,
网上去查,
实在是没看到有人碰到了我出现的这么一系列问题,
很疑惑大家真的创建springboot如此顺利吗?
也许是的,
不过这个如果有人碰到上述问题,
这里将给你一个解决方案作为备选。

最后关于删除的文件可以参考:
链接: 什么是maven wrapper?


补充3:

走捷径:使用阿里云的镜像。
这是后面网上看到的一个方案,一步到位,不会遇到上面的问题。

在这里插入图片描述

最终结构图

在这里插入图片描述

Quartz框架是一个用于调度和执行定时任务的开源框架,其原理可以概括如下: 1. 调度器(Scheduler):Quartz框架的核心组件,负责管理和调度定时任务的执行。调度器可以创建多个执行线程,并根据配置的策略决定任务的执行时间和频率。 2. 作业(Job):表示要执行的具体任务逻辑。可以通过实现Job接口或继承Quartz提供的抽象类(如QuartzJobBean)来定义作业。每个作业都有一个唯一的标识符,用来在调度器中进行管理。 3. 触发器(Trigger):用于触发作业的执行。触发器定义了作业何时被执行的时间表。Quartz框架提供了多种类型的触发器,如SimpleTrigger、CronTrigger等,可以根据具体需求选择合适的触发器类型。 4. 作业存储(JobStore):用于存储作业和触发器的信息。Quartz框架提供了多种作业存储的实现方式,如RAMJobStore、JDBCJobStore等。作业存储负责维护作业和触发器的状态,并提供查询、删除、更新等操作。 5. 监听器(Listener):用于监听作业和触发器的状态变化,如作业执行前后、触发器触发前后等。通过实现监听器接口,可以自定义监听器来处理特定的事件。 Quartz框架的工作流程如下: 1. 配置调度器:创建调度器实例,并配置相关属性,如线程池大小、作业存储方式等。 2. 定义作业和触发器:创建作业实例,并定义触发器的执行时间表。将作业和触发器关联起来。 3. 启动调度器:调用调度器的start方法,启动调度器,开始定时任务的调度和执行。 4. 调度执行:根据触发器的定义,调度器会根据预定的时间表触发作业的执行。调度器会选择一个可用的执行线程来执行作业。 5. 监听和处理事件:根据配置的监听器,监听作业和触发器的状态变化,如作业执行前后、触发器触发前后等。根据监听器的逻辑处理相应的事件。 6. 停止调度器:当不再需要定时任务时,可以调用调度器的shutdown方法,停止调度器的运行。 总的来说,Quartz框架通过调度器、作业、触发器、作业存储和监听器等组件的协作,实现了定时任务的调度和执行。通过配置和管理这些组件,可以灵活地实现各种定时任务的需求。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值