前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Java】深入解析 @SpringBootApplication 注解

【Java】深入解析 @SpringBootApplication 注解

作者头像
人不走空
发布2024-02-21 10:12:37
3260
发布2024-02-21 10:12:37
举报
文章被收录于专栏:学习与分享

在构建Spring Boot项目时,我们经常看到@SpringBootApplication注解。这个注解虽然通常由Spring Boot项目自动生成,但其背后蕴含了丰富的功能和关键组件,值得我们深入了解。本文将详细介绍@SpringBootApplication注解的作用及其包含的三个关键注解:@EnableAutoConfiguration@ComponentScan@Configuration

1. @SpringBootApplication 简介

首先,让我们单独聚焦@SpringBootApplication注解。在Spring Boot项目的主类上,我们通常会看到如下代码:

代码语言:javascript
复制
@SpringBootApplication
public class SpringSecurityJwtGuideApplication {
      public static void main(java.lang.String[] args) {
        SpringApplication.run(SpringSecurityJwtGuideApplication.class, args);
    }
}

这个注解实际上是@Configuration@EnableAutoConfiguration@ComponentScan三个注解的组合,是Spring Boot项目的基石。

代码语言:javascript
复制
package org.springframework.boot.autoconfigure;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(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. @ComponentScan 组件扫描

@ComponentScan注解负责扫描被@Component@Service@Controller等注解标记的类,并注册这些类作为Spring容器的bean。默认情况下,它会扫描当前类所在的包及其子包中的所有类。

4. @Configuration 配置类

最后,@Configuration注解用于声明当前类是一个配置类,类中可能包含一些用于配置的bean定义。这使得我们可以在Spring上下文中注册额外的bean或导入其他配置类。

通过对@SpringBootApplication注解背后三个注解的解析,我们可以更好地理解Spring Boot的自动配置机制、组件扫描和配置类的作用。这使得我们能够更高效地构建和理解Spring Boot应用程序的结构。在实际项目中,我们可以充分利用这些注解提供的便利,从而更加专注于业务逻辑的开发。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. @SpringBootApplication 简介
  • 2. @EnableAutoConfiguration 启用自动配置
  • 3. @ComponentScan 组件扫描
  • 4. @Configuration 配置类
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档