Вопрос проверяет знание способов получения бинов в Spring.
Основные способы:
Через @Autowired (рекомендуется)
Через ApplicationContext.getBean()
Через реализацию ApplicationContextAware
1. Инъекция зависимостей (@Autowired):
@Service
public class MyService {
@Autowired
private OtherService otherService; // Spring внедрит бин
}2. Через ApplicationContext:
@Autowired
private ApplicationContext context;
public void method() {
MyService service = context.getBean(MyService.class);
}3. Через ApplicationContextAware:
@Component
public class MyBean implements ApplicationContextAware {
private ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext ctx) {
this.context = ctx;
}
}Рекомендации:
Предпочитать @Autowired прямому доступу
Избегать getBean() в application-коде