当前位置: 首页 > news >正文

@SpringBootApplication 注解

什么是 @SpringBootApplication

@SpringBootApplication 是 Spring Boot 提供的一个核心注解,它是一个组合注解,用于简化 Spring Boot 应用程序的配置。这个注解通常标注在主类上,用于标识一个 Spring Boot 应用的入口。通过这个注解,开发者可以更方便地启动和配置 Spring Boot 应用程序。

@SpringBootApplication 的组成

@SpringBootApplication 其实是一个复合注解,它包含了以下三个注解:

  1. @SpringBootConfiguration
  2. @EnableAutoConfiguration
  3. @ComponentScan

让我们分别看看这三个注解的作用。

1. @SpringBootConfiguration

@SpringBootConfiguration 是一个特定于 Spring Boot 的注解,实际上是 Spring Framework 中 @Configuration 注解的一个特化版本。它标识一个类为配置类,并允许在该类中定义 @Bean 方法以注册 Bean 到 Spring 容器中。

@SpringBootConfiguration
public class MyAppConfiguration {@Beanpublic MyBean myBean() {return new MyBean();}
}
2. @EnableAutoConfiguration

@EnableAutoConfiguration 是 Spring Boot 的关键注解之一。它启用 Spring Boot 的自动配置机制,尝试根据类路径中的依赖项和应用程序中定义的 Bean 自动配置 Spring 应用程序。它大大减少了开发者需要显式配置的代码量。

@EnableAutoConfiguration
public class MyApp {public static void main(String[] args) {SpringApplication.run(MyApp.class, args);}
}
3. @ComponentScan

@ComponentScan 注解告诉 Spring 要扫描指定的包及其子包,以查找带有 @Component@Service@Repository 等注解的类,并将它们自动注册为 Spring 应用程序上下文中的 Bean。

@ComponentScan(basePackages = "com.example.myapp")
public class MyApp {public static void main(String[] args) {SpringApplication.run(MyApp.class, args);}
}
@SpringBootApplication 的使用

结合这三个注解,@SpringBootApplication 简化了配置,使得应用程序更易于开发和维护。下面是一个典型的 Spring Boot 应用程序入口类的示例:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class MyApp {public static void main(String[] args) {SpringApplication.run(MyApp.class, args);}
}

在这个例子中,@SpringBootApplication 注解等同于同时使用 @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan。这使得开发者可以专注于业务逻辑,而无需为基础配置费心。

深入理解 @EnableAutoConfiguration

@EnableAutoConfiguration 注解是 Spring Boot 自动配置的核心。它会根据应用程序类路径中的依赖项,自动配置相关的 Bean。例如,如果类路径中存在 spring-boot-starter-web 依赖,那么自动配置将为应用程序配置一个嵌入式的 Tomcat 服务器。

自动配置通过 META-INF/spring.factories 文件中定义的 EnableAutoConfiguration 条目来实现:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration

通过这种方式,Spring Boot 会加载并应用适当的配置类,使开发者无需手动配置这些组件。

自定义自动配置

虽然自动配置非常强大,但有时开发者需要自定义某些配置。可以通过以下几种方式实现:

  1. 排除特定的自动配置类

    可以使用 exclude 属性排除特定的自动配置类:

    @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
    public class MyApp {public static void main(String[] args) {SpringApplication.run(MyApp.class, args);}
    }
    
  2. 自定义 Bean

    如果需要自定义某个自动配置的 Bean,可以在配置类中定义相应的 @Bean 方法。例如,自定义 DataSource

    @SpringBootApplication
    public class MyApp {public static void main(String[] args) {SpringApplication.run(MyApp.class, args);}@Beanpublic DataSource dataSource() {return new HikariDataSource();}
    }
    
总结

@SpringBootApplication 注解是 Spring Boot 提供的一个强大工具,它结合了多个核心注解,简化了应用程序的配置和启动过程。通过自动配置和组件扫描,开发者可以快速构建和部署生产级别的应用程序。而且,Spring Boot 还允许开发者通过多种方式自定义配置,以满足特定需求。

http://www.lryc.cn/news/396049.html

相关文章:

  • java项目总结4
  • JavaScript中的数组方法总结+详解
  • 环境变量Path
  • 基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(四)支持json和xml的显示
  • 【k8s安装redis】k8s安装单机版redis实现高性能高可用
  • Scala 数据类型
  • Java Executors类的9种创建线程池的方法及应用场景分析
  • LY/T 3359-2023 耐化学腐蚀高压装饰层积板检测
  • 【linux/shell】如何创建脚本函数库并在其他脚本中调用
  • Instruct-GS2GS:通过用户指令编辑 GS 三维场景
  • disql使用
  • SpringBoot Mybatis-Plus 日志带参数
  • 【WebGIS平台】传统聚落建筑科普数字化建模平台
  • Zookeeper分布式锁原理说明【简单易理解】
  • 去除Win32 Tab Control控件每个选项卡上的深色对话框背景
  • iis部署前后端分离项目(React前端,Node.js后端)
  • 【前端项目笔记】9 数据报表
  • 等保测评推动哈尔滨数字化转型中的安全保障
  • #pragma 指令
  • 【Excel】 批量跳转图片
  • 网站更新改版了
  • 初识大模型
  • Open3D SVD算法实现对应点集配准
  • bWAPP靶场安装
  • SpringBoot + MyBatisPlus 实现多租户分库
  • 【数据挖掘】银行信用卡风险大数据分析与挖掘
  • 使用 Qt 和 ECharts 进行数据可视化
  • 【机器学习】在【Pycharm】中的实践教程:使用【逻辑回归模型】进行【乳腺癌检测】
  • 【搭建Nacos服务】centos7 docker从0搭建Nacos服务
  • 将 build.gradle 配置从 Groovy 迁移到 Kotlin