java - 使用 @Autowired 注入(inject)同一类型的两个不同实例

标签 java spring autowired

我有以下类(class):

@Component
public class SearchComponent {
}

并且它被注入(inject)到其他类中的两个字段:

@Autowired
private SearchComponent errorSearch;

@Autowired
private SearchComponent successSearch;

默认行为是将相同的实例注入(inject)两个字段,这种情况正在发生,但我想要的是 errorSearchsuccessSeach 是不同的实例。

可以这样做吗?怎么办?

最佳答案

只需将 @Scope 注释添加到您的组件类即可:

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

这将避免您的 SearchComponent 类被用作单例(Spring bean 范围的默认值),而是为每个 Autowiring 变量。

看看:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-scopes

关于java - 使用 @Autowired 注入(inject)同一类型的两个不同实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25726444/

相关文章:

java - 如何在GWT客户端接口(interface)中调用JAX-WS?

java - @Bean 和 @Autowired 的区别

java - 使用 Spring Form 的动态列表项索引

java - 不太冗长@Bean

java - 可以使用 Java 打开 SSH 隧道吗?

java - 如何获取 JUNG 中的边缘标签和值?

java - Java中如何动态初始化数组?

json - Spring 3 MVC下的Jackson自定义序列化

java - Spring Autowire 在同一类中创建 Bean 结果为 :Requested bean is currently in creation Error*

java - 使用 @Component 给出属性名称/值