Я пытаюсь получить аннотации проверки Java Bean для работы с переменными пути и параметрами запроса в Spring MVC-контроллере. (Окружающая среда: Spring Boot v1.3.5, Springxxx 4.2.6, язык программирования Kotlin 1.0.3)Проверка Java bean на Spring MVC Controller PathVariables
например.
@RequestMapping(value = "/{someId}" ...)
fun getSomething(**@SomeValidId** @PathVariable("someId") someId: String):...
Я добавил org.springframework.validation.beanvalidation.MethodValidationPostProcessor, как описано в https://raymondhlee.wordpress.com/2015/08/29/validating-spring-mvc-request-mapping-method-parameters/, а также добавили org.springframework.validation.beanvalidation.LocalValidatorFactoryBean как validatorFactory к вышесказанному.
@Configuration
...class .... {
...
@Bean
open fun localValidatorFactoryBean() = LocalValidatorFactoryBean()
@Bean
open fun methodValidationPostProcessor() : MethodValidationPostProcessor {
val methodValidationPostProcessor = MethodValidationPostProcessor()
methodValidationPostProcessor.setValidator(localValidatorFactoryBean())
return methodValidationPostProcessor
}
}
Но когда я аннотировать класс контроллера (или его интерфейс реализует) с org.springframework.validation.annotation.Validated как предложено выглядит как класс контроллера проксируется (который, кажется, как ожидалось - https://github.com/spring-projects/spring-security/issues/3215).
@Validated
interface SomeResource {
....
@RestController
@RequestMapping("/somepath")
class SomeController ......: SomeResource ....
Но это приводит к тому, что настройка отображения запроса mvc Spring игнорирует SomeController. Отладка через код среды Spring выглядела как org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods() просматривает список компонентов и пытается определить методы обработчика, но вышеупомянутый контроллер игнорируется внешними взглядами, поскольку он встречает proxy, и он не несет аннотации @Controller или @RequestMapping.
Кто-нибудь знает, чего не хватает? Кажется, есть много информации, которая, кажется, предполагает, что это должно быть возможно, но не может найти рабочий пример.