在 Micronaut Kotlin 数据中使用 LocalDateTime Class DTO
Use LocalDateTime in Micronaut Kotlin Data Class DTO
我得到了这个 DTO:
@Introspected
data class SomeDTO(
val someLocalDateTime: LocalDateTime,
val someString: String
)
我想像这样在 Micronaut 控制器中使用它:
@Post
@Status(HttpStatus.CREATED)
fun somePostCall(
someDTO: SomeDTO,
authentication: Authentication
) {
this.someMethodCall(
someDTO.someString,
someDTO.someLocalDateTime,
authentication.name
)
}
我总是遇到这个错误:
Required argument [SomeDTO someDTO] not specified
我已经尝试使用@JsonFormat、@Format 和自定义 TypeConverter(String 到 LocalDateTime)来注释 DTO 中的值,但是 none 它们起作用了。
试试看 ;-)
data class SomeDTO(
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
val someLocalDateTime: LocalDateTime,
val someString: String
)
如果你只为一个 class 做的话。
否则你也可以在全球范围内这样做。
public class Application {
public static void main(String[] args) {
Micronaut.run(Application.class);
}
@Singleton
static class ObjectMapperBeanEventListener implements BeanCreatedEventListener<ObjectMapper> {
@Override
public ObjectMapper onCreated(BeanCreatedEvent<ObjectMapper> event) {
final ObjectMapper mapper = event.getBean();
mapper.registerModule(new JavaTimeModule());
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
return mapper;
}
}
}
我得到了这个 DTO:
@Introspected
data class SomeDTO(
val someLocalDateTime: LocalDateTime,
val someString: String
)
我想像这样在 Micronaut 控制器中使用它:
@Post
@Status(HttpStatus.CREATED)
fun somePostCall(
someDTO: SomeDTO,
authentication: Authentication
) {
this.someMethodCall(
someDTO.someString,
someDTO.someLocalDateTime,
authentication.name
)
}
我总是遇到这个错误:
Required argument [SomeDTO someDTO] not specified
我已经尝试使用@JsonFormat、@Format 和自定义 TypeConverter(String 到 LocalDateTime)来注释 DTO 中的值,但是 none 它们起作用了。
试试看 ;-)
data class SomeDTO(
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
val someLocalDateTime: LocalDateTime,
val someString: String
)
如果你只为一个 class 做的话。 否则你也可以在全球范围内这样做。
public class Application {
public static void main(String[] args) {
Micronaut.run(Application.class);
}
@Singleton
static class ObjectMapperBeanEventListener implements BeanCreatedEventListener<ObjectMapper> {
@Override
public ObjectMapper onCreated(BeanCreatedEvent<ObjectMapper> event) {
final ObjectMapper mapper = event.getBean();
mapper.registerModule(new JavaTimeModule());
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
return mapper;
}
}
}