Позвольте мне сначала объяснить настройки, которые у меня есть.Spring: как игнорировать RequestMappings, найденные в суперклассе контроллера?
Мое веб-приложение состоит из нескольких модулей, которые взаимосвязаны таким образом, что модуль 1 использует контроллеры/службы из модуля 2 для воссоздания общей функциональности и, следовательно, удаления избыточности кода. Поэтому просто добавьте два отдельных веб-приложения со всеми классами из 1 приложения, включенного в банку в другой.
Теперь вопрос, который я столкнулся из-за общих отображений URL в суб-модуля в соответствии со следующим сценарием:
контроллер А из модуля 1 расширяет контроллер B из модуля 2
package com.module1;
@RequestMapping("/client")
public class A extends B {
@RequestMapping("/hello")
public void helloWorldNew(...) {
...
}
}
package com.module2;
@RequestMapping("/user")
public class B {
@RequestMapping("/")
public void helloWorld(...) {
...
}
}
контроллер C от модуля 1 расширяет контроллер D от модуля 2
package com.module1;
@RequestMapping("/client")
public class C extends D {
@RequestMapping("/helloworld")
public void helloWorldNew(...) {
...
}
}
package com.module2;
@RequestMapping("/human")
public class D {
@RequestMapping("/")
public void helloWorld(...) {
...
}
}
Как вы можете видеть, с использованием модуля 2 отдельно URL, которые были отображены, являются /user/
& /client/
, что является законным во всех смыслах. Теперь, когда модуль 1 входит в изображение, как и ожидалось, Spring выбрасывает исключение, указав, что URL /client/
уже отображен через A.helloWorld()
и C.helloWorld()
сопоставления.
Есть ли способ обойти это? Могу ли я попросить Spring просто игнорировать методы RequestMappings на уровне метода, найденные в суперклассе? Или есть способ, с помощью которого я могу взломать Spring, чтобы игнорировать/переопределять сопоставления (как это делали запросы RequestMappings на корневом уровне)?
Любая помощь будет принята с благодарностью.
Спасибо,
SUMIT
Благодаря Biju для ответа. Оказывается, мне нужны URL-адреса, которые отображаются в суперклассах, а также в модуле 1, и это не оставляет мне выбора, кроме как изменять URL-адреса !!! Тем не менее, отмечая ваш комментарий как ответ на правильность. – Sumit