码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 当配置类用@Component不断调用@Bean注解的方法,会new出新对象,但是并不会覆盖一开始注入spring容器中的那个对象


    1.一个User类,有一个有参构造,没有@Component注解
    在这里插入图片描述2.一个UserConfiguration类,有一个@Bean,产生一个User对象userBean,重点注意:这里类上只用@Component还是只用@Configuration还是两个注解同时用是有区别的,在后面介绍
    在这里插入图片描述

    3.一个Start类,自动按类型注入一个User对象userBean,一个UserConfiguration 对象userConfiguration ,并且不断打印userBean信息,不断调用userBean()方法
    在这里插入图片描述
    这里用的@Autowired按类型注入,其实就算@Resource(name = “userBean”)或者@Autowired@Qualifier(“userBean”)按名字注入也不影响结果。

    4.测试结果①:UserConfiguration类上只用@Component,
    首先在UserConfiguration类中会执行userBean()方法,new一个user并且作为userBean注入spring容器,并且Start中自动注入的User就是这个userBean一直没有变化。Start中不断调用调用@Bean注解userBean()方法,会new出新User对象,但是并不会覆盖一开始注入spring容器中的那个对象即Start中通过@Autowired注入的userBean不会变化。(spring同一个类会可能有多个对象注入,但是@Bean应该是按名称注入容器)
    在这里插入图片描述
    5.测试结果二:UserConfiguration类上只用@Configuration或者同时用@Component和@Configuration,

    首先在UserConfiguration类中会执行userBean()方法,new一个user并且作为userBean注入spring容器,并且Start中自动注入的User就是这个userBean一直没有变化,但是Start中不断调用userBean()方法并不会执行,很奇怪,为什么呢? 有可能是@Configuration注解的类中的Bbean只会自己执行一次,别人调用并不会执行。
    在这里插入图片描述
    6.经过测试@Configuration注解的类确实已经注入到spring中了,但是@Configuration注解的类中的@Bean只会自己执行一次,别人调用并不会执行。有可能是@Configuration注解的类中的@Bean方法被拦截了。
    在这里插入图片描述
    7.Start类中调用UserConfiguration类中的普通方法callUserBean(),调用@Bean方法userBean(),callUserBean()能不断执行,也能在通过userBean()获得注入spring中的user对象,但是userBean()并不会多次执行,也是只会最开始自动执行一次。如果是其它类中想获得user对象就直接@Autowired private User userBean;就好了。
    在这里插入图片描述

    Spring @Configuration 和 @Component 区别(精简汇总版)

  • 相关阅读:
    CentOS7+Linux version 3.10.0-693.2.2.el7.x86_64 上安装docker
    卷积 、 图像去噪、边缘提取
    基于PyQt5和PSoC6的多功能平衡车设计
    漏洞检测与EPSS评分
    jsp交通管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
    【总结】云集各大高校 — 数学建模经验分享(万字总结)
    基于粒子群算法优化BP神经网络的PID控制算法(Matlab代码实现)
    I.MX RT1176笔记(9)-- 程序异常追踪(CmBacktrace 和 segger rtt)
    计算机毕业设计django基于python药房药品管理系统(源码+系统+mysql数据库+Lw文档)
    我不想再传递 nameof 了
  • 原文地址:https://blog.csdn.net/xiaoqj123456789/article/details/126492415
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号