ほとんどの場合、私は可能な限りインターフェイスにコーディングしようとしています。しかし、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...
}