Étendre annoté contrôleurs Spring MVC

je suis en train de travailler sur un petit projet et d'avoir le code existant qui je veux maintenir la propreté de mes modifications, et j'ai donc besoin de prolonger un annotée contrôleur, mais cela ne fonctionne pas:

package a;

@controller
public class BaseController {
    //Autowired fields

    protected x toExtend() {
         //do stuff
    }

    @RequestMapping(value = "/start")
    protected ModelAndView setupForm(...) {
        toExtend();
        //more stuff
    }
}



package b;

@controller
public class NewController extends BaseController {
    //Autowired fields

    @Override
    protected x toExtend() {
         super.toExtend();
         //new stuff
    }
}

Paquet a et b sont analysés pour les contrôleurs et je cannont changer cela. Je n'ai pas vraiment s'attendre à ce que cela fonctionne parce que le @RequestMapping(valeur = "/start") est redondante dans les deux contrôleurs. Et j'obtiens une exception à cause de cela.

Donc ma question est de savoir si, effectivement, il est possible d'étendre une annotation piloté par le contrôleur comme ça, sans modification de la BaseController?

Cela devrait fonctionner si vous supprimez @Controller d'annotation à partir de votre BaseController, sauf s'il y a une raison pour s'y maintenir.
Vous ne devriez pas avoir super.toExtend(); dans votre classe de base. Il n'y a pas de super méthode appelée toExtend() depuis la classe parent est Object.
oui vous avez raison c'est un copier coller d'erreur et je l'ai montée.

OriginalL'auteur Dennis Ich | 2013-04-09