Можете ли вы рассмотреть следующие моменты в вашем проекте:
Проверьте, есть ли у вас аннотации Spring и Swagger в вашем классе Controller.
@RestController
@RequestMapping(value = "/order")
@ApiResponses({
@ApiResponse(code = 400, message = "Bad Request"),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 415, message = "Unsupported Media Type"),
@ApiResponse(code = 422, message = "Unprocessable Entity")
})
public class OrderController {
// Controller class code.
}
Затем проверьте, есть ли у вашей конечной точки аннотации:
@PostMapping(
value = "/v1/new",
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE
)
@ApiOperation(
value = "Create new Order.",
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE,
)
public ResponseEntity newOrder(
@RequestHeader(name = "Content-type", defaultValue = "application/json;charset=UTF-8")
@NonNull final String contentType,
@RequestBody @NotNull @Valid OrderDTO orderDTO) {
// Endpoint code.
}
Конфигурация Swagger with
SpringBoot:
[112 ]
Конфигурация Swagger without
SpringBoot:
Добавьте: @Configuration
, extends WebMvcConfigurationSupport
и переопределите метод addResourceHandlers
в своем классе SwaggerConfig.
@Configuration
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurationSupport {
@Bean
public Docket api() {
//...
}
private ApiInfo getApiInfo() {
return new ApiInfo(
//...
);
}
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
Вы можете перевыделение к различным предопределенным размерам. Например, когда буфер полон, дважды его размер.
Используя связанный список хорошая идея, но данные не являются текущими (Вы не можете передать целую структуру printf
, например), и индексация берет больше вычислений (O (N)). Главное преимущество состоит в том, что добавление представляет в виде строки (с обоих концов) O (1).
Я думаю, что Вы ищете Рассеяние - Собирают ввод-вывод, функция, которую Вы искали бы, будет readv ().
При использовании перевыделения (), не добавляйте постоянную сумму пространства на каждом перевыделении, потому что затем стоимость создания строки длины n будет O (n^2) (перевыделение, вероятно, выделит новый регион и скопирует данные там, т.е. его сложность не является постоянной, но O (n)). Самый легкий способ сделать это состоит в том, чтобы удвоить размер буфера на каждом перевыделении, затем амортизируемая стоимость все еще будет O (n).
Используя 32-байтовые средства блоков, что отношение между данными и наверху ужасно - у Вас есть свой указатель в связанном списке и по крайней мере (вероятно, намного больше) то же снова от средства выделения памяти. Я настоятельно рекомендовал бы выделить намного больший блок памяти и вырастил бы ее экспоненциально, чтобы соответствовать и видеть, вызывает ли это проблемы. Только если Вы встречаетесь, проблемы были бы я идти путем связанного списка.