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

Spring 常见注解

目录
    • 🧐 @Configuration@Import 的核心区别
    • 详细解释
      • 1. @Configuration (配置类)
      • 2. @Import (引入)
  • 参考资料

🧐 @Configuration@Import 的核心区别

特性 @Configuration @Import
主要目的 标记一个类是 Java 配置类,它是 Bean 定义的来源/容器 将一个或多个配置类或组件类引入到当前的配置类中。
角色 生产者 (Producer) 和 容器 (Container)。 引入者 (Importer) 或 聚合器 (Aggregator)。
通常用法 用于定义 @Bean 方法来创建和配置 Spring Bean。 用来合并、分组或有选择性地加载其他配置。
必须标记 必须标记在一个类上。 必须标记在另一个 @Configuration 类(或 @Component 等)上。
引入内容 它自己包含 bean 定义(通过 @Bean@ComponentScan)。 引入其他类(通常是 @Configuration 类,也可以是普通的 @Component 类、ImportSelectorImportBeanDefinitionRegistrar)。

详细解释

1. @Configuration (配置类)

@Configuration 的作用是告诉 Spring 容器:这是一个包含 bean 定义的类

  • 定义 Bean: 你可以在这个类中使用 @Bean 方法来手动实例化和配置 bean。
    @Configuration
    public class AppConfig {@Beanpublic UserService userService() {return new UserService();}
    }
    
  • 配置核心: 在 Java 配置方式中,它就是配置信息的中心。Spring 容器会扫描并处理被这个注解标记的类,从而将其中定义的 bean 注册到容器中。

2. @Import (引入)

@Import 的作用是让一个 @Configuration 类能够引入其他的配置类或组件类。它是一种实现配置模块化聚合的机制。

  • 聚合配置: 当你的应用有多个独立的配置模块(如数据库配置、安全配置、Web 配置)时,你可以使用 @Import 将它们集中到一个主配置类中。
    @Configuration
    @Import({DatabaseConfig.class, SecurityConfig.class}) // 将其他配置类引入
    public class MainAppConfig {// 主应用的其他配置或 Bean 定义
    }
    
    这样,你只需要将 MainAppConfig 注册到 Spring 容器,所有被引入的配置类也会被加载。
  • 引入普通组件: 从 Spring 3.1 开始,@Import 不仅可以引入 @Configuration 类,也可以直接引入普通的组件类(如没有 @Component@Service 注解的 POJO 或 Service 类)。被引入的组件类也会被注册为 Spring bean。
    @Configuration
    @Import(UserService.class) // 直接将 UserService 类注册为一个 Bean
    public class ComponentImportConfig {// ...
    }
    

参考资料

http://www.jsqmd.com/news/17854/

相关文章:

  • 题解:AtCoder ARC208C Mod of XOR
  • 题解:Luogu P6898 [ICPC 2014 WF] Metal Processing Plant
  • 32-腾讯IM接入资料和定价
  • 题解:AtCoder ARC207A Affinity for Artifacts
  • 题解:Luogu P9260 [PA 2022] Miny
  • 题解:Luogu P13544 [OOI 2022] Serious Business
  • 题解:Luogu P14254 分割(divide)
  • 31_创蓝短信接入资料和定价
  • 02.Python百行代码实现抽奖系统
  • CSP-S 35
  • 题解:P11662 [JOI 2025 Final] 方格染色 / Grid Coloring
  • CSP-S 32 多校5
  • CSP-S 33
  • CSP-S 29
  • 10.20每日总结
  • CSP-S 31
  • 2025网络安全振兴杯wp
  • 后缀树
  • ES原理、zookeeper、kafka
  • CF1606E Arena 题解(动态规划)
  • 服务器CPU市场概况2025
  • CSP-S 24
  • 正睿 2025 NOIP20 连测 Day5 做题记录
  • 29-腾讯云COS接入指南与价格说明
  • LLM学习记录DAY7
  • CSP-S 23
  • Recall
  • CSP-S 20
  • Flutter应用设置插件 - 轻松打开iOS和Android系统设置
  • CSP-S 22