由于Spring2.5版本中有许多类型的控制器,当使用@controller时,Spring内部实现了哪种控制器? spring如何决定实现哪个控制器?
答案 0 :(得分:2)
简答:如何在内部实施@Controller并不重要。
答案很长:
首先,你应该read the reference manual知道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 " />
)。这种方式更容易。