@Value в Spring (Часть 2)Позавчера мы узнали, что представляет из себя аннотация
@Value и как её обычно используют 80% разработчиков.Но сегодня мы рассмотрим ещё несколько интересных возможностей, которые предоставляет
@Value.1. Внедрение значений прямо из аннотаций:
@Value("123abc-234...")
private String token;
2. Установка дефолтного значения:
@Value("${bot.token:some default token}")
private String token;
3. Внедрениe массива значений:
bot.versions=1, 2, 3
@Value("${bot.versions}")
private int[] versions;
Полезно знать и то, что когда мы помечаем поле аннотацией
@Value, Spring по умолчанию ищет свойства в файле application.properties, но мы можем указать другой файл с помощью аннотации @PropertySource:@Configuration
@PropertySource("classpath:another.properties")
public class Config {
@Value("${bot.name}")
private String name;
@Value("${bot.token}")
private String token;
}
Таким образом,
@PropertySource используется для указания источника свойств, а @Value — для внедрения значений свойств.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24❤6👍4🤣3 1
В этой статье из двух частей автор рассказывает о модификациях, которые он внес в проект Spring Petclinic для интеграции AI-помощника, позволяющего пользователям взаимодействовать с приложением на естественном языке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Character.isLetter() — метод, который проверяет, является ли символ буквой. Он возвращает значение true, если символ является буквой, и false в противном случае. Character.isDigit() — метод, который проверяет, является ли символ цифрой. Он возвращает значение true, если символ является цифрой, и false в противном случае.Please open Telegram to view this post
VIEW IN TELEGRAM
Что значит выражение
System.out::println?Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14 4🔥3
@Controller и @RestControllerСегодня поговорим о двух аннотациях в Spring —
@Controller и @RestController, разберём их различия и приведём примеры использования.Управление входящими HTTP-запросами — это самая типичная задача в разработке веб-приложений. Для этого в Spring и существуют аннотации
@Controller и @RestController.@ControllerКак бы банально не звучало, но эта аннотация используется для определения классов в качестве контроллеров. Это помогает Spring определить компоненты, которые будут обрабатывать входящие запросы:
@Controller
public class MyController {
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello, Spring MVC");
return "hello";
}
}
В этом примере метод hello() обрабатывает запрос на URL /hello и возвращает имя представления (hello), которое будет отображаться пользователю как ответ.
@RestController@RestController появилась в Spring 4.0 и объединяет в себе две аннотации — @Controller и @ResponseBody. Это означает, что она не только помечает класс как Spring MVC Controller, но и автоматически преобразует возвращаемые данные в формат JSON или XML:@RestController
public class MyRestController {
@RequestMapping("/hello")
public String hello() {
return "Hello, Spring REST";
}
}
В этом случае, когда метод hello() обрабатывает запрос на URL /hello, он возвращает строку «Hello, Spring REST», которая автоматически преобразуется в формат JSON и отправляется в ответе на запрос.
Таким образом, основное различие между
@Controller и @RestController заключается в том, что @Controller используется для обработки веб-страниц, а @RestController — для создания RESTful веб-сервисов, которые возвращают данные в формате JSON или XML.Аннотация
@Controller может быть использована и для Web MVC, и для REST приложений, но в случае REST приложений к каждому методу контроллера придется добавлять аннотацию @ResponseBody для автоматического преобразования ответа в формат JSON или XML. Определить, MVC это приложение или REST, можно по наличию или отсутствию аннотации @ResponseBody в методах контроллера.100
Please open Telegram to view this post
VIEW IN TELEGRAM
Задан целочисленный массив
nums. Верните true, если какое-либо значение встречается в массиве хотя бы дважды, и верните false, если каждый элемент различен.Подсказка:
Пример 1:
Входные данные:
nums = [1,2,3,1]Вывод:
trueПример 2:
Входные данные:
nums = [1,2,3,4]Вывод:
falseПример 3:
Входные данные:
nums = [1,1,1,3,3,4,3,2,4,2]Вывод:
truePlease open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4❤3
Данная статья отлично подойдёт тем, кто ещё не знаком со Spring Data Envers. В статье на простых примерах объясняется, как отслеживать изменения данных в приложении, используя этот инструмент.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Цепочка обязанностей — это шаблон проектирования, который позволяет построить цепочку объектов-обработчиков, обрабатывающих запрос по очереди.
Рассмотрим простой пример:
«Представьте ситуацию, когда вы идете в банк и стоите в очереди. Клиент перед вами может быть обслужен кассиром, менеджером или руководителем, в зависимости от сложности его запроса. Если кассир не может справиться с запросом, он передает его менеджеру, а если и менеджер не может помочь, запрос передается руководителю»
Каждый «обработчик» (кассир, менеджер, руководитель) представляет звено в цепочке обязанностей. Клиент (запрос) передается от одного звена к другому, пока его запрос не будет обработан или цепочка не закончится.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM