SpringBoot笔记-基础篇-比较重要的概念

体验过hello world程序后,可以感觉到SpringBoot的强大之处,在正式学习SpringBoot为什么这么厉害前,首先需要掌握一些SpringBoot中的基本概念,打开官方文档,进入Using Spring Boot章节:
SpringBoot笔记-基础篇-比较重要的概念_第1张图片

1.需要用到的jar包版本是如何确定的

在hello world程序中,我们引入了web功能,而该功能会需要很多的jar包
SpringBoot笔记-基础篇-比较重要的概念_第2张图片
虽然我们没有明确的指定依赖包的版本,但是SpringBoot却可以引入相关的依赖,其原理是SpringBoot会为它每个版本设置默认的兼容依赖包的版本,它会在spring-boot-dependencies的pom中定义好所有需要用到的jar包版本,因此我们无需手动指定,并且在升级SpringBoot时会将默认包的版本统一升级。如果需要也可以手动指定覆盖默认的版本
SpringBoot笔记-基础篇-比较重要的概念_第3张图片

2.Starters

对于每个功能,SpringBoot都将其需要用的代码和配置封装为了Starter,它默认的命名规则为:Spring官方命名spring-boot-starter-*
其中的就代表了各种启动器,比如hello world中使用到的web全名为spring-boot-starter-web。官方推荐第三方的Starter命名为-spring-boot-starter。具体可以引用哪些Starter,每个Starter的含义是什么,可以参考Starters章节中的列表。

SpringBoot笔记-基础篇-比较重要的概念_第4张图片

3.默认的结构

如果我们什么都不修改的情况下想使用SpringBoot提供的强大功能,那么就必须满足SpringBoot要求的代码结构。SpringBoot默认会扫描包含main函数的类下及其子包下的所有类,并将它们添加到容器中。以下是官网提供的典型结构
com
± example
± myapplication
± Application.java
|
± customer
| ± Customer.java
| ± CustomerController.java
| ± CustomerService.java
| ± CustomerRepository.java
|
± order
± Order.java
± OrderController.java
± OrderService.java
± OrderRepository.java
其中被@SpringBootApplication标注的类称为主类,SpringBoot提供的自动配置功能依赖于此注解才能生效

4.自动配置

@SpringBootApplication注解由以下注解组成

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
// @SpringBootConfiguration
@Configuration
public @interface SpringBootConfiguration {

其中@Configuration是Spring用来代替xml文件的注解,被此注解标注的类称为配置类,其作用和使用xml进行配置的效果完全一样。而SpringBoot提供的自动配置功能是由@EnableAutoConfiguration注解提供的。@ComponentScan可以定义SpringBoot将会扫描并注册到容器中的组件所在的包,我们可以通过指定此注解的方式替换SpringBoot提供的默认扫描规则。

你可能感兴趣的:(Spring系列)