人不走空
🌈个人主页:人不走空
💖系列专栏:算法专题
⏰诗词歌赋:斯是陋室,惟吾德馨
目录
🌈个人主页:人不走空
💖系列专栏:算法专题
⏰诗词歌赋:斯是陋室,惟吾德馨
1. @SpringBootApplication 简介
2. @EnableAutoConfiguration 启用自动配置
3. @***ponentScan 组件扫描
4. @Configuration 配置类
作者其他作品:
在构建Spring Boot项目时,我们经常看到@SpringBootApplication
注解。这个注解虽然通常由Spring Boot项目自动生成,但其背后蕴含了丰富的功能和关键组件,值得我们深入了解。本文将详细介绍@SpringBootApplication
注解的作用及其包含的三个关键注解:@EnableAutoConfiguration
、@***ponentScan
、@Configuration
。
1. @SpringBootApplication
简介
首先,让我们单独聚焦@SpringBootApplication
注解。在Spring Boot项目的主类上,我们通常会看到如下代码:
@SpringBootApplication
public class SpringSecurityJwtGuideApplication {
public static void main(java.lang.String[] args) {
SpringApplication.run(SpringSecurityJwtGuideApplication.class, args);
}
}
这个注解实际上是@Configuration
、@EnableAutoConfiguration
、@***ponentScan
三个注解的组合,是Spring Boot项目的基石。
package org.springframework.boot.autoconfigure;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@***ponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
......
}
package org.springframework.boot;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}
根据 SpringBoot 官网,这三个注解的作用分别是:
2. @EnableAutoConfiguration
启用自动配置
@EnableAutoConfiguration
注解是Spring Boot自动配置机制的入口。它告诉Spring Boot根据项目的依赖性自动配置应用程序所需的bean。
3. @***ponentScan
组件扫描
@***ponentScan
注解负责扫描被@***ponent
、@Service
、@Controller
等注解标记的类,并注册这些类作为Spring容器的bean。默认情况下,它会扫描当前类所在的包及其子包中的所有类。
4. @Configuration
配置类
最后,@Configuration
注解用于声明当前类是一个配置类,类中可能包含一些用于配置的bean定义。这使得我们可以在Spring上下文中注册额外的bean或导入其他配置类。
通过对@SpringBootApplication
注解背后三个注解的解析,我们可以更好地理解Spring Boot的自动配置机制、组件扫描和配置类的作用。这使得我们能够更高效地构建和理解Spring Boot应用程序的结构。在实际项目中,我们可以充分利用这些注解提供的便利,从而更加专注于业务逻辑的开发。
作者其他作品:
数据结构之链表-CSDN博客
力扣1445 连续字符-CSDN博客
软件工程之维护阶段-CSDN博客
开源社区的力量:软件工程的协作新模式-CSDN博客
https://blog.csdn.***/double222222/article/details/134776271
软件工程之设计分析(2)-CSDN博客
软件工程之设计分析(1)-CSDN博客
软件工程之需求分析-CSDN博客
软件工程之编码(1)-CSDN博客
https://blog.csdn.***/double222222/article/details/135334628?spm=1001.2014.3001.5502
【Linux】文件服务NFS(***work File System)-CSDN博客
软件工程之编码(2)-CSDN博客