Мне нужен управляемый bean-компонент spring в одном из моих методов контроллера. Поскольку мне это не нужно ни в каком другом методе, я думаю, что нет необходимости его автопроводить. Я уже читал, что следует избегать использования ApplicationContext.getBean()
, но есть ли альтернатива?
Если использование getBean()
является правильным решением, я должен упомянуть, что созданный bean-компонент имеет автоматически связанные атрибуты, и кажется, что они не устанавливаются при его создании с помощью getBeans()
.
Код
@Controller
@RequestMapping("/controller*")
public class Controller {
@RequestMapping
public String get(Model model){
Task task = ApplicationContextHolder.getBean("Task");
task.getA();
return "index";
}
}
public class Task {
@Autowired(required=true)
private Service service;
public List<Object> getA() {
List<Object> list = service.findWhatever(); //service is null
return list;
}
}
Вполне возможно, что я неправильно понимаю все концепции или что-то упускаю. Как лучше всего создать bean-компонент Task
?