SpringBoot创建
starter:减少依赖配置
parent:减少依赖冲突
内嵌Tomcat服务器
1. 内嵌Tomcat服务器是SpringBoot辅助功能之一
2. 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
3. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器
基础配置
application.properties
server.port=80
application.yml(主流)、application.yaml,冒号后面要有空格
server:
port: 80
加载顺序:application.properties > application.yml > application.yaml
配置文件没有代码提示
File -> Project Structure 配置如下图,将项目的yml、yaml等文件添加进入
yaml语法规则
数组表示方式:在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
配置数据读取
// 单个导入
@Value("${server.port}")
private int port;
// 封装全部数据到Environment对象
@Autowired
private Environment env;
public void test() {
env.getProperty("server.port");
}
整合Mybatis
配置数据源参数
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时
需要在url连接串中配置时区serverTimezone=UTC
整合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> {
}
SSMP开发步骤
P11 REST风格简介
P13 RESTful入门案例
P14 RESTful快速开发
P23 yaml文件中的变量引用
P26 SpringBoot整合JUnit
- 导入测试对应的starter
- 测试类使用@SrpingBootTest修饰
- 使用自动装配的形式添加要测试的对象
测试类如果存在于引导类所在包或子包中无需指定引导类,否则需要通过classes属性执行引导类
P28 SpringBoot整合Mybatis
P30 SpringBoot整合MybatisPlus
P31 SpringBoot整合Druid
P54 工程打包与运行
P57 临时属性
P59 配置文件4级分类
P60 自定义配置文件
P61 多环境开发
单文件版:
多文件版:
properties:
多环境分组管理
P65 多环境开发控制
P66 日志基本操作
P69 文件记录日志
P70 手工启动热部署
重启(Restart):自定义开发代码,包含类、页面、配置文件等,通过restart类加载器加载
重载(Reload):jar包,通过base类加载器加载
P71 自动启动热部署
激活方式:Idea失去焦点5秒后启动热部署
P72 热部署范围配置
P73 关闭热部署范围
P74 第三方Bean属性绑定
P75 松散绑定
P76 常用计量单位应用
public class ServerConfig {
@DurationUnit(ChronoUnit.MINUTES)
private Duration serverTimeOut;
@DataSizeUnit(DataUnit.MEGABYTES)
private DataSize dataSize;
}
P77 bean属性校验
1、添加JSR303规范坐标与Hibernate校验框架对应坐标
<dependency>
<groupId>javax.validation</groupid>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupid>
<artifactId>hibernate-validator</artifactId>
</dependency>
2、开启校验功能、设置校验规则
@Component
@Data
@ConfigurationProperties(prefix = "servers")
@Validated // 开启校验功能
public class ServerConfig {
@Max(value = 400, message = "最大值为400") // 设置校验规则
private int port;
}
P79 加载测试专用属性
通过properties和args参数设置测试专用属性
@SpringBootTest(properties = {"test.prop=testValue1"}, args = {"--test.prop=testValue2"})
public class PropertiesAndArgsTest {
@Value("${test.prop}")
private String msg;
@Test
void testProperties() {
System.out.println(msg);
}
}
P80 加载测试专用配置
通过import注解加载测试专用配置
@SpringBootTest
@Import(MsgConfig.class)
public class ConfigurationTest {
@Autowired
private String msg;
@Test
void testProperties() {
System.out.println(msg);
}
}
P81 测试类中启动WEB环境
webEnviroment 可选值
SpringBootTest.WebEnviroment.MOCK
SpringBootTest.WebEnviroment.DEFINED_PORT
SpringBootTest.WebEnviroment.RANDOM_PORT
SpringBootTest.WebEnviroment.NONE(默认)
@SpringBootTest(webEnviroment = SpringBootTest.WebEnviroment.RANDOM_PORT)
public class WebTest {
@Test
void testRandomPort() {
}
}