❤6👍1
Сегодня поговорим о двух аннотациях в Spring — @RequestParam и @PathVariable, разберём их различия и приведём примеры использования.
Работа с параметрами запроса — одна из ключевых задач при разработке веб-приложений. @RequestParam и @PathVariable помогают легко извлекать данные из URL.
Используется для получения значений из пути URL. Например, если у нас есть запрос
http://website.com/products/123, где 123 — это ID продукта:@GetMapping("/products/{id}")
public Product getProduct(@PathVariable String id) {
// обработка ID
return productService.getProductById(id);
}В этом случае 123 автоматически будет сопоставлено с параметром id метода.
Эта аннотация используется для извлечения параметров из строки запроса. Например, если запрос выглядит так:
http://website.com/products?id=123:@GetMapping("/products")
public Product getProduct(@RequestParam String id) {
// обработка ID
return productService.getProductById(id);
}Здесь id=123 извлекается из параметров URL и передаётся в метод.
@PathVariable удобно применять, когда значения являются частью структуры пути URL (например, идентификатор ресурса). Часто используется в REST API для четкой организации маршрутов, например
/users/{userId} или /orders/{orderId}.@RequestParam подходит для работы с необязательными или дополнительными параметрами, передаваемыми в строке запроса, например фильтры, сортировка или пагинация:
/products?category=electronics&sort=price.📌 Используйте @PathVariable для статичных идентификаторов и @RequestParam для динамических, кастомизируемых параметров.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤35👍11
Могут ли у абстрактного класса быть конструкторы?
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍19❤6
В статье описаны нововведения Spring Boot 3.4: настройка HttpRequestFactory, структурированное логирование и упрощённое завершение работы приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2
Что выведет код сверху?
Anonymous Quiz
29%
1
13%
1 static A
10%
123 static A
13%
static 123 A
19%
static A
17%
static 1 A
👍4❤2
Immutable класс — это класс, состояние объектов которого нельзя изменить после создания. Такие классы удобны для потокобезопасности и работы с неизменяемыми данными.
Чтоб написать неизменяемый класс, нужно следовать простым пунктам:
final, чтобы его нельзя было наследовать.private и final, чтобы значение устанавливалось только один раз.Please open Telegram to view this post
VIEW IN TELEGRAM
❤36👍9
Дан целочисленный массив
nums. Нужно вернуть количество триплетов, выбранных из массива, которые могут образовывать треугольники, если мы примем их за длины сторон.Пример 1:
Входные данные:
nums = [2,2,3,4]Вывод:
3Пояснение: могут быть такие комбинации: 2,3,4 (с первой 2), 2,3,4 (со второй 2) и 2,2,3
Пример 2:
Входные данные:
nums = [4,2,3,4]Вывод:
4Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
В статье подробно рассматривается использование Java Stream: от создания потоков до промежуточных и терминальных операций.
Автор объясняет, как эффективно обрабатывать данные с помощью потоков, приводя примеры кода и практические рекомендации.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4👍3
❤6😁2👍1
Иногда возникает необходимость преобразовать число в значение перечисления (
enum). Давайте рассмотрим как это правильно сделать.Например, есть перечисление:
public enum Season {
WINTER,
SPRING,
SUMMER,
AUTUMN
}Для числа 0 это будет WINTER, для 1 — SPRING и так далее.
Попытка прямого приведения не сработает:
int x = 1;
Season season = (Season) x; // Ошибка компиляции
Правильный способ — использовать метод
values(), который возвращает массив всех значений enum: int x = 1;
Season season = Season.values()[x]; // SPRING
Этот метод извлекает элемент массива по индексу. Однако, если индекс выходит за пределы массива, будет выброшено исключение
ArrayIndexOutOfBoundsException.📌 Важно понимать, что целочисленное значение, используемое для получения значения перечисления, должно иметь смысл в контексте приложения, чтобы код был читаемым и надёжным.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤36👍4
Можно ли создать экземпляр абстрактного класса?
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥1
В статье рассматриваются ключевые улучшения в Spring Security 6.4.1: поддержка современных методов аутентификации, таких как Passkeys и одноразовые токены, а также другие значительные обновления.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17