3

由于Spring2.5版本的控制器种类很多,那么在使用@controller的时候Spring内部实现了什么样的控制器呢?spring 如何决定实现什么控制器?

4

1 回答 1

2

简短的回答: @Controller 如何在内部实现并不重要。

长答案:

首先您应该阅读参考手册以了解主要基于注释的 API。You have noAbstractControllerSimpleFormController重要句子:

@Controller注释表明一个特定的类充当控制器的角色。Spring 不要求您扩展任何控制器基类或引用 Servlet API。

您必须放弃“Spring MVC 2.5 思维”,只需定义用@Controllerlike注释的 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 " />)。这种方式要容易得多。

于 2012-09-12T13:59:02.590 回答