14.基于项目驱动快速上手SSM框架
项目git地址:https://github.com/iCanDoAllThingszz/firstspringboot.git
1.SpringBoot MVC项目结构
1.SpringBoot介绍及入门使用
SpringBoot可以提升我们的开发效率,把我们从传统的SSM项目的繁杂的依赖于配置文件/注解中解放出来。
SpringBoot主要解决的是在微服务的架构下简化配置(有快速配置)、前后端分离、快速开发。
Spring Initializer:spring项目的脚手架,直接给我们提供一个jar包,包含了我们所需的所有jar(根据之前人总结出来的),直接给我们一个空项目。屏蔽了比如用maven手动导入依赖的依赖冲突等问题。如下图,最重要的选择:我们可以根据自己的需求添加依赖。比如我们添加的Spring Web依赖,里面包含了Spring、Spring MVC,并且还内置了tomcat容器。这也意味着我们不需要再在pom.xml中去手动导入springmvc的依赖了,或者手动加载tomcat了。点击GENERATE下载一个压缩文件后,我们在idea中打开即可。
在我们创建好的脚手架空项目中的pom.xml中可以看到,所需的依赖都被导入了进来:
这样就不用我们再手动导入依赖,解决冲突了(在大项目中避免解决包冲突问题尤其便利)。其中SpringBoot等依赖都在spring-boot-starter-web中了(如图2 一个spring-boot-starter-web依赖把所有依赖都引入了,并且我们也不用担心冲突问题)。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zy.springboot</groupId>
<artifactId>FirstSpringBoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>FirstSpringBoot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder-jammy-base:latest</builder>
</image>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
启动SpringBoot项目的两种方式:
1.直接运行main方法:(注意我们项目/模块/编译器的java语言级别要和下载脚手架时声明的一样,否则可能会报错)
package com.zy.springboot.FirstSpringBoot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FirstSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(FirstSpringBootApplication.class, args);
}
}
可以看到tomcat started on port(s):8080(http)。这是因为tomcat本身也是java写的,spring-boot-starter-web依赖中也包含了它。
我们的这个spring-boot-starter-web中至少引入了Spring、SpringBoot、SpringMVC,并且还内置了tomcat容器。这些框架每个都有自己的配置文件,都需要配置。但是我们却发现直接启动springboot项目,服务就能在8080端口起起来,这是因为这个脚手架项目默认有一个全套的配置,这个配置文件是由SpringBoot提供,它实现了这些框架之间的整合,提供了它们的默认配置和相关联的依赖的引入。
如果我们想要单独的对其中的某个框架(比如Tomcat)的配置做一些更改,我们可以在SpringBoot给我们提供的入口:application.properties中做一些个性化的配置。(通用的默认配置已经由SpringBoot给我们提供好了)。
SpringBoot优点:
- 提供了快速启动入门
- 开箱即用、提供默认配置
- 内嵌容器化web项目
- 没有冗余代码生成和xml配置要求