Переопределение RequestMapping на контроллере SpringMVC
просматривая источник для наших приложений, я нашел общий контроллер Spring MVC, который отображает ключ и значения конфигурации, скопированные и вставленные несколько раз. Определения классов точно такие же, за исключением значения RequestMapping, так как каждое приложение хочет, чтобы эта страница была доступна по разным URL-адресам.
Я хочу переместить этот контроллер в общую библиотеку и предоставить значение RequestMapping по умолчанию.
@Controller
@RequestMapping (value="/property")
public class CommonPropertyController {
....
}
Как бы каждый применение переопределить это значение, если они хотят использовать свой собственный шаблон url?
1 ответов
глядя на исходный код, я получил представление о том, как это сделать, не возвращаясь к определению обработчика manual (pre-annotation) (что также является способом реализации того, что вам нужно).
весной позволяет использовать заполнитель собственность configurers в @RequestMapping
значения. Таким образом, можно использовать этот факт и определить @RequestMapping
как:
@Controller
@RequestMapping("${routing.property.path}")
public class CommonPropertyController {
....
}
затем вы можете просто определить PropertySourcesPlaceholderConfigurer
с правильными свойствами в контексте вашего приложения, и вы хорошо идти.
обновление вы также можете указать значение по умолчанию, используя заполнитель свойства, если вы хотите иметь резервное сопоставление в случае, если свойство не speciefied:
@RequestMapping("${routing.property.path:/property}")