本文发表于入职啦(公众号: ruzhila) 大家可以访问入职啦学习更多的编程实战。
市面上很多教你如何搭建SpringBoot项目的文章,但是很多都是直接给你一个项目模板,让你直接使用,这样你可能会不知道SpringBoot项目是怎么搭建的,这样你就会错过很多学习的机会。
本文将手把手教你搭建一个SpringBoot项目,从零开始,一步一步教你搭建一个SpringBoot项目,零失误,适合新手。
准备工作
本课程使用Windows系统,JDK23,SpringBoot3.3.5 不用IDE
Windows我们选择了最新的Windows11,大部分Windows的操作体验都是一样的,所以不用担心Windows10和Windows11的差异。
先安装JDK23
我们需要先去oracle的官网下载: https://download.oracle.com/java/23/latest/jdk-23_windows-x64_bin.msi 安装之后,我们可以在命令行中输入java -version查看是否安装成功
创建一个SpringBoot项目
安装好JDK23之后,我们需要去https://start.spring.io/ 上创建一个SpringBoot项目,几个注意事项:
- 选择的是SpringBoot3.3.5版本
- 选择的是Maven项目
- Java语言选择的是最新的Java23版本
- 依赖分别选择Spring Web和Spring Data JPA
可以参考下图:
修改maven的中国区的加速代理
我们选择用阿里云,这时候考验你的能力来了,第一步需要确认你的用户目录,一般都是C:\Users\你的用户名,
- 然后在这个目录创建一个.m2文件夹
- 如果这个目录下没有settings.xml文件,你可以自己创建一个,然后在这个文件中加入以下内容:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
‼️ 第二步,还有一步,也是最关键的一步,修改你刚才下载的工程里面的文件: .mvn/wrapper/maven-wrapper.properties,修改里面的distributionUrl为:
https://mirrors.aliyun.com/apache/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.zip
这一步是必须的,不然你大部分时间都在等待下载依赖,这样会很浪费时间。
这时候,你在命令行里面执行:
mvnw.cmd compile
如果出现错误,检查上面的步骤错了什么,有些同学可能会遇到JDK版本不对的问题,那么接下来开始排查问题
- 遇到java版本不对,那么修改pom.xml里面的java版本为23或者对应你的java版本
<properties>
<java.version>23</java.version>
</properties>
- 遇到maven下载依赖慢,那么检查你的.mvn/wrapper/maven-wrapper.properties文件是否修改正确
- 遇到其他问题,可以在留言,我会尽快回复你
如何启动一个springboot项目
命令行就可以启动一个springboot项目,执行以下命令:
mvnw.cmd spring-boot:run
这时候,我们会遇到第一个问题:
2024-11-20T17:08:09.369+08:00 INFO 40583 --- [hello] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2024-11-20T17:08:09.373+08:00 INFO 40583 --- [hello] [ main] .s.b.a.l.ConditionEvaluationReportLogger :
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-11-20T17:08:09.383+08:00 ERROR 40583 --- [hello] [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
出现这个问题的原因是我们没有配置数据库,我们初始化的项目做了JPA,这个是Springboot默认的数据库配置,要求我们知识配置一个数据库,比如是Mysql或者H2.
H2 是一个java编写的内存数据库,我们可以在开发的时候使用,不需要安装数据库,但是在生产环境不建议使用,因为数据会丢失。
所以我们根据提示,加入H2数据库,我们修改pom.xml文件,加入H2数据库的依赖:
<dependencies>
<!-- 以下是新加的依赖,需要添加在 dependencies的子节点下 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependencies>
然后我们再次执行mvnw.cmd spring-boot:run,这时候我们会看到如下的输出:
2024-11-20T17:11:26.011+08:00 INFO 40858 --- [hello] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/'
2024-11-20T17:11:26.015+08:00 INFO 40858 --- [hello] [ main] cn.ruzhila.hello.HelloApplication : Started HelloApplication in 1.163 seconds (process running for 1.315)
这时候,我们的程序就运行起来了,我们打开浏览器,访问 http://localhost:8080,我们会看到如下的页面:
这是什么都不做的情况下,我们第一个运行起来的页面,因为这时候的项目是空的,我们没有写Controller,所以会报错。
写一个Controller
我们在src/main/java/cn/ruzhila/hello下创建一个HelloController.java文件,内容如下:
package cn.ruzhila.hello;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/")
public String hello() {
return "Hello World!";
}
}
这时候,我们再访问http://localhost:8080,我们会看到Hello World!,这时候我们的第一个SpringBoot项目就搭建完成了。
接下来做什么?
接下来,需要做的事情就是学习SpringBoot的各种特性,比如渲染一个模版、查询或者更新数据库记录。 高级的功能就是实现一个完整的用户登陆、注册、找回密码等核心功能。
交流
这个简单的教程教你如何设置Maven,和如何实现用命令行启动一个SpringBoot项目,很多学习java的同学都是卡在第一步,不知道如何搭建一个SpringBoot项目,这个教程就是为了解决这个问题。
接下来,我们应该实现一个最基本的CRUD,我们已经有个完整的博客课程,一天快速搭建Go、Java版本的个人博客 可以了解一下
我们构建了一个100行代码项目的实战群,大家可以扫码加入,一起学习编程
也可以访问入职啦学习更多的编程实战