在我的一个控制器方法中,我需要一个 spring 管理的 bean。由于我在任何其他方法中都不需要它,因此我认为没有必要对其进行自动装配。我已经读到应该避免使用它ApplicationContext.getBean()
,但是有没有其他选择?
如果 usinggetBean()
是正确的决定,我应该提到创建的 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;
}
}
我完全有可能不正确理解所有概念,或者我遗漏了一些东西。创建Task
bean 的最佳方法是什么?