我只是在使用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{}