在看别人代码的时候,发现一个问题,简单了个例子

@Configurationpublic class MyConfig{@Beanpublic Test1 test1() {return new Test1();}@Beanpublic Test2 test2() {Test2 test2 = new Test2();test2.setTest1(test1())return new Test2();}}

test2()方法上面的@Bean注解,表示将会创建一个名为test2的bean对象交给spring管理,该对象有一个属性,是通过test1()方法创建的,然后我就不明白了,test1()方法也被@Bean注解,创建一个名为test1的bean对象交给spring管理,那么这里再次调用test1()方法会不会有问题,思考的时候,灵光一现,spring通过@Bean创建的bean对象,默认是单例。Spring初始化的时候,通过test1()创建了一个单例对象,以后无论调用test1()方法多少次,创建的都是spring初始化时创建的对象。

但是如果在第一个Bean注解下通过@Scope注解,更改了作用域,那么test2方法中再调用test1方法,将会创建一个新的bean对象

@Scope(BeanDefinition.SCOPE_PROTOTYPE)

--------------------------------分割线-------------------------------

springboot的@Bean注解配置一个bean,方法的形式参数是另外一个bean的时(依赖注入)

https://blog.csdn.net/lzx1991610/article/details/100743003

@Bean的方法中如何注入同一个@Configuration注解的类里的其他@Bean注解的bean相关推荐

  1. 为什么线程通信的方法wait(), notify()和notifyAll()被定义在Object类里

    关于wait().notify()的使用 public class WaitDemo {     public static Object object = new Object();        ...

  2. [转载] Java中如何引用另一个类里的集合_Java工程师面试题整理

    参考链接: 在Java中将预定义的类名用作类或变量名 花了一星期把学过的都整理一遍 尽量易懂,从基础到框架 最新版大厂面经汇总出炉,持续更新中 汇总完了上传网盘,设计到后端架构师的一切知识 如果没更新 ...

  3. 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类

    依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...

  4. Servlet自动注入Spring容器中的Bean解决方法

    Servlet自动注入Spring容器中的Bean解决方法 参考文章: (1)Servlet自动注入Spring容器中的Bean解决方法 (2)https://www.cnblogs.com/jank ...

  5. 惊呆了,Spring中竟然有12种定义bean的方法

    前言 在庞大的 Java 技术体系中,Spring 有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜. 我们都知道 Spring 是创建和管理bean的工厂,它提供了多种方式定义 bean,能 ...

  6. Spring详解:WebServlet 中不能注入Bean对象

    1. 前言 最近在研究Spring IOC.AOP以及和Mybatis整合的时候发现在Spring中使用Servlet+Service+Dao(Mybatis)的时候,发现在Controller层也就 ...

  7. java filter注入,Spring-boot中Filter注入bean

    Spring-boot中Filter注入bean 在spring中使用Filter的方式不用再多说,但是通常情况下我们在使用filter中都可能会注入部分配置的类或者部分具有特殊功能的业务类. 在这种 ...

  8. SpringBoot 中@Autowired 注入失效原因及解决方法

    SpringBoot 中@Autowired 注入失效原因及解决方法 1.原因分析 1.1 包没有被扫描到通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径 ...

  9. 为什么你写的拦截器中不能注入Java bean?

    一.如何实现拦截器 在Spring Boot项目中,拦截器经常被用来做登陆验证,日志记录等操作.拦截器是Spring提供的,所以可以将拦截器注成bean,由IOC容器来管理.实现拦截器的方式很简单,主 ...

最新文章

  1. 【译】详解Asp.net MVC DropDownLists
  2. Mat与IplImage*类型间的转换
  3. tf.placeholder在测试时带来的坑
  4. mysql+url的配置参数详解_MySql链接url参数详解
  5. cos,sina,tan,cot
  6. poj 1751 Highways 最小生成树Kruskal(、Prim还没写
  7. 【函数计算月报】2018年10月刊
  8. String.Format用法
  9. java学习笔记七——继承
  10. 解决系统性能问题:线程增加导致堆增加
  11. dex2jar java 1.8_dex2jar最新版下载-dex2jar下载 2.0官方版--pc6下载站
  12. 分享几个免费的开源邮件服务器软件
  13. 110KV/35KV/10KV富源变电站一次系统设计
  14. win7计算机丢失msvcp110dll,win7系统出现msvcr110.dll丢失的详细解决步骤
  15. [ManjaroLinux]-虚拟机安装
  16. 献给在这个世界上摇摆不定的朋友们
  17. Android 应用提示Detected problems with API问题
  18. C#Form和Load和Shown
  19. STM32F4系列ADC最大转换速率及操作条件(以STM32F407ZGT6为例)
  20. Qt、X11、Qt/Embedded、Qt-X11

热门文章

  1. oracle 高级队列Advanced Queuing(AQ) 通过消息通知自动异步出列
  2. 电路分析第二章 戴维南、诺顿以及置换定理
  3. 台式计算机本地连接,台式机没有本地连接的解决方法
  4. Google Guava Cache--localcache本地缓存实例
  5. Vue Component标签
  6. 缺陷可以不予修复的情况
  7. 关于setTimeout函数中的this指向问题
  8. 机器学习之贝叶斯网络(概率流动的影响性、有效迹(active--trail)、网络的构建)
  9. gateone安装使用
  10. Web 3D引擎闲谈