Quiero poder definir una clase controladora principal que tendrá una asignación de "/ api", y luego extender ese controlador con mis diferentes implementaciones. Así ApiController tendrá:Comparta una ruta padre común cuando implemente los controladores Spring
@Controller
@RequestMapping("/api")
Por ejemplo, mi controlador usuario debe extenderse el controlador API de base y también añadir "/" usuarios de la vía, por lo que responderá a "/ API/usuarios" peticiones. Así UserController tendrá:
@Controller
@RequestMapping("/users")
pero ya que se extiende ApiController, responderá con eficacia a/API/usuarios.
Naturalmente puedo anteponer "/ api" a todos los controladores para que esto se logre sin la clase padre, pero prefiero hacerlo "de la manera correcta" si es posible, para poder definir mis implementaciones de API con un camino más limpio y más visible.
Intenté extender la clase base ApiController, pero esto no funciona, UserController aún responde a "/ users" e ignora la clase base "/ api".
Hola, lo siento, debo haber perdido tu respuesta de alguna manera. Lamentablemente, esto no hará lo que necesito, ya que quiero que las clases de implementación también tengan su propia asignación "base", por lo que ExtendedAbstractController debe tener una anotación @RequestMapping ("/ another") para que TODOS sus métodos tengan este prefijo. En su solución, solo los métodos con una anotación RequestMapping tendrán una anotación extendida. – TheZuck
@TheZuck sí, veo y sé que no es lo que necesita. : [Solo intenté ayudarte.] En este momento, Spring no admite la herencia de anotaciones como quieras ... Por cierto, puedes ir a Spring JIRA y votar por lo mismo o crear un nuevo problema con tus sugerencias. ;) – masted