目录
一.通过官网搭建项目
接下来我们搭建一个 SpringBoot 项目,并引入 SpringMVC 的功能,
首先我们可以通过官网搭建项目:
1
- 访问start.spring.io (这是搭建SpringBoot项目的官网)
- 2生成SpringBoot项目
SpringBoot 版本说明:
- SNAPSHOT:快照版,表示开发版本,随时可能修改;
- M1(Mn):M1是milestone的缩写,也就是里程碑版本;
- RC1(RCn):RC1是release candidates的缩写,也就是发布预览版;
- Release:正式版,也可能没有任何后缀也表示正式版
一般都用里程碑版本和正式版。
SpringBoot引入的依赖是起步依赖,是一个功能引入一个依赖,而不是一个jar包引入一个依赖。
点击上面的生成按钮之后,会自动下载一个官网帮我们搭建的SpringBoot项目的压缩包,解压之后,把解压的文件导入到idea中即可。
之前学习的时候,普通java程序打的是一个jar包,而web程序打得是一个war包,而这是一个Spring Web项目,但是为什么打得是一个jar包呢,请看下面的打包类型说明:
SpringBoot打包类型说明:
使用 SpringMVC 开发的是一个 web 项目,但由于在 SpringBoot 中直接嵌入了 Tomcat 等
Web容器,所以所以SpringBoot用Java程序运行就可以了,在使用SpringBoot 做 Web 开发时不需要部署 War 文件,只需要打成 Jar包即可,而war是给Tomcat使的。
二.通过IDEA脚手架搭建项目
在 IDEA 中新建项目,项目类型为 Spring Initializr ,选择 JDK 版本和搭建网站后点击下一步。
其实这个方式底层也是连接的官网。
脚手架工具也会访问 SpringBoot 官网进行项目搭建,但SpringBoot官网有时访问速度较慢,我们也可以选择国内的镜像网站 https://start.aliyun.com/ 搭建项目,阿里的脚手架镜像SpringBoot 版本有些滞后,我还是选择了用官网的网址。
新建一个项目

三.SpringBoot项目结构
接下来我们分析 SpringBoot 的项目结构:
POM 文件
1
1. SpringBoot 项目必须继承 spring-boot-starter-parent ,即所有的SpringBoot 项目都是 spring-boot-starter-parent 的子项目。
spring-boot-starter-parent 中定义了常用配置、依赖、插件等信息,供SpringBoot 项目继承使用。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2. SpringBoot 项目中可以定义起步依赖,起步依赖不是以 jar 包为单位,而是以功能为单位。
这种引入方式使得不必再像之前一样引入那么多依赖,而是现在引入很少的东西即可。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
3.spring-boot-maven-plugin插件是将项目打包成jar包的插件。
该插件打包后的 SpringBoot 项目无需依赖 web 容器,可以直接使用JDK 运行。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果发生报错(spring-boot-maven-plugin呈红色),请参考这篇文章,我的是添加了个版本号就好了。
启动类
启动类的作用是启动 SpringBoot 项目,运行启动类的 main 方法即可启动SpringBoot 项目。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Springbootdemo2Application {
public static void main(String[] args) {
SpringApplication.run(Springbootdemo2Application.class, args);
}
}
配置文件
由于 SpringBoot 极大简化了 Spring 配置,所以只有一个application.properties配置文件,且 Spring 的自动配置功能使得大部分的配置都有默认配置,该文件的功能是覆盖默认配置信息,该
文件不写任何信息都可以启动项目。
启动后默认端口号为 8080 ,我们可以覆盖该配置:

然后启动项目


四.通过Maven搭建项目
了解了 SpringBoot 结构后,我们也可以使用 Maven 手动搭建SpringBoot项目:
1
使用Maven创建普通JAVA项目,注意是普通的项目,idea2022版本如下创建,是不用选Archetype的!
在pom中添加项目的父工程、起步依赖、插件
<!--父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
</parent>
<!--起步依赖-->
<dependencies>
<!--springmvc的起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.4</version>
</dependency>
</dependencies>
<!--插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
编写启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootAPP {
public static void main(String[] args) {
SpringApplication.run(SpringBootAPP.class,args);
}
}
编写配置文件 application.properties(名字是固定的)
#日志格式
logging.pattern.console=%d{MM/dd HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n
#端口号
server.port=8888
项目结构:
运行启动类主方法,启动项目
刷新一下maven,上方就会自动出现服务器
点击绿色按钮运行即可。
五.编写Java代码
之前搭建的 SpringBoot 项目已经都整合了 SpringMVC ,我们编写一个控制器进行测试:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyController {
@RequestMapping("/hello")
@ResponseBody
public String hello(){
System.out.println("hello springboot!");
return "hello springboot!";
}
}
在上面的项目结构下,在first下创建一个controller包,再在controller包下新建一个MyController类
com.first.controller
启动类在启动时会做注解扫描 (@Controller 、 @Service 、 @Repository......),扫描位置为 同包(在本例中是com.first)或者子包(在本例中是com.first.controller)下 的注解,所以我们要在启动类同级或同级包下编写代码。
启动项目,访问 http://localhost:8888/hello
本文含有隐藏内容,请 开通VIP 后查看