【Java八股文总结】之SpringBoot
创始人
2024-02-08 03:10:17

文章目录

  • SpringBoot
      • 1、Spring Boot的优点?
      • 2、Spring Boot自动配置原理
      • 3、如何定义一个SpringBoot Starter?
      • 4、SpringBoot启动原理?
      • 5、SpringBoot的常用注解
  • Spring Cache
      • 1、Spring Cache介绍
      • 2、Spring Cache注解
  • Sharding-JDBC

SpringBoot

1、Spring Boot的优点?

Spring Boot 基于 Spring 开发,Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。
Spring Boot以 约定大于配置 核心思想开展工作,相比 Spring 具有如下优势:

  • Spring Boot 可以快速创建独立的 Spring 应用程序。
  • Spring Boot 内嵌了如 Tomcat,Jetty 和 Undertow 这样的容器,也就是说可以直接跑起来,用不着再做部署工作了。
  • Spring Boot 无需再像 Spring 一样使用一堆繁琐的 xml 文件配置。
  • Spring Boot 可以 自动配置(核心)Spring。SpringBoot 将原有的 XML 配置改为 Java 配置,将 bean 注入改为使用注解注入的方式(@Autowire),并将多个 xml、properties 配置浓缩在一个 appliaction.yml 配置文件中。
  • Spring Boot 提供了一些现有的功能,如量度工具,表单数据验证以及一些外部配置这样的一些第三方功能。
  • Spring Boot 可以快速整合常用依赖(开发库,例如 spring-webmvc、jackson-json、validation-api 和 tomcat 等),提供的 POM 可以简化 Maven 的配置。当我们引入核心依赖时,SpringBoot 会自己引入其他依赖。

2、Spring Boot自动配置原理

SpringBoot 开启自动配置的注解是 @EnableAutoConfiguration,启动类上的注解 @SpringBootApplication 是一个复合注解,包含了@EnableAutoConfiguration:
在这里插入图片描述

  • EnableAutoConfiguration 只是一个简单的注解,自动装配核心功能的实现实际是通过 AutoConfigurationImportSelector类。
    在这里插入图片描述
  • AutoConfigurationImportSelector实现了ImportSelector接口,这个接口的作用就是收集需要导入的配置类,配合 @Import() 就可以将相应的类导入到 Spring 容器中。
  • 获取注入类的方法是selectImports(),它实际调用的是getAutoConfigurationEntry,这个方法是获取自动装配类的关键,主要流程可以分为这么几步:
    1. 获取注解的属性,用于后面的排除。
    2. 获取所有需要自动装配的配置类的路径: 这一步是最关键的,从 META-INF/spring.factories 获取自动配置类的路径。
    3. 去掉重复的配置类和需要排除的重复类,把需要自动加载的配置类的路径 存储起来。

3、如何定义一个SpringBoot Starter?

① 创建一个项目,命名为 demo-spring-boot-starter,引入 SpringBoot 相关依赖
在这里插入图片描述

② 编写配置文件(定义属性配置的前缀)
在这里插入图片描述
③ 自动装配:创建自动配置类HelloPropertiesConfigure。
在这里插入图片描述
④ 配置自动类:在/resources/META-INF/spring.factories文件中添加自动配置类路径。
在这里插入图片描述
⑤ 测试。

4、SpringBoot启动原理?

SpringApplication 这个类主要做了以下4件事情:

  1. 推断应用的类型是普通的项目还是 Web 项目(判断项目类型)。
  2. 查找并加载所有可用初始化器,设置到 initializers 属性中。
  3. 找出所有的应用程序监听器,设置到 listeners 属性中。
  4. 推断并设置 main 方法的定义类,找到运行的主类。
    SpringBoot 启动大致流程如下:
    在这里插入图片描述

5、SpringBoot的常用注解

在这里插入图片描述

Spring Cache

1、Spring Cache介绍

Spring Cache是一个框架,实现了 基于注解的缓存功能,实现时需要实现CacheManager接口。CacheManager是Spring提供的各种缓存技术抽象接口。针对不同的缓存技术需要实现不同的CacheManager:
在这里插入图片描述

2、Spring Cache注解

在这里插入图片描述
在Spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用 @EnableCaching开启缓存支持 即可。
例如,使用Redis作为缓存技术,只需要导入Spring data Redis的maven坐标即可。

Sharding-JDBC

Sharding-JDBC定位为 轻量级Java框架 ,在Java的JDBC层提供额外的服务。它 使用客户端直连数据库 ,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。在程序中用来 实现数据库读写分离

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...