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接口,测试功能