Spring-boot读书笔记一@Component.vs.@bean

news/2026/1/15 18:14:59/文章来源:https://www.cnblogs.com/KKBLN/p/19422111

Component vs Bean in Spring Boot

Both are Spring-managed objects, but they differ in how and where they're defined.

@Component
Class-level annotation - marks the class itself as a Spring component

@Component
public class UserService {public void saveUser(String name) {// business logic}
}

Characteristics:

  • Applied directly to the class
  • Spring auto-detects during component scanning
  • One instance per class (unless specified otherwise)
  • Class controls its own creation

@Bean
Method-level annotation - creates beans through factory methods in @Configuration classes

@Configuration
public class AppConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}@Beanpublic DatabaseService databaseService() {return new DatabaseService("localhost", 5432);}
}

Characteristics:

  • Applied to methods in @Configuration classes
  • You control object creation and configuration
  • Can create multiple beans from same class
  • External configuration of third-party classes

Key Differences
@Component @Bean
Class-level Method-level
Auto-detected Explicitly defined
Own classes Any classes (including third-party)
Simple creation Custom creation logic
One bean per class Multiple beans possible

When to Use Each

  • @Component for:

    1. Your own business classes
    2. Services, repositories, controllers
    3. Simple object creation
  • @Bean for:

    1. Third-party library objects
    2. Complex object configuration
    3. Conditional bean creation
    4. Multiple instances of same class

Both @Component and @Bean result in Spring-managed objects, but @Bean gives more control over the creation process.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1098557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Miniconda环境下PyTorch模型降级回滚方案

Miniconda环境下PyTorch模型降级回滚方案 在AI工程实践中,一个看似简单的“升级”操作,往往可能引发连锁反应——某天你刚把PyTorch从1.12升到2.0,结果上周还能跑通的推理脚本突然报错: RuntimeError: storage has wrong size或者…

GPU算力资源如何高效利用?Miniconda-Python3.10环境调优实战

GPU算力资源如何高效利用?Miniconda-Python3.10环境调优实战 在AI模型训练的日常中,你是否经历过这样的场景:刚克隆完一篇顶会论文的代码仓库,满怀期待地运行pip install -r requirements.txt,结果却因版本冲突报错&am…

SSH密钥认证配置步骤:安全连接运行Miniconda镜像的远程主机

SSH密钥认证连接运行Miniconda-Python3.10镜像的远程主机 在现代AI与数据科学开发中,越来越多的计算任务被迁移到远程服务器或云主机上执行。无论是训练大型语言模型、处理海量数据集,还是部署交互式Jupyter环境,开发者都面临一个核心问题&am…

【2025最新】基于SpringBoot+Vue的线上学习资源智能推荐系统管理系统源码+MyBatis+MySQL

摘要 随着信息技术的快速发展和在线教育需求的持续增长,个性化学习资源的智能推荐成为教育领域的重要研究方向。传统的在线学习平台往往缺乏对用户学习行为和偏好的深度分析,导致资源推荐效率低下,用户体验不佳。为了解决这一问题&#xff0c…

Miniconda-Python3.10镜像如何支持多租户GPU算力售卖

Miniconda-Python3.10镜像如何支持多租户GPU算力售卖 在AI开发资源日益集中化、服务化的今天,高校实验室、初创企业乃至大型云平台都面临一个共同挑战:如何高效、安全地将昂贵的GPU算力分发给多个独立用户,同时确保环境一致、资源可控、成本可…

Spring-boot读书笔记一Introduction of logging framework of Log4j2

Log4j2 is a powerful and flexible logging framework for Java applications. Heres an overview of its key components and features: Core ComponentsLogger - The main interface for logging messages. Loggers…

使用 K-Means 聚类进行图像分割

原文:towardsdatascience.com/image-segmentation-with-k-means-clustering-1bc53601f033 你可以在这里查看这个项目的笔记本 here https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/dd72df59bc4201bdd2fffd5cf9c528df.pnghttps…

JLink驱动安装日志分析方法:快速定位错误原因

JLink驱动装不上?别急着重插USB,先看日志! 你有没有遇到过这样的场景: 新电脑刚装好Keil,信心满满地把J-Link往USB口一插——结果设备管理器里冒出个“未知设备”; 或者团队同事说“我这边没问题”&…

IAR安装教程(STM32):手把手带你完成环境搭建

手把手教你安装IAR并搭建STM32开发环境:从零开始,一次成功 你是不是也曾在搜索引擎里反复输入“ iar安装教程 stm32 ”,却总被一堆过时信息、断链下载和莫名其妙的授权错误搞得焦头烂额?别急——这篇文章就是为你写的。 作为一…

【2025最新】基于SpringBoot+Vue的乡村养老服务管理系统管理系统源码+MyBatis+MySQL

摘要 随着我国人口老龄化问题日益突出,乡村地区的养老服务需求快速增长,但传统养老服务模式存在信息化程度低、管理效率不足等问题。乡村养老服务管理系统旨在通过数字化手段优化资源配置,提升服务效率,满足老年人的多样化需求。该…

Miniconda-Python3.10镜像如何实现按需付费的Token模式

Miniconda-Python3.10镜像如何实现按需付费的Token模式 在AI训练任务日益频繁、科研协作愈发紧密的今天,一个常见的痛点反复浮现:为什么我在本地跑通的代码,到了同事或云端环境就“依赖报错”?更进一步的问题是——即使解决了环境…

STM32 USART波特率超详细版配置流程说明

搞定STM32串口通信,从波特率配置开始:不只是“设个数”,而是理解整个时钟链路你有没有遇到过这种情况?STM32程序烧进去后,串口助手打开却只看到一堆乱码——不是字符错位,就是满屏“烫烫烫”。第一反应是查…

cc2530串口通信项目应用:IAR平台操作指南

CC2530串口通信实战:从IAR工程搭建到UART调试全解析你有没有遇到过这样的情况?代码烧进去了,板子也上电了,但串口助手就是收不到一个字节的数据。LED不闪,波形没有,程序仿佛“静音”了一般——这是每一个嵌…

CCS20冗余架构设计原理:图解说明

深入理解CCS20冗余架构:从原理到实战的全链路解析在轨道交通信号系统、智能电网调度中心或核电站控制平台中,你是否曾思考过——当主控制器突然宕机时,系统如何做到“毫无察觉”地继续运行?这不是魔法,而是现代高可用控…

Jupyter内核配置错误修复:确保Miniconda-Python3.10正确注册Python环境

Jupyter内核配置错误修复:确保Miniconda-Python3.10正确注册Python环境 在数据科学和AI开发中,一个看似微小的环境配置问题,常常会拖慢整个项目进度。你是否曾遇到这样的情况:好不容易搭建好基于 Python 3.10 的 Miniconda 环境&a…

使用Miniconda为大模型推理服务配置负载均衡

使用Miniconda为大模型推理服务配置负载均衡 在构建高并发、多节点的大模型推理系统时,一个常被低估但至关重要的环节是——环境一致性。你有没有遇到过这样的场景:同一个模型,在开发机上运行正常,部署到生产集群后却频繁报错&…

Miniconda-Python3.10镜像在儿童教育大模型中的适配优化

Miniconda-Python3.10镜像在儿童教育大模型中的适配优化 在当今智能教育快速演进的背景下,越来越多的AI技术被引入课堂——从自动作文批改到语音纠音辅导,再到个性化学习路径推荐。这些功能背后往往依赖复杂的深度学习模型,而支撑它们稳定运…

Java Web 箱包存储系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着电子商务的快速发展,箱包行业对信息化管理的需求日益增长。传统的手工记录和简单的电子表格管理方式已无法满足企业对库存管理、订单处理和数据分析的精准化需求。箱包存储系统通过信息化手段实现商品分类、库存监控、订单管理和用户交互等功能&#xff0c…

Miniconda-Python3.10环境下安装DGL进行图神经网络研究

Miniconda-Python3.10环境下安装DGL进行图神经网络研究 在当今AI研究中,图神经网络(GNN)正迅速成为处理复杂关系数据的核心工具。从社交网络中的用户行为建模,到药物分子结构预测,再到知识图谱推理,越来越多…

从Anaconda迁移到Miniconda-Python3.10:节省70%磁盘空间的方法

从 Anaconda 迁移到 Miniconda-Python3.10:如何节省 70% 磁盘空间 在 GPU 云服务器上启动一个数据科学环境时,你是否曾因等待 Anaconda 加载而浪费了整整十分钟?或者在 CI/CD 流水线中,构建镜像的时间一半都花在了解压和安装冗余包…