小白手把手教学怎么用maven创建一个Springboot项目
spring_boot
⼀个使⽤了 Spring Boot 的项⽬⼯程,本质上来说和只使⽤ Spring Framework 的⼯程 是⼀样的,如果使⽤ Maven 来管理,那它就是个标准的 Maven ⼯程,⼤概的结构就 像下⾯这样。
|-pom.xml
|-src
|-main
|-java
|-resources
|-test
|-java
|-resources
- pom.xml 中管理了整个项⽬的依赖和构建相关的信
- src/main 中是⽣产的 Java 代码和相关资源⽂件;
- src/test 中是测试的 Java 代码和相关资源⽂件。
POM文件分为以下几个部分:
- ⼯程⾃⾝的 GroupId 、 ArtifactId 与 Version 等内容定义;
- ⼯程继承的 org.springframework.boot:spring-boot-starter parent 定义;
- <dependencies/> 依赖项定义;
构建相关的配置定义。 org.springframework.boot:spring-boot-starter-parent ⼜继承了 org.springframework.boot:spring-boot-dependencies ,它通过
定义了⼤量的依赖项,有了 的加持,在我们⾃⼰的⼯程中,只需要在 中写⼊依赖项的 和 .
用maven创建一个SpringBoot项目
基础配置:
JDK1.8+IDEA2021版本+maven3.3.9
1.什么是Maven?
Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。
核心功能 :Maven的核心功能是合理叙述项目间的依赖关系,通俗点 就是通过pom.xml文件的配置获取jar包不用手动的去添加jar包,,这个pom.xml包我后面会叙述,不过已经学习过maven的 人应该对这个很熟悉。其本质就是通过配置pom.xml来获取jar包,当然这是在该项目必须是maven项目的前提下。那么什么是maven项目
通过图解可以发现maven工程不直接将jar包导入到工程中,而是通过再pom.xml中添加所需的jar包的坐标,这样就避免了jar直接引入进来,在需要用到jar包的时候,只要查找pom.xml文件,再通过pom.xml中的坐标,到一个专门用于存放jar包的仓库中根据坐标从而找到这些jar包,再把这些jar包拿去运行
通过 pom.xml 文件配置要引入的 jar 包的坐标,再读取坐标并到仓库中加载 jar 包,这 样我们就可以直接使用 jar 包了,为了解决这个过程中速度慢的问题,maven 中也有索引的概念,通过建立索引,可以大大提高加载 jar 包的速度,使得我们认为 jar 包基本跟放在本地的工程文件中再读取出来的速度是一样的。这个过程就好比我们查阅字典时,为了能够加快查找到内容,书前面的目录就好比是索引,有了这个目录我们就可以方便找到内容了,一样的在 maven 仓库中有了索引我们就可以认为可以快速找到 jar 包。
2. 项目
现在我们继续创建新项目
配置maven
创建好之后我们可以看到只有这么一些文件内容和文件目录,现在我们要做的第一件事就是配置maven
文件->设置
里面找到maven配置,红框里面的就是需要我们手动配置的地方。
这是我的配置目录,这个maven仓库就是存放项目需要的各种依赖的地方。并且我们要在系统变量里添加才能使用
因为我们使用的是本地仓库,在这个settings文件里可能默认使用的是服务器端的仓库,所以还要在代码里改一下
这样的话,项目所有需要的依赖就准备好了
建立新启动项
现在我们在项目里新建了一个模块module1,在pom文件里添加依赖项
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
之后我们新建软件包来存放启动类
在导包的时候遇到这种问题就清除一下缓存然后重新启动。
package com.ivanlee.springboot;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
创建application.yml配置文件:设置端口号
这样的话直接运行我们的启动类就可以访问网页了
访问刚才yaml文件里的配置,能得到一张空白页面,因为还没有写controller相关的东西,所以什么都没有
controller
需要注意的是controller的类文件必须要放在和启动类同级以及更低一级的目录里面,不能比启动类高,否则启动时将无法扫描到controller里面的路径导致404.
package com.ivanlee.springboot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/regina")
public class FirstController {
@GetMapping("/127")
public String test(){
System.out.println("hello world");
return "hello world";
}
}
@RestController 和 @Controller 是 Spring Framework 中用于定义控制器的注解。
@RestController 是一个组合注解,它结合了 @Controller 和 @ResponseBody 注解的功能(就相当于把两个注解组合在一起)。在使用 @RestController 注解标记的类中,每个方法的返回值都会以 JSON 或 XML 的形式直接写入 HTTP 响应体中,相当于在每个方法上都添加了 @ResponseBody 注解。
@Controller 注解标记的类则是传统的控制器类。它用于处理客户端发起的请求,并负责返回适当的视图(View)作为响应。在使用 @Controller 注解的类中,通常需要在方法上使用 @ResponseBody 注解来指示该方法的返回值要作为响应的主体内容,而不是解析为视图。简而言之,@RestController 适用于构建 RESTful 风格的 API,其中每个方法的返回值会直接序列化为 JSON 或 XML 数据并发送给客户端。而 @Controller 适用于传统的 MVC 架构,它负责处理请求并返回相应的视图。(@RestController下的方法默认返回的是数据格式,@Controller注解标注的类下面的方法默认返回的就是以视图为格式)
访问该路径便得到了一个前端的响应。如果一直发生404,那么可以点击maven里面的clean按钮,把之前的错误导入清掉再继续。