У меня есть следующий класс:
@Component
public class SearchComponent {
}
И он вводится в два поля в другом классе:
@Autowired
private SearchComponent errorSearch;
@Autowired
private SearchComponent successSearch;
Поведение по умолчанию заключается в том, чтобы вводить один и тот же экземпляр в оба поля, и это происходит, но я хочу, чтобы errorSearch
и successSeach
были разными экземплярами.
Это можно сделать? Как это можно сделать?
Просто добавьте аннотацию @Scope
к вашему классу компонентов:
@Component
@Scope("prototype")
public class SearchComponent {
}
Это позволит избежать SearchComponent
класса SearchComponent
в качестве одноэлементного (значение по умолчанию для области Spring bean), вместо этого создается новый экземпляр класса для каждой переменной Autowired
.
@Bean
s или<bean>
s.