Springboot — 知识点小结(学习、面试必备)

2020-10-29  本文已影响0人  Java柚子

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  备注:简书   免费领取~

上一篇下一篇

猜你喜欢

热点阅读