码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spring-@Component和@Configuration的区别


    前言

    在Spring框架中,@Configuration和@Component注解都是用于组件扫描和管理Bean的生命周期,但它们有着不同的用途和应用场景

    @Component 注解

    @Component是一个通用的 stereotype 注解,表明一个Java类为Spring框架中的一个Bean组件。Spring会自动扫描标记了此注解的类,并将它们注册为Spring容器中的Bean。通常用于服务、数据访问对象(DAO)、控制器等组件

    @Component
    public class UserService {
        // ... 实现代码
    }
    

    @Configuration 注解

    @Configuration注解用于指示该类是一个配置类,等价于XML配置文件中的 < beans >标签。配置类中可以包含一个或多个@Bean方法,这些方法用来声明如何创建和初始化具体的Bean实例。配置类本身也被Spring管理,并且可以注入其他的Bean。@Configuration类通常用于定义应用的基础设施或依赖关系。

    // 代码示例
    @Configuration
    public class AppConfig {
        
        @Bean
        public UserService userService() {
            return new UserService();
        }
    }
    
    
    主要区别

    1、目的不同:@Component用于标记普通的业务组件,而@Configuration用于定义配置类,即包含Bean定义的类。
    2、功能差异:@Configuration类中的@Bean方法可以定义Bean的创建逻辑,支持依赖注入等高级特性,而@Component类通常是被其他配置或@Configuration类通过@Autowired等方式注入使用。
    3、生命周期和作用域:@Configuration类中的Bean定义通常具有单例作用域,且配置类自身也是Spring容器管理的一个Bean,可以被其他配置类引用。而@Component的实例化和作用域可以通过Spring的其他注解(如@Scope)进一步控制。
    4、使用场景:@Component适用于大多数业务逻辑组件,而@Configuration则用于集中管理和配置应用程序的Bean,如数据库连接池配置、消息队列配置等基础设施设置

  • 相关阅读:
    Elasticsearch 对索引中的两个字段是否相等进行筛选
    会议OA项目(五)---- 会议通知、反馈详情
    使用VBA将多个txt批量转换成excel表并保存
    Git安装使用gitee(码云)记录2208201631
    关于GBDT算法、XGBoost算法的基本原理概述
    手写RPC框架--7.封装响应
    Haproxy搭建Web集群
    终端业务下滑,ICT基础设施业务保持稳定增长,3016亿符合预期
    java数组应用(栈和队列以及酒店模拟)
    物联网AI MicroPython学习之语法 GPIO输入输出模块
  • 原文地址:https://blog.csdn.net/weixin_43834477/article/details/140105927
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号