java - 当我们使用 getBean 方法创建原型 bean 时,是否会创建新的 bean 属性实例(单例)?
问题描述
假设有两个类
@Scope("prototype")
Class A{
@Autowired
private B b;
}
@Scope("singleton")
Class B {
}
并调用 ApplicationContext 的以下方法。
context.getBean("A")
将导致创建新的A
bean,但它也会创建一个新的B
bean并注入它或使用现有的B
bean。
解决方案
答案是不。因为B
是单例范围的。bean的生命周期B
总是每个容器一次,无论有多少A
's 引用它。
推荐阅读
- asp.net-mvc - 如何在视图中使用 if 语句 (@doc.value == "N/A" )
- xml - 使用 XSLT 将 XML 文件拆分为多个文件
- git - 2+ 用户如何从 sudo 帐户使用 git
- scala - NoSuchMethodError: java.lang.String.lines()Ljava/util/stream/Stream; 尝试使用 ScalaMock 运行测试时
- c# - WebApplicationFactory 在另一个项目目录中使用 Startup.Cs
- html - 更改按钮高度时如何使文本始终保持水平居中
- c# - 跟踪静态字典中的任务并等待在单独的请求线程中启动的任务是安全的吗?
- c++ - WSL 中的 g++ 创建了一个不可删除的文件
- angular - 如何使用构造函数将 Asp.Net Core DateTime 转换为 Angular Date?
- jenkins - Post-build Actions 部分看不到注入的环境变量