Est-il utile d'avoir une annotation (@Controller) Classe abstraite dans un conteneur piloté par Spring MVC, on voudrait essentiellement placer la plupart des méthodes réutilisables telles que les gestionnaires d'exception dans la classe abstraite et l'étendre avec la classe de base, afin de ne pas avoir à répéter le même code passe-partout. Par exemple.
Classe de contrôleur abstrait :
@Controller
abstract class AbstractExternalController {
@ExceptionHandler(NoSuchRequestHandlingMethodException.class)
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public @ResponseBody ResponseModel handleNotFoundException() {
final ResponseModel response = new ErrorModel();
response.setStatus("404");
response.setMessage("Resource Not Found");
return response;
}
...
}
Classe de contrôleur de base
@Controller
class ExternalControllerXXX extends AbstractExternalController {
...
}