Spring Framework:可以在没有@Configuration的情况下创建相同@Component的两个bean吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Framework:可以在没有@Configuration的情况下创建相同@Component的两个bean吗?相关的知识,希望对你有一定的参考价值。

我只是在使用Spring Web Apps进行一些实验,以便更好地了解框架的工作原理。

我通常使用@Configuration类和@Bean方法创建更多相同类的bean,并使用@Component(及其派生@Controller,@ Service,@ Repository)让Spring只注入带注释类的单个bean。

我的问题是,是否可以在不使用@Configuration和@Bean的情况下创建相同@Component类的更多bean?

例如:

@Component
public class MyClass{}

并在两个不同的bean中注入此类,例如:

@Autowired MyClass beanA;
@Autowired MyClass beanB;

我已经尝试过这样做了。当然我有两个实例指向内存中完全相同的bean。

答案

在Spring中,默认情况下,除非另有说明,否则所有bean都具有singleton范围。因此,当您自动装配它时,您将获得相同的实例。

如果需要新实例,则需要使用@Scope指定

@Component
@Scope("prototype")
public class MyClass{}

以上是关于Spring Framework:可以在没有@Configuration的情况下创建相同@Component的两个bean吗?的主要内容,如果未能解决你的问题,请参考以下文章

idea阅读spring源码

idea阅读spring源码

在不使用 Maven 的情况下,我在哪里可以下载 Spring Framework jar?

@Bean 和 @Component 注释是不是相同但针对 Spring Framework 中的不同目标? [复制]

2021红帽杯 framework

Spring Framework 的理解