1. SpringBoot 简介
SpringBoot 是简化 Spring 应用开发的一个框架。他整合了 Spring 的技术栈,提供各种标准化的默认配置。使得我们可以快速开发 Spring 项目,免掉 xml 配置的麻烦。降低 Spring 项目的成本。
2. SpringBoot 的优缺点
使编码配置部署都变得很简单。缺点可能就是自动注入的 bean ,不是特别清楚,有可能会冲突。
由于篇幅有限,这里只展示一部分,完整版我已经整理成了文档,有需要的朋友可以加q群:1103806531 备注:简书 免费领取~
3. SpringBoot 如何固定版本
一种是 parenet 的时候直接固定。
一种是通过 dependcy 来固定,因为可能当前项目已经有父项目。
4. SpringBoot 的使用方式
maven 中父项目导入 Springboot 的启动器。然后编写一个主程序打上 SpringBootApplication 注解。通过 run 方法就可以启动。
5. SpringBoot 自动配置原理
首先可以看到启动类上面有一个 SpringBootApplication 注解,点进去之后,又 EnableAutoConfiguration 注解。然后再进去,发现有个 @Import 注解,其导入的是 EnableAutoConfigurationImportSelector 类。再看这个类,他是集成了一个抽象的 AutoConfigutationimportSelector 。再往上就是接口 ImportSelector 。然后如果实现了接口的 selectImport 接口就会将其中的返回的数组全部加载到 Spring 容器中。其中实现的最主要的地方是 getCandidateConfigurations 方法。那个方法内部实现就是回去读取 meta-inf 下的 spring.factories 。所以主要在那里面配置的类就都会被自动加载。
6. SpringBoot 配置文件注入
注入实体类中,实体类可以使用 @ConfigurationProperties(prefix = “person”) 注解。
7. @Value 和 @ConfigurationProperties 比较
8.@PropertySource
加载指定的配置文件。如下,如果不声明的话,将从主配置文件加载。
9. SpringBoot 外部配置文件加载顺序
这个挺多的,我们就几个重要的。
高优先级的会覆盖低优先级的。
命令行上的参数配置是优先级最高的。
jar 包外的带 profile 的配置文件。
jar 包内的带 profile 的配置文件。
jar 包外的不带 profile 的配置文件。
jar 包内的不带 profile 的配置文件。
10. Springboot 日志关系
SpringBoot 默认使用的 slf4j+logback 。引入 logging-starter 就可以使用。能自动适配其他日志。只需要将日志里面的 commons-logging 移除。就会自动引入其他日志。
使用 LoggerFactory 可以获得 logger 。通过 logger 就可以记录日志。
日志的一些配置
logging.level.com.atguigu=trace 指定打印级别
logging.file=G:/springboot.log 指定日志生成路径
logging.path=/spring/log 指定日志生成相对路径
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n 指定控制台输出格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== 指定文件中日志输出格式
11. SpringBoot 热部署
jrebal 是收费的。
一般使用 springboot-dev-tool 。通过 ctrl+f9 进行热部署。开启 idea 的自动编译。
12. SpringBoot 的监控
引入 actuatro 的监控器。配置文件需要配置安全关闭。 management.security.enabled=false 。可以配置 endpoint 的 shutdown 的 enable 开启,就可以直接关闭了。
13. SpringBoot 整合 redis
引入 redis 的启动器。 data-redis 。引入后再配置文件进行配置 redis 的 host 。然后通过 redistemplate 就可以进行操作了。会乱码,默认使用的是 jdk 的序列化 json 器。需要改成 jackson 。自己实现一个 RedisTmeplate 。泛型为 object , object 。再实现 CacheManager 。就会发现缓存变成 json 形式了。
最后
为大家整理了各个知识点模块整理文档(微服务、数据库、mysql、jvm、Redis等都有)和更多大厂面试真题,有需要的朋友可以加q群:1103806531 备注:简书 免费领取~
网友评论