Spring Boot Starter 探究

What is Starter is Spring Boot

首先我们需要了解一下 Spring Boot 中 starter 的概念,Spring Boot 相比 Spring 有以下几个优势:

  1. 创建独立(standalone)的 Spring 应用程序
  2. 相比 Spring,Spring Boot 不需要再打包为 war 然后部署到 Tomcat 的服务器上。Spring Boot 内嵌 Tomcat、Jetty 或者 Undertow
  3. 提供可选的 starter 来简化项目的构建配置
  4. 自动配置 Spring 相关 Bean 和第三方库的相关配置
  5. 无需生成代码,无需 XML 配置
  6. 提供监控(metrics)、运行状况检查、外部化配置的功能

从上面 Spring Boot 的 features 我们可以发现,starter 实际上是为 Spring Boot 提供了一个简化项目构建配置的能力,可以让使用者将精力放在业务逻辑的开发中,而不需要去烦恼如何对一些依赖进行配置,因为这些配置都已经通过 starter 集成到了 Spring Boot 当中,可以作为 Spring Boot 开箱即用的部分,starter 中的 Bean 都已经注入到了 IOC 容器当中,而不需要我们再去手动配置。

阅读更多
HotSpot GC 算法探究

Spring 循环依赖

什么是循环依赖

在 Spring 中,循环依赖有如下的几种形式(箭头代表依赖关系)

  1. BeanA -> BeanB -> BeanA(依赖形成闭环关系)
  2. BeanA -> BeanA(自己依赖自己)
阅读更多
文件管理

文件的概念

  • 文件是具有符号名的,在逻辑上具有完整意义的一组相关信息项的序列
  • 文件(document)与计算机文件(file)
  • 文件名是由字母、数字和其他符号组成的一个字符串,其格式和长度因系统而异
阅读更多
操作系统 -- 设备管理

设备管理概述

I/O 设备

  • I/O 设备,又称输入输出设备、外围设备、外部设备、外设:用于计算机系统与外部世界(如用户、其他计算机或设备)的信息交换或存储。
  • I/O 擦欧总:内存和外设间的信息传送操作
    • 影响计算机系统的通用性和可扩充性
    • 影响计算机系统综合处理能力及性价比的重要因素
阅读更多
Java SPI

前言

在面向对象的设计原则中,一般推荐模块之间基于接口编程,通常情况下调用方模块是不会感知到被调用方模块的内部具体实现。一旦代码里面涉及到具体实现类,就违反了开闭原则。如果需要替换一种实现,就需要修改代码。

阅读更多
CSS进阶

CSS 如何运行

当浏览器展示一个文件的时候,它必须兼顾文件的内容和文件的样式信息,下面我们会了解到它处理文件的标准的流程。需要知道的是,下面的步骤是浏览加载网页的简化版本,而且不同的浏览器在处理文件的时候会有不同的方式,但是下面的步骤基本都会出现。

阅读更多
CSS 基础

什么是 CSS

Cascading Style Sheets,层叠样式表

  1. CSS 不是编程语言
  2. CSS 告诉浏览器如何指定样式、布局等
  3. CSS 最重要的是选择器(Selector),其余需要学习的包括浮动、定位、动画等
阅读更多
处理器管理

处理器与寄存器

处理器部件的简单示意

阅读更多
计算机操作系统概述

计算机系统概述

计算机系统的组成

  • 计算机系统:包括硬件子系统和软件子系统
  • 硬件:借助电、磁、光、机械等原理构成的各种物理部件的有机结合,是系统工作的实体
    • CPU、主存储器、I/O控制系统、外围设备
  • 软件:各种程序和文件,用于指挥计算机系统按指定的要求进行协同工作
    • 包括系统软件、支撑软件和应用软件
    • 关键系统软件是:操作系统与语言处理程序
阅读更多