я правильно работаю Spring Controller, где у меня есть метод, отображенный в следующий образеSpring Controller: аннотации с комбинированным Spring аннотаций не работает
@RequestMapping(
value = "/users"
consumes = MimeTypeUtils.APPLICATION_JSON_VALUE,
produces = MimeTypeUtils.APPLICATION_JSON_VALUE,
method = RequestMethod.GET)
@ResponseBody
@ResponseStatus(HttpStatus.OK)
public UserResponse retrieveUsers() {
return new UserResponse();
}
@RequestMapping(
value = "/contracts"
consumes = MimeTypeUtils.APPLICATION_JSON_VALUE,
produces = MimeTypeUtils.APPLICATION_JSON_VALUE,
method = RequestMethod.GET)
@ResponseBody
@ResponseStatus(HttpStatus.OK)
public ContractResponse retrieveContracts() {
return new ContractResponse();
}
Это прекрасно работает, GET
запросов подаются как приняты, и в случае, например, POST
Я получаю надлежащий код состояния 405
.
Теперь я хочу представить пользовательскую комбинированную аннотацию, а не иметь одну и ту же группу аннотаций в каждом методе.
Мой аннотаций выглядит,
@RequestMapping(
consumes = MimeTypeUtils.APPLICATION_JSON_VALUE,
produces = MimeTypeUtils.APPLICATION_JSON_VALUE,
method = RequestMethod.GET)
@ResponseBody
@ResponseStatus(HttpStatus.OK)
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Get {}
Соответственно, изменить метод к
@Get
@RequestMapping(value = "/users")
public UserResponse retrieveUsers() {
return new UserResponse();
}
В этом случае я могу видеть, что любой тип запроса я посылаю /users
он подается правильно , Например, даже если я делаю POST
, я вижу ответ. Таким образом, @RequestMapping
не работает должным образом.
Что я здесь делаю неправильно? Возможно ли, чтобы контроллеры корректно работали с пользовательской комбинированной аннотацией?
Почему вы думаете, что ваш '@ Get' будет работать так? –
Почему бы и нет? На самом деле он работает, но не правильно. По крайней мере, он возвращает код состояния, например. Я предполагаю, что когда я помещаю '' '@RequestMapping (value ="/users ")' '', он фактически переопределяет отображение в моей пользовательской аннотации, так как другая аннотация в '' '@ Get''' фактически работает. – vtor
Вы пытались объединить @RequestMapping с одной аннотацией и посмотреть, устраняет ли это проблему? – gonzo