为什么 Spring 框架不允许自动装配原始类型?
Why Spring framework does not allow autowire primitive types?
根据 spring 文档,它已被提及
it is by design
我想了解这个设计背后的可能思路。
自动装配不能用于注入原始值和字符串值。它仅供参考。注入的引用需要有一个 class 对象。您可以使用包装器。即整数、布尔值。
对于原语你可以这样做spring-bean-primitive-properties-when-using-component-and-autowired
这是因为 Autowiring
只是在 ApplicationContext 中引用现有 bean 的替代方法。它需要一个 bean 或一个 class,原语不是 class,它与 Object 不同。这就是为什么你不能 Autowire
原始类型。您可以使用原始类型的包装器 classes,例如 Integer、Double 等...以便能够对此类类型使用自动装配,因为您现在指的是 class.
您可以自动装配包装器,而不是自动装配原始类型 class
对于 int
类型 --> 使用 Integer
。
Autowiring 只是在 ApplicationContext 中引用 现有 beans 的替代方法。
基元不是应用程序上下文中存在的 bean
它需要 instance/bean 而不是原始数据。
根据 spring 文档,它已被提及
it is by design
我想了解这个设计背后的可能思路。
自动装配不能用于注入原始值和字符串值。它仅供参考。注入的引用需要有一个 class 对象。您可以使用包装器。即整数、布尔值。
对于原语你可以这样做spring-bean-primitive-properties-when-using-component-and-autowired
这是因为 Autowiring
只是在 ApplicationContext 中引用现有 bean 的替代方法。它需要一个 bean 或一个 class,原语不是 class,它与 Object 不同。这就是为什么你不能 Autowire
原始类型。您可以使用原始类型的包装器 classes,例如 Integer、Double 等...以便能够对此类类型使用自动装配,因为您现在指的是 class.
您可以自动装配包装器,而不是自动装配原始类型 class
对于 int
类型 --> 使用 Integer
。
Autowiring 只是在 ApplicationContext 中引用 现有 beans 的替代方法。
基元不是应用程序上下文中存在的 bean
它需要 instance/bean 而不是原始数据。