我有以下课程:
@Component
public class SearchComponent {
}
它被注入到其他类的两个字段中:
@Autowired
private SearchComponent errorSearch;
@Autowired
private SearchComponent successSearch;
默认行为是将相同的实例注入两个字段,并且这种情况正在发生,但是我想要的是
errorSearch
和successSeach
是不同的实例。有可能这样做吗?怎么做到呢?
最佳答案
只需在组件类中添加@Scope
批注:
@Component
@Scope("prototype")
public class SearchComponent {
}
这样可以避免将
SearchComponent
类用作单例(Spring bean范围的默认值),而是为每个Autowired
变量创建该类的新实例。看一下:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-scopes