spring: параметр по умолчанию в pojo контроллера на основе другого сервиса?

#java #spring #spring-boot #spring-mvc #kotlin

#java — язык #spring #spring-boot #spring-mvc #kotlin #java

Вопрос:

у меня есть pojo

 data class MyRequest(
        @field:DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
        val start: LocalDateTime,
        // ... other fields
)
  

и я хочу использовать этот pojo в контроллере:

 @RestController
class MyController {

    @GetMapping("/api/v1/xxx")
    fun get(request: MyRequest) = ...
}
  

и теперь я хотел бы сделать start параметр необязательным и, если он отсутствует, установить его в текущее значение myFun() из:

 @Service
class MyService {
  fun myFun(): LocalDateTime = ...
}
  

поддерживает ли spring это или я должен сделать это вручную, изменив поле pojo на разрешающее null ?

Комментарии:

1. Я предполагаю , что вы пытались изменить строку на val start: LocalDateTime = myService.myFun() ? Проблема в том, что у вас нет статической ссылки на myFun() ?

2. @MatiasFuentes myService является компонентом spring. итак, у меня нет статической ссылки на сам компонент. также я бы предпочел избегать статических ссылок, поскольку таким образом это менее проверяемо