SpringBoot
学习目标
- 掌握基于SpringBoot框架的程序开发步骤
- 熟练使用SpringBoot配置信息修改的服务器配置
- 基于SpringBoot的完成SSM整合项目开发
入门案例
步骤:SpringBoot入门程序
- 创建新模块,选择Spring初始化,并配置模块相关基础信息
- 选贼当前模块需要使用的技术集
- 开发控制器类
- 运行自动生成的Application类
- 最简SpringBoot程序所包含的基础文件
- pom.xml
- Application类
- Spring程序与SpringBoot程序对比
注意事项:基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构
- 基于SpringBoot官网创建项目
SpringBoot项目快速启动
- 前后端分离合作开发
步骤
- 对SpringBoot项目打包(执行Maven构建指令package)
- 执行启动指令
SpringBoot概述
- SpringBoot时由Pivotal团队提供的全新框架,其设计目的使用来简化Spring应用的初始环境搭建以及开发过程
- Spring程序缺点
- 配置繁琐
- 依赖设置繁琐
- SpringBoot程序优点
- 自动配置
- 起步依赖(简化依赖配置)
- 辅助功能(内置服务器,...)
SpringBoot起步依赖
- starter
- SpringBoot中常见项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的
- parent
- 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
- spring-boot-starter-parent(2.5.0)与spring-boot-starter-parent(2.4.6)共计57出坐标版本不同
- 实际开发
- 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供
- 如果坐标错误,在指定version(要小心版本冲突)
SpringBoot程序启动
- 启动方式
@SpringBootApplication
public class Spring01QuickstartApplication {
public static void main(String[] args) {
SpringApplication.run(Spring01QuickstartApplication.class, args);
}
}
- SpringBoot在创建项目时,采用jar的打包方式
- SpringBoot的引导类是项目的入口,运行main方法就可以启动项目
- 使用maven依赖管理变更起步依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
- Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty
基础配置
修改服务器端口
- SpringBoot提供了多种属性配置方式
- application.properties
server.port=80
- application.yml
server:
port: 80
- application.yaml
server:
port: 80
- 自动提示功能消失解决方案
- File ---> Project Structure ---> Facets --->Spring ---> Customize Spring Boot... ---> + --->在resources里选择要添加的文件
- SpringBoot配置文件加载顺序(了解)
- application.properties > application.yml > application.yaml
SpringBoot核心配置文件名为application
SpringBoot内置属性过多,且所有属性集中在一起修改,在使用时,通过提示键+关键字修改属性
yaml
- YAML(YAML Ain't Markup Language),一种数据序列化格式
- 优点:
- 容易阅读
- 容易与脚本语言交互
- 以数据为核心,重数据轻格式
- YAML文件扩展名
- .yml(主流)
- .yaml
- yaml语法规则
- 大小写敏感
- 属性层级关系使用多行描述,每行结尾使用冒号结束
- 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
- 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
表示注释
- 数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
subject:
- java
- c
- c++
- yaml数据读取
- 使用@Value读取单个数据,属性名引用方式:$
- 封装全部数据到Environment对象
- 自定义对象封装数据
- 自定义对象封装数据警告解决方案
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
多环境启动
- yaml格式(旧)
spring:
profiles: #启动指定环境
active: pro
--- #--------------------------------------
server:
port: 8080 #设置生产环境
#---------------------------------------------
spring:
profiles: dev #生产环境具体参数设定
--- #--------------------------------------
server:
port: 8081 #设置开发环境
#---------------------------------------------
spring:
profiles: pro #开发环境具体参数设定
--- #--------------------------------------
server:
port: 8082 #设置测试环境
#---------------------------------------------
spring:
profiles: test #测试环境具体参数设定
- yaml格式(新)
server:
port: 8080
spring:
config:
activate:
on-profile: dev
- properties文件多环境启动格式
- 主启动配置文件application.properties
spring.profiles.active=pro
- 环境分类配置文件application-pro.proerties
server.port=8080
- 环境分类配置文件application-dev.proerties
server.port=8081
- 环境分类配置文件application-test.proerties
server.port=8082
多环境启动命令格式
- 带参数启动SpringBoot
java -jar spring_03_read_data-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
java -jar spring_03_read_data-0.0.1-SNAPSHOT.jar --server.port=88
java -jar spring_03_read_data-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev --server.port=88
- 参数加载优先级顺序
多环境开发控制
- Maven中设置多环境属性
<profiles>
<profile>
<id>env_dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>env_pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
</profile>
<profile>
<id>env_test</id>
<properties>
<profile.active>test</profile.active>
</properties>
</profile>
</profiles>
- SpringBoot中引用Maven属性
spring:
profiles:
active: ${profile.active}
---
server:
port: 8080
# 设置生产环境
spring:
config:
activate:
on-profile: dev
---
server:
port: 8081
# 设置开发环境
spring:
profiles: pro
---
server:
port: 8082
# 设置测试环境
spring:
profiles: test
- 执行Maven打包指令
- 对资源文件开启对默认占位符的解析
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<encoding>utf-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
配置文件分类
- SpringBoot中4级配置文件
- 1级:file : config/application.yml
- 2级:file : application.yml
- 3级:classpath : config/application.yml
- 4级:classpath : application.uml
- 作用:
- 1级与2级留作系统打包后设置的通用属性
- 3级与4级用于系统开发阶段设置通用属性
整合第三方技术
- SpringBoot整合Spring(不存在)
- SpringBoot整合SpringMVC(不存在)
- SpringBoot整合Mybatis(主要)
SpringBoot整合MyBatis
- 创建新模块,选择Spring初始化,并配置模块相关基础配置信息
- 选择当前模块需要使用的技术集(MyBatis、MySQL)
- 设置数据源参数
注意事项:
SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区或在MySQL数据库端配置时区解决此问题
- 定义数据层接口与映射配置
- 测试类中注入dao接口,测试功能