由于Spring2.5版本的控制器种类很多,那么在使用@controller的时候Spring内部实现了什么样的控制器呢?spring 如何决定实现什么控制器?
问问题
1945 次
1 回答
2
简短的回答: @Controller 如何在内部实现并不重要。
长答案:
首先您应该阅读参考手册以了解主要基于注释的 API。You have noAbstractController
等SimpleFormController
重要句子:
@Controller
注释表明一个特定的类充当控制器的角色。Spring 不要求您扩展任何控制器基类或引用 Servlet API。
您必须放弃“Spring MVC 2.5 思维”,只需定义用@Controller
like注释的 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 回答