在大多数情况下,我正在尝试尽可能多地对接口进行编码。但是我遇到了 Spring Controller 方法签名的问题。如果我真的使用模型的接口编写签名,我最终会得到以下异常:
BeanInstantiationException: Could not instantiate bean class[PageModel]: Specified class is an interface
当然,我知道它是一个接口,如果我将它更改为实际的实现类,它就可以正常工作。但是没有办法对接口进行编码吗?一个注解或告诉 Spring 要实例化哪个 bean 的东西?顺便说一句,我正在使用注释配置。
@RequestMapping("SpecificPageController")
public interface PageController {
@RequestMapping({"", "/load"})
ModelAndView load(@ModelAttribute("model") PageModel model);
}
@Controller
public class SpecificPageController implements PageController {
@Override
public ModelAndView load(final PageModel model) {
}
}
public interface PageModel {
... getters and setters...
}
public class ModelImpl implements PageModel {
... variables, getters, setters...
}