由于Spring2.5版本中有多种类型的控制器,当使用@controller时,Spring在内部实现哪种控制器? Spring如何确定要实施的控制器?
最佳答案
简短答案:在内部如何实现@Controller无关紧要。
长答案:
首先,您应该read the reference manual知道该API,该API主要基于注释。您没有AbstractController
,SimpleFormController
等。重要句子:
@Controller
注释指示特定的类服务
控制器的角色。 Spring不需要您扩展任何
控制器基类或引用Servlet API。
您必须放弃“Spring MVC 2.5思维”,仅定义用@Controller
注释的bean,例如
@Controller
public class ClinicController {
private final Clinic clinic;
@Autowired
public ClinicController(Clinic clinic) {
this.clinic = clinic;
}
@RequestMapping("/")
public void welcomeHandler() {
}
@RequestMapping("/vets")
public ModelMap vetsHandler() {
return new ModelMap(this.clinic.getVets());
}
}
并将它们用作普通bean(通过添加到servlet.xml
<bean class="com.example.ClinicController " />
中)。这样更容易。