当前位置: 首页 > 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.zskr.cn/news/25694.html

相关文章:

  • 题解:AtCoder ARC208C Mod of XOR
  • 32-腾讯IM接入资料和定价
  • 题解:AtCoder ARC207A Affinity for Artifacts
  • [笔记]高斯消元
  • 02.Python百行代码实现抽奖系统
  • [SSH] scp:基于 SSH 的安全文件传输
  • 题解:P11662 [JOI 2025 Final] 方格染色 / Grid Coloring
  • CSP-S 32 多校5
  • CSP-S 29
  • ES原理、zookeeper、kafka
  • LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
  • 【HOWTO】购买和销售二手测试仪器指南
  • 小马算力致敬程序员
  • 蛋白表达标签:重组蛋白研究的精妙引擎
  • 106.腾讯地图位置服务再出错
  • Luogu P10034 「Cfz Round 3」Circle 题解 [ 蓝 ] [ 背包 DP ] [ 质数筛 ] [ 图论 ] [ 构造 ]
  • 20232410 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • SQLite简单使用
  • 心理咨询系统
  • Adaptive Learning Rate(自适应学习率) - -一叶知秋
  • 新学期每日总结(第12天)
  • 17 线程的创建
  • 2025.10.20总结 - A
  • 一般公共预算收入 + 全国政府性基金收入
  • 傻瓜式处理kauditd0病毒程序记录
  • 软件工程第二次团队作业
  • 好用的网址
  • 低代码赋能业务创新:打破数字鸿沟,释放业务潜能
  • 10/20/2025杂题 关于在线性时间内求解低次多项式的幂
  • 计算机毕业设计 基于EChants的海洋气象数据可视化平台设计与建立 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】