由于Spring2.5版本中有多种类型的控制器,当使用@controller时,Spring在内部实现哪种控制器? Spring如何确定要实施的控制器?

最佳答案

简短答案:在内部如何实现@Controller无关紧要。

长答案:

首先,您应该read the reference manual知道该API,该API主要基于注释。您没有AbstractControllerSimpleFormController等。重要句子:

@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 " />中)。这样更容易。

09-04 14:57