spring - Spring中原型bean的@component和@scope之间的区别
问题描述
我正在使用 ServiceLocatorFactoryBean 来定位原型 bean。
无论何时,我都尝试通过定义 bean 来访问原型 bean
@Component(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
然后我得到
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'square' available.
但是,当我使用
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
那么我没有收到错误。在这种情况下,我得到了两个单独的豆子。
请帮助我理解为什么会这样?
解决方案
@Component(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
创建一个名为“prototype”的组件
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
是一个名称来自类的组件范围,因此您尝试找到一个名为“square”的组件,但您有一个名为“prototype”的组件。
推荐阅读
- css - 数组中元素的某些属性抛出“不可分配给DetailedHTMLProps”错误
- solr - 在独立模式下使用 Solr 包
- system-verilog - 为什么“Implication”和“if-else”约束显示不同的结果?
- html - 为什么我的 div 没有出现在我的图像上方?
- sql - 如何使用 SQL 将这四行转换为列
- c# - 在 C# (Webform) 中使用 Webview2 激活固定版本
- javascript - 带有标签的navigateByURL落在错误的位置-路由器出口内的Angular routerLink
- typescript - 如何从类型可能不存在的对象中访问值
- python - 请指出我是如何设法创建一个无限循环的
- swift - SwiftUI 计算器中的结果没有小数位