1 SpringBoot
Spring
Boot
配置比较多比较繁琐 → 配置魔鬼
SpringBoot → 约定大于配置
周x鹏 和他女朋友出去逛街,喝奶茶
day01、女朋友说要和奈雪的茶,买什么?奈雪
day02、女朋友说要喝奈雪的茶,买什么?奈雪;以后出来说要喝奶茶,就买奈雪
day03、女朋友说要喝奶茶,买什么? 奈雪
day04、女朋友说要喝喜茶,买什么???喜茶
分析:
提供一些默认值
不需要外部的javaEE容器 → 提供了内置的javaEE → jar包的形式 → 使用命令启动
SpringBoot的配置文件properties、yml
主要使用JavaConfig注册组件
2 SpringBoot的文档
参考文档
3 搭建一个SpringBoot应用
3.1 从官网构建
由于网络原因搁置
3.2 从idea构建
由于网络原因搁置
选择版本和依赖
3.3 由maven工程改造一个SpringBoot
3.4 启动类
jar包的方式启动应用 → 执行jar包其实就是运行里面的main方法
3.5 支持SpringMVC
依赖:springboot对web支持的依赖
3.6 spring-boot-starter
spring-boot-starter-xxx(例如:spring-boot-starter-web)
xxx-spring-boot-starter(例如:mybatis-spring-boot-starter)
springboot对xxx框架的支持的依赖
1、引入该框架所必须的依赖
2、提供了该框架的自动配置的依赖
4 SpringBoot的配置
4.1 springboot配置文件
application.properties
按照特定的名称去加载配置文件
application(-xxx).properties
application(-xxx).y(a)ml
语法有一点点的区别,yml表达的也是key=value的形式
4.2 tomcat
server.port:启动的端口号 server.servlet.context-path:上下文路径4.3 扫描包的配置是什么(重要)
SpringBoot提供了扫描包的配置 → **启动类所在的包目录**4.4引用配置文件中的值
4.5 @ConfigurationProperties(非常重要)
打通配置文件和spring容器中组件的成员变量之间的联系,更简便的方式
4.6 @EnableConfigurationProperties(Class)
class对应的值 @ConfigurationProperties对应的类
4.7 自定义配置的提示
重新启动应用程序
遗憾
4.8 yml配置文件
1、大小写敏感
2、遇到点的时候,使用冒号加上换行,然后使用空格缩进(缩进几格都可以)
3、等于符号,使用的是冒号加上一个空格
4.9 参数类型(重要)
基本类型、包装类、字符串 → 直接写
数组或list:语法是相同
Map
javabean
成员变量名命名为驼峰形式的,可以将大写字母变更为-小写字母,比如maxSize → max-size
4.9.1 properties配置文件
4.9.2 yml配置文件
4.10 多配置文件(重要)
配置文件的名称application(-xxx).properties(yml)
4.10.1 分流
4.10.2 解耦
4.10.3 yml在一个文件中表达多个配置文件
4.11 配置文件中的占位符
4.12 引入其他配置文件(了解并不建议)
4.12.1 properties配置文件 → @PropertySource
springboot配置文件的补充
4.12.2 xml配置文件 → @ImportResource
spring配置文件
5 SpringBoot整合web
5.1 引入依赖
spring-boot-starter-web
5.2 静态资源配置
默认的静态资源路径:
5.3 converter
心脏搭桥
5.4 SpringMVC的配置类
5.5 Servlet\filter\listener(了解)
1、注册组件RegistryBean
2、使用注解
3、直接注册为组件
5.6 模板引擎
如果要做视图相关的handler提出
和jsp用法一致的
freemarker → spring-boot-starter-freemarker
6 SpringBoot整合Mybatis
6.1 引入依赖
mybatis-spring-boot-starter
6.2 配置
6.3 其他配置
7 约定大约配置原理
7.1 找到自动配置类(/META-INF/spring.factories)
7.2 为什么约定大于配置
为什么注册了默认的组件
@Conditional → 当满足一定的条件,注解生效
@ConditionalOnXXX
@ConditionalOnMissingXXX