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

本文概述了SpringBoot的基本概念,如jar包版本管理、Starter模块、默认项目结构及自动配置。重点介绍了@SpringBootApplication注解的作用和默认行为,帮助读者快速上手SpringBoot的强大之处。
摘要由CSDN通过智能技术生成

体验过hello world程序后,可以感觉到SpringBoot的强大之处,在正式学习SpringBoot为什么这么厉害前,首先需要掌握一些SpringBoot中的基本概念,打开官方文档,进入Using Spring Boot章节:
image.png

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

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

2.Starters

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

image.png

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提供的默认扫描规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值