快速上手SpringBoot
SpringBoot入门程序开发
SpringBoot
是由
Pivotal
团队提供的全新框架,其设计目的是用来简化
Spring
应用的初始搭建以及开发过程
①:创建新模块,选择
Spring Initializr
,并配置模块相关基础信息
②:选择当前模块需要使用的技术集
③:开发控制器类
//Rest模式
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping
public String getById(){
System.out.println("springboot is running...");
return "springboot is running...";
}
}
④:运行自动生成的
Application
类
最简
SpringBoot
程序所包含的基础文件
pom.xml
文件
Application
类
<?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>2.5.4</version>
</parent>
<groupId>com.itheima</groupId>
<artifactId>springboot-01-quickstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
</project>
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Spring
程序与
SpringBoot
程序对比
SpringBoot简介
Spring
程序缺点
依赖设置繁琐
配置繁琐
SpringBoot
程序优点
起步依赖(简化依赖配置)
自动配置(简化常用工程相关配置)
辅助功能(内置服务器,
……
)
parent
1.
开发
SpringBoot
程序要继承
spring-boot-starter-parent
2. spring-boot-starter-parent
中定义了若干个依赖管理
3.
继承
parent
模块可以
避免
多个依赖使用相同技术时出现
依赖
版本
冲突
4.
继承
parent
的形式也可以采用引入依赖的形式实现效果
starter
1.
开发
SpringBoot
程序需要导入坐标时通常导入对应的
starter
2.
每个不同的
starter
根据功能不同,通常包含多个依赖坐标
3.
使用
starter
可以实现快速配置的效果,达到
简化配置的
目的
引导类
1. SpringBoot
工程提供引导类用来启动程序
2. SpringBoot
工程启动后创建并初始化
Spring
容器
内嵌
tomcat
1.
内嵌
Tomcat
服务器是
SpringBoot
辅助功能之一
2.
内嵌
Tomcat
工作原理是将
Tomcat
服务器作为对象运行,并将该对象交给Spring
容器管理
3.
变更内嵌服务器思想是去除现有服务器,添加全新的服务器
基础配置
属性配置
修改配置
1. SpringBoot
中导入对应
starter
后,提供对应配置属性
2.
书写
SpringBoot
配置采用关键字
+
提示形式书写
SpringBoot
提供了
3
种配置文件的格式
properties
(传统格式
/
默认格式)
yml
(主流格式)
yaml
SpringBoot
配置文件加载顺序
application.
properties >
application.
yml >
application.
yaml
不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留
yaml
字面值表示方式
数组表示方式:在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
1. yaml语法规则
大小写敏感
属性层级关系使用多行描述,每行结尾使用冒号结束
使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许
使用Tab键)
属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔
)
# 表示注释
2. 注意属性名冒号后面与数据之间有一个
空格
yaml数据读取
1.
使用
@Value
配合
SpEL
读取单个数据
2.
如果数据存在多层级,依次书写层级名称即可
3.
在配置文件中可以使用
${
属性名
}
方式引用属性值
4.
如果属性中出现特殊字符,可以使用双引号包裹起来作为字符解析
使用
Environment
对象封装全部配置信息
使用
@Autowired
自动装配数据到
Environment
对象中
使用
@ConfigurationProperties
注解绑定配置信息到封装类中
封装类需要定义为
Spring
管理的
bean
,否则无法进行属性注入
整合第三方技术
整合JUnit
SpringBoot
整合
JUnit
@SpringBootTest
class Springboot07JunitApplicationTests {
@Autowired
private BookService bookService;
@Test
public void testSave(){
bookService.save();
}
}
1.
导入测试对应的
starter
2.
测试类使用
@SpringBootTest
修饰
3.
使用自动装配的形式添加要测试的对象
1.
测试类如果存在于引导类所在包或子包中无需指定引导类
2.
测试类如果不存在于引导类所在的包或子包中需要通过
classes
属性指定引导类
整合MyBatis
核心配置:数据库连接相关信息(连什么?连谁?什么权限)
映射配置:
SQL
映射(
XML/
注解)
设置数据源参数
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
定义数据层接口与映射配置
@Mapper
public interface UserDao {
@Select("select * from user")
public List<User> getAll();
}
1.
勾选
MyBatis
技术,也就是导入
MyBatis
对应的
starter
2.
数据库连接相关信息转换成配置
3.
数据库
SQL
映射需要添加
@Mapper
被容器识别到
整合MyBatis-Plus
添加
SpringBoot
整合
MyBatis-Plus
的坐标
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
定义数据层接口与映射配置,继承
BaseMapper
@Mapper
public interface UserDao extends BaseMapper<User> {
}
整合Druid
导入
Druid
对应的
starter
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
变更
Druid
的配置方式
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
1.
整合
Druid
需要导入
Druid
对应的
starter
2.
根据
Druid
提供的配置方式进行配置
3.
整合第三方技术通用方式
导入对应的starter
根据提供的配置格式,配置非默认值对应的配置项