Spring Boot 基础学习
一、入门
1、编写基本的 SpringBoot 项目
1、创建 maven 工程
2、导入依赖
3、编写主程序
2、HelloWorld 探究
1、POM 文件
1、父项目
SpringBoot 的版本仲裁中心
以后导入依赖默认是不需要写版本;dependecies 中没引入的需要声明版本号
2、场景启动器
spring-boot-stater:
SpringBoot 场景启动器,声明了一些依赖导入,导入 web 模板正常运行需要依赖的组件
SpringBoot 将所有的功能场景都抽取处理啊,做成一个个的 starters(启动器),只需要在项目里引入这些相关场景的依赖。版本由父 pom 自动控制,一个功能对应一个场景启动器
2、主程序类
@SpringBootApplication
标注的类是 SpringBoot 的主配置类,运行该类 main 方法来启动应用
1、 @SpringBootConfiguration:表示是 SpringBoot 的配置类,底层是 @Configuration 配置类=配置文件,配置类也是容器中的一个组件
2、 @EnableAutoConfiguration:开启自动配置功能。是一个组合注解
1、@AutoConfigurationPackage:自动配置包。
将主配置类的所在包及下面所有子包里面的所有组件扫描到 Spring 容器中
2、@Import({AutoConfigurationImportSelector.class}):给容器中导入一个组件;导入的组件由 AutoConfigurationImportSelector.class(导入组件的选择器)指定。
AutoConfigurationImportSelector.class 该类下的 String[] selectImports()方法,将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到容器中。会给容器中导入非常多的自动配置类(xxxAutoConfiguration)
todo 截图自动配置类内容
3、使用 Spring Initializer 快速创建项目
选中自己需要的模块,联网自动下载依赖
默认生成的内容:
主程序已经生成好,无需手动编写 Application 类
resources 文件夹。
static:保存所有静态资源:imags...
templates:保存所有模板页面,默认 jar 包方式,嵌入式 Tomcat,默认不支持 jsp 页面,可以使用模板引擎(freemarker、thymeleaf)
application.properties:Spring Boot 应用的配置文件。可修改一些默认设置,ex:server.port=XXX
二、配置文件
1、配置文件
SpringBoot 使用一个全局的配置文件
application.properties
application.yml
作用:修改自动配置的默认值
YAML(YAML Ain't Markup Language):以数据为中心的配置
a:是一个标记语言
isn't:不是一个标记语言
标记语言:
yml 配置案例
2、YAML 语法
1、基本语法
K: [空格]V 表示一个键值对
以空格缩进来控制层级关系,左对齐的一列数据是同一层级
属性和值也是大小写敏感
2、值的写法
字面量:普通的值(数字、字符串、布尔)
k: v:字面量直接写、字符串默认不用加引号
"":不转义字符串中特殊字符
'':会转义特殊字符
对象:属性+值,键值对
k: v:下一行写对象的属性和值
行内写法
friends: {lastName:zhangsan, age: 18} 复制代码
数组:
用-值表示数组中的一个元素
3、获取配置文件值
1、将配置文件中配置的属性值映射到组件中@ConfigurationProperties(prefix = "xxx")
:将本类中的所有属性和配置文件中值进行绑定
2、导入配置文件处理器
spring-boot-configuration-processor
单元测试
@SpringBootTest:使用 SpringBoot 的单元测试
@RunWith(SpringRunner.class) :驱动器
3、properties 配置文件
1、语法
2、获取配置文件值
1、@ConfigurationProperties(prefix = "xxx");编码问题:FileEncodings:设置转换成 ASCII
2、@Value:Spring 的底层注解,为字段赋值。@Value(${xxx.yyy}/表达式/字面量)
获取 map 的值:
JavaBean 和配置文件进行映射时->@ConfigurationProperties
单个字段获取配置值->@Value
三、Profile
用来支持多环境配置
1、多 Profile 文件
1、properties 文件
主配置文件编写时,文件名可为 application-{profile}.properties/yaml
2、yaml 文件
---:同一个文件中划分不同的 document
2、激活指定 profile
Spring-profiles.active = xxx:配置文件中指明激活指定 profile
命令行:idea 运行时指定。--spring.profiles.active = dev。优先级更高
将项目打成 jar 包(打完的包在 target 目录下),java -jar xxx.jar --spring.profiles.active = dev
虚拟机参数。VM options:-Dspring-profiles.active=dev
四、日志
1、日志框架
JUL、JCL、JBoss-logging、logback、log4j、log4j2、slf4j....
左边选一个门面,右边选一个实现
日志门店:slf4j;实现:log4j2
SpringBoot 底层是 Spring 框架,Spring 默认是 JCL、SpringBoot 选用的是 slf4j 和 logback
评论