SpringBoot 自动配置原理

SpringBoot 自动配置

1.什么是SpringBoot的自动配置?

SpringBoot自动配置,英文为Auto-Configuration:

  • 它是指基于你引入的依赖jar包,对SpringBoot应用进行自动配置
  • 它为SpringBoot框架的”开箱即用”提供了基础支持

自动装配与自动配置的区别

自动装配(AutoWire)与自动配置(Auto-Configuration)是两个概念

  • 自动装配: 针对的是Spring中的依赖注入

  • 自动配置: 针对的是SpringBoot中的配置类

补充:

我们经常提到的配置类(Configuration Class)也有广义与狭义的区别:

  • 广义上的”配置类“: 被注解@Component 直接或间接修饰的某个类,即Spring的组件,其中就包含了被@Configuration修饰的类。
  • 狭义上的”配置类”: 特指被@Configuration注解修饰的类。

2.SpringBoot导入第三方maven依赖

通常当我们需要在 SpringBoot 中使用阿里云的OSS文件上传功能时,步骤是这样的:

2.1 导入相关的Starter依赖

1
2
3
4
5
6
 <!-- 由自己编写的 阿里云OSS文件上传的maven依赖  -->
<dependency>
<groupId>com.kangkang</groupId>
<artifactId>aliyun-oss-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

2.2 配置阿里云OSS

1
2
3
4
5
6
7
aliyun:
oss:
endpoint: https://?????.aliyuncs.com
accessKeyId: LTAI5txxxxxxxxX7iM
accessKeySecret: gtdFm??????sgDKm51fx
bucketName: ????
url: https://?????.oss-cn-hangzhou.aliyuncs.com

2.3 直接使用Oss Template

此时SpringBoot就已经将相关Bean对象注入到IOC容器中,可以通过@AutoWired自动注入使用了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
@RestController
@RequestMapping("/file")
@Slf4j
public class FileController {

@Autowired
private OssTemplate ossTemplate;

@PostMapping("/upload")
public String upload(MultipartFile imageFile) throws IOException {
String originalFilename = imageFile.getOriginalFilename();
InputStream inputStream = imageFile.getInputStream();
return ossTemplate.upload(originalFilename, inputStream);
}
}

##3.无启动类实现类自动加载

在resouce目录下创建Spring.factories目录

这些自动配置类通常会在 Spring Boot 应用程序启动时自动生效,它们会根据一定的条件为你的应用程序自动配置一些功能和组件

1
2
3
4
5
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.kangkang.common.exception.ExceptionCatch,\
com.kangkang.common.conf.Swagger2Configuration,\
com.kangkang.common.aliyun.GreenTextScan,\
com.kangkang.common.aliyun.GreenImageScan

SpringBoot 自动配置原理
http://example.com/2024/01/26/SpringBoot 自动配置/
作者
kangkang
发布于
2024年1月26日
许可协议