Autowired ApplicationContext не имеет метода getBean

Я автоматически подключил ApplicationContext в моем классе RestController, так как мне нужно было создать прототип bean-компонента для каждого полученного запроса.

Чтобы создать bean-компонент, я попробовал context.getBean (xx), но в контексте нет метода getBean () в списке. Есть ли способ получить компоненты прототипа класса в моем классе RestController. Я запускаю это приложение как Spring boot.

пример кода здесь:

@RestController
@RequestMapping("/Restcompare")
public class CompareService {


    @Autowired
    private ApplicationContext context;

    private Comparator comparator;

    @RequestMapping("/compare")
    public String vcompare(@RequestParam(value="pre", defaultValue="") 
    String pre, @RequestParam(value="post", defaultValue="") String post){


        comparator = context.getBean(Comparator.class);  //Error here
    }
}

Обновление:

Решение. Каким-то образом IDE импортировала другой ApplicationContext, отличный от Spring framework. Исправление импорта в org.springframework.context.ApplicationContext устранило проблему.


person Bharath Reddy    schedule 26.10.2017    source источник
comment
Какую среду IDE вы использовали / использовали? Просто любопытно.   -  person Pytry    schedule 26.10.2017
comment
Набор инструментов Spring!   -  person Bharath Reddy    schedule 27.10.2017


Ответы (2)


Каким-то образом IDE импортировала другой ApplicationContext, отличный от среды Spring. Исправление импорта в org.springframework.context.ApplicationContext устранило проблему.

person Bharath Reddy    schedule 26.10.2017

Вы можете ввести свой bean-компонент с помощью @Autowired, например:

@Autowired
private Comparator comparator;
person Felipe Mariano    schedule 26.10.2017
comment
Это не сработает, поскольку компонент компаратора в классе compareService создается только один раз. Правильный способ - создать прототип компонента, используя только контекст. Проблема, с которой я столкнулся, заключалась в том, что spring импортировал другой ApplicationContext, отличный от spring. Исправление импорта в org.springframework.context.ApplicationContext устранило проблему. Спасибо за ответ. - person Bharath Reddy; 26.10.2017
comment
Нет проблем! - person Felipe Mariano; 26.10.2017