一、初识SpringBoot
1.1 SpringBoot概念简介
Spring Boot是Spring公司的一个顶级项目,和Spring Framework是一个级别的
Spring Boot实际上是利用Spring Framework4自动配置特性完成。编写项目时不需要编写xml文件,发展到现在,Spring Boot已经具有很大的生态圈,各种主流技术已经提供了Spring Boot的启动器
核心思想:++约定大约配置++(SpringBoot实际上就是一种启动方式,通过它我们可以省略掉很多约定俗成的配置,直接导入一个jar包就行了)
二、SpringBoot项目搭建
2.1案例:整合SpringMVC
(1)创建maven工程


(2)选择SpringBoot的版本
pom.xml
XML
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.5.8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
(3)整合SpringMVC用到的包,添加启动器
pom.xml
XML
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.5.8</version>
</dependency>
</dependencies>
关于启动器和启动类
什么是启动器?
SpringBoot框架在i项目中的作用是Spring整合各种其他技术,让其他技术使用更加方便。Spring Boot的启动器实际上就是一个依赖。这个依赖中包含了整个整个技术相关的jar包,还包含了这个技术的自动配置,以前绝大多数XML配置都不需要配置了。以后每次使用Spring Boot整合其他技术时首选需要考虑导入启动器。
什么是启动类?
Spring Boot的启动类的作用时启动Spring Boot项目,是基于Main方法来运行的。
启动类与启动器的区别
启动类表示项目的启动入口
启动器表示jar包的坐标

(4)构建一个Controller
java
@Controller
public class MyContoller {
@RequestMapping("/test1")
@ResponseBody
public String test(){
return "Hi,Spring Boot!";
}
}

(5)启动类编写
java
@SpringBootApplication
public class TestSpringApplication {
public static void main(String[] args) {
// 启动TestSpringApplication这个启动类,会扫描这个类所在同包或者子包下的注解
SpringApplication.run(TestSpringApplication.class, args);
}
}

(6)运行,浏览器访问测试


2.2 使用YML文件对项目进行配置
SpringBoot官方推荐的配置文件是yml文件,yml是用层级来表示关系的一种配置文件。
yml中没有标签,而是通过两个空格的缩进来表示层级结构
例如:
在properties文件中: server.port=8080
在yml文件中:server:
port:8080
层级结构怎么找(SpringBoot常见配置,查看官方文档):
https://docs.spring.io/spring-cloud-zookeeper/reference/4.1/appendix.html
https://docs.spring.io/spring-cloud-zookeeper/reference/4.1/appendix.html注意:文件名字为:application.yml,文件名application开头,不要随意动

三、小张书城SpringBoot版本
需求:在项目中实现查询所有数据的功能
主要目的:使用SringBoot整合书城项目
项目完整代码:
git地址: https://gitcode.com/luffyX/javaBase.git
**代码分支:**Book_SpringBoot
此处是在上面代码的基础上进行的后续功能开发
3.1 导入依赖
修改pom.xml文件,导入mybatis的启动类和mysql的依赖
XML
<?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 http://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>2.7.18</version>
<relativePath/>
</parent>
<groupId>org.example</groupId>
<artifactId>Book_SpringBoot</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
</dependencies>
</project>

3.2 编写配置文件
编写数据库连接的配置文件
XML
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/study?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root

3.3 编写实体类,配置文件中加入别名


XML
mybatis:
type-aliases-package: com.study.pojo
3.4 定义mapper接口

java
@Mapper
public interface BookMapper {
List selectAllBooks();
}
3.5 定义mapper.xml映射文件
在resource下新建mybatis文件夹,mapper.xml文件名没有强制要求了,不需要和接口名完全对应,是根据namespace去找接口的。

XML
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.study.mapper.BookMapper">
<select id="selectAllBooks" resultType="book">
select * from t_book
</select>
</mapper>
3.6 配置文件中加入映射文件位置:

XML
mybatis:
type-aliases-package: com.study.pojo
mapper-locations: classpath:mybatis/*.xml
3.7 编写controller文件

java
package com.study.controller;
import com.study.pojo.Book;
import com.study.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class BookController {
@Autowired
private BookService bookService;
@RequestMapping("/findBooks")
@ResponseBody
public String findBooks(){
List list = bookService.getAllBooks();
String str = "";
for (int i = 0; i < list.size(); i++) {
Book book = (Book) list.get(i);
str += book.getName();
str += "-";
str += book.getAuthor();
}
return str;
}
}
3.8 定义启动类,在启动类加入mapper的包扫描

java
@SpringBootApplication
@MapperScan("com.study.mapper")
public class BookApplication {
public static void main(String[] args) {
SpringApplication.run(BookApplication.class, args);
}
}
3.9 启动项目

++启动过程中可能会遇到报错项目启动不起来的情况,有可能是依赖版本的问题,需要仔细检查一下++