简介
什么是 Spring Boot
- 简化 Spring 应用开发的框架
- 整个 Spring 技术栈的一个大整合
- J2EE 的一站式解决方案
Spring Boot 的优点
- 快速创建独立运行的 Spring 项目及主流框架集成
- 使用嵌入式 Servlet 容器,无序打包成 WAR 文件
- starters 自动依赖与版本控制
- 大量自动配置,也可修改默认值
- 无须配置 XML
- 准生成环境运行时应用监控
- 与云计算天然集成
微服务
微服务是一种架构风格,下面是基本特点:
- 一系列小服务的集成
- 每一个功能元素最终都是可独立替换和独立升级的元素
基础入门
项目结构
依赖管理配置文件是 pom.xml
全局配置文件是 application.properties
application.yml
文件格式 utf-8,Spring 编码该文件是 ASCII,解码是 utf-8
application.yml
-
K: V
:表示一对键值对
缩进表示层级关系,同一缩进为同一层级
大小写敏感
-
值是字符串:
- 单引号:转义特殊字符
- 双引号:不转义特殊字符
值是对象:
|
|
值是数组:
|
|
入口函数是 DemoApplication.java
测试
test文件夹
配置文件注入
@ConfigurationProperties
全局批量注入
- 创建需要注入的类并添加注解
|
|
- 配置注入值
|
|
@Value
单个注入
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入 | 单个注入 |
松散绑定 | 支持 | 不支持 |
四则运算 | 不支持 | 支持 |
数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
@PropertySource 局部批量注入
@ImportResource 导入xml注入
@Configuration 配置类注入
|
|
配置文件占位符
|
|
profile 配置多环境
创建多个properties文件:
application.properties
application-dev.properties
application-prod.properties
在第一个配置文件中设置:
spring.profiles.active=dev | prod
,将会采用第二或第三个文件
使用 yaml
|
|
配置文件的默认加载路径
- 当前工程/config
- 当前工程
- resources/config
- resources
- 优先级从上到下全部加载,同配置覆盖,不同配置互补
- 可以通过
spring.config.location
增加新的配置文件- 外部 jar 优先内部,带
spring.profiles.active
优先不带
日志
日志抽象层和实现框架
抽象层 | 实现框架 |
---|---|
JUL(java.util.logging):java自带、 log4j:同步阻塞、 logback:log4j新版、 log4j2:异步非阻塞 |
Spring Boot使用日志
yaml 配置使用
|
|
xml 配置使用
-
logback:
- logback-spring.xml
- logback.xml
- logback-spring.groovy
- logback.groovy
-
log4j2:
- log4j2-spring.xml
- log4j2.xml
-
JUL(java.util.logging):
- logging.properties
其中:加了spring的可被spring解析,能指定不同环境等高级功能
lombok 使用
导入依赖
|
|
导入 lombok 支持插件(VS Code),IDEA同样也需要导入
注解用法
|
|
Web开发
静态资源访问
静态资源访问目录
如上图:src/main/resources 目录下的 public
目录都是静态资源文件夹
Controller 不能处理的请求交给静态资源处理器,在这个四个文件夹寻找资源
改变默认路径、访问资源加前缀
|
|
webjar: js资源 jar 包
|
|
导入依赖后可通过 locahost:9000/webjars/jquery/3.6.0/jquery.js 访问到
欢迎页测试
- 默认加载静态资源路径下的 index.html 页面,和小图标
- 如果配置了访问前缀,将失效
请求处理
常用参数注解
|
|
- User user自动注入底层原理:是将字符串 ==> JavaBean类中属性对应的类型
- 自定义提交数据类型转换方法
@RequestAttribute
|
|
@MatrixVariable
|
|
默认是不生效的
需要添加配置类,配置属性生效
|
|
Map、Model添加到Request请求域
|
|
数据响应
默认响应 json 数据
- 导入依赖
|
|
- 返回对象(解析器默认自动解析成 json)
|
|
设置请求参数返回 xml、json
- 导入 xml 依赖
|
|
- 配置文件
|
|