@Bean的方法中如何注入同一个@Configuration注解的类里的其他@Bean注解的bean
在看别人代码的时候,发现一个问题,简单了个例子
@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相关推荐
- 为什么线程通信的方法wait(), notify()和notifyAll()被定义在Object类里
关于wait().notify()的使用 public class WaitDemo { public static Object object = new Object(); ...
- [转载] Java中如何引用另一个类里的集合_Java工程师面试题整理
参考链接: 在Java中将预定义的类名用作类或变量名 花了一星期把学过的都整理一遍 尽量易懂,从基础到框架 最新版大厂面经汇总出炉,持续更新中 汇总完了上传网盘,设计到后端架构师的一切知识 如果没更新 ...
- 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类
依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...
- Servlet自动注入Spring容器中的Bean解决方法
Servlet自动注入Spring容器中的Bean解决方法 参考文章: (1)Servlet自动注入Spring容器中的Bean解决方法 (2)https://www.cnblogs.com/jank ...
- 惊呆了,Spring中竟然有12种定义bean的方法
前言 在庞大的 Java 技术体系中,Spring 有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜. 我们都知道 Spring 是创建和管理bean的工厂,它提供了多种方式定义 bean,能 ...
- Spring详解:WebServlet 中不能注入Bean对象
1. 前言 最近在研究Spring IOC.AOP以及和Mybatis整合的时候发现在Spring中使用Servlet+Service+Dao(Mybatis)的时候,发现在Controller层也就 ...
- java filter注入,Spring-boot中Filter注入bean
Spring-boot中Filter注入bean 在spring中使用Filter的方式不用再多说,但是通常情况下我们在使用filter中都可能会注入部分配置的类或者部分具有特殊功能的业务类. 在这种 ...
- SpringBoot 中@Autowired 注入失效原因及解决方法
SpringBoot 中@Autowired 注入失效原因及解决方法 1.原因分析 1.1 包没有被扫描到通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径 ...
- 为什么你写的拦截器中不能注入Java bean?
一.如何实现拦截器 在Spring Boot项目中,拦截器经常被用来做登陆验证,日志记录等操作.拦截器是Spring提供的,所以可以将拦截器注成bean,由IOC容器来管理.实现拦截器的方式很简单,主 ...
最新文章
- 【译】详解Asp.net MVC DropDownLists
- Mat与IplImage*类型间的转换
- tf.placeholder在测试时带来的坑
- mysql+url的配置参数详解_MySql链接url参数详解
- cos,sina,tan,cot
- poj 1751 Highways 最小生成树Kruskal(、Prim还没写
- 【函数计算月报】2018年10月刊
- String.Format用法
- java学习笔记七——继承
- 解决系统性能问题:线程增加导致堆增加
- dex2jar java 1.8_dex2jar最新版下载-dex2jar下载 2.0官方版--pc6下载站
- 分享几个免费的开源邮件服务器软件
- 110KV/35KV/10KV富源变电站一次系统设计
- win7计算机丢失msvcp110dll,win7系统出现msvcr110.dll丢失的详细解决步骤
- [ManjaroLinux]-虚拟机安装
- 献给在这个世界上摇摆不定的朋友们
- Android 应用提示Detected problems with API问题
- C#Form和Load和Shown
- STM32F4系列ADC最大转换速率及操作条件(以STM32F407ZGT6为例)
- Qt、X11、Qt/Embedded、Qt-X11