Java Developer
16K subscribers
1.61K photos
122 videos
2 files
1.76K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
👩‍💻 Java-рантаймы с точки зрения Spring Boot

Выбор правильного Java-рантайма для вашего проекта на Spring Boot может показаться тривиальным. В конце концов, все популярные рантаймы основываются на коде OpenJDK и предлагают одинаковые программные интерфейсы.

Но не все рантаймы реализованы одинаково. В этой статье автор описывает различные показатели, которые могут повлиять на ваше решение выбрать определенный дистрибутив Java для Spring Boot приложения.

Ссылка на статью — КЛИК

➡️ Java Developer | #статья #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
132
👩‍💻 Spring Boot 3.2: замените свой RestTemplate на RestClient

Эта статья по Spring Boot 3.2 посвящена надстройке над WebClient, которая называется RestClient и представляет собой более интуитивный и современный подход взаимодействия с RESTful сервисами.

Ссылка на статью КЛИК

➡️ Java Developer | #статья #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
13
👩‍💻 Spring Boot: Мониторинг и профилирование

Данная статья посвящена использованию библиотеки для профилирования методов в приложениях Spring Boot.

Библиотека предоставляет механизм для мониторинга времени выполнения методов, используя аннотацию @ActuatorProfiling и Spring Boot Actuator для экспонирования данных профилирования через настраиваемые конечные точки (эндпоинты).

Ссылка на статью КЛИК

➡️ Java Developer | #статья #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
7
👩‍💻 Liquibase + Spring Boot: настройка и написание миграций баз данных

Благодаря этой статье вы узнаете, как подключить и настроить Liquibase в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы БД, а также дополнить уже существующие changelog файлы новыми скриптами миграции.

Ссылка на статью КЛИК

➡️ Java Developer | #статья #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
127💯4👍1
👩‍💻 Аннотация @Value в Spring (Часть 1)

Давненько не было спринга на канале, поэтому сегодня поговорим об аннотации @Value — где её использовать, как её использовать и примеры использования.

Аннотация @Value позволяет внедрять значения свойств в поля, конструкторы или параметры методов Spring-компонентов. С её помощью мы можем легко получать значения из различных источников: properties-файлы, системные переменные, переменные окружения и т.д.

Пример использования:

Допустим, у нас есть файл application.properties со следующими значениями:
bot.name=example_bot
bot.token=123abc-234...


В необходимом классе создадим поля token и bot и пометим их аннотацией @Value:
@Value("${bot.name}")
private String name;

@Value("${bot.token}")
private String token;


Теперь Spring будет искать указанные свойства в файле application.properties. Это была основа основ, но на этом возможности @Value не заканчиваются — в следующей части мы рассмотрим ещё несколько крутейших фишек этой аннотации.

🕺 — если было полезно

📱 Java Developer | #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
99👍10🤔21
👩‍💻 Аннотация @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 — для внедрения значений свойств.

🕺 — если ждёшь следующий разбор

➡️ Java Developer | #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
79👍7🔥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 🕺 — и я пишу новый пост

📱 Java Developer | #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
135👍104🔥1
👩‍💻 Hot reload секретов под нагрузкой в Java-сервисах

В статье рассматривается реализация горячей перезагрузки секретов в Java-сервисах на Spring без перезапуска приложения.

Автор объясняет, как с помощью WatchService отслеживать изменения сертификатов и учетных данных, чтобы автоматически обновлять их в работающем сервисе.

Читать статью

tags: #статья #spring

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
5
👩‍💻 Null-safety в Spring-приложениях с JSpecify и NullAway

NullPointerException — одна из самых неприятных ошибок в Java, которая может неожиданно привести к сбоям в работе приложения и усложнить жизнь пользователям.

В статье рассматриваются современные подходы к обеспечению null-безопасности в Spring-приложениях с использованием JSpecify и NullAway.

Что вы узнаете из статьи?
▶️ Почему NullPointerException остается одной из самых частых ошибок в Java?

▶️ Как JSpecify позволяет управлять nullability на уровне API?

▶️ В чем разница между JSpecify и NullAway, и когда использовать каждый из них?

▶️ Как статический анализ помогает находить потенциальные ошибки на этапе компиляции?

▶️ Как интегрировать null-безопасность в Spring-приложение без лишних сложностей?


Автор делится практическими рекомендациями по внедрению null-безопасности, которые снижают количество ошибок и делают код более устойчивым.

Читать статью

tags: #статья #spring

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
👩‍💻 Эффективный подход к тестированию веб-контроллеров в Spring Boot приложениях

В статье разбираются подходы к тестированию контроллеров в Spring Boot и сложности, связанные с избыточностью @SpringBootTest и ограничениями юнит-тестов.

Предлагается оптимальный способ с использованием @WebMvcTest, который сохраняет HTTP-семантику и ускоряет выполнение тестов.

Читать статью

tags: #статья #spring

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
👩‍💻 Эффективный подход к тестированию веб-контроллеров в Spring Boot приложениях

В статье разбираются подходы к тестированию контроллеров в Spring Boot и сложности, связанные с избыточностью @SpringBootTest и ограничениями юнит-тестов.

Предлагается оптимальный способ с использованием @WebMvcTest, который сохраняет HTTP-семантику и ускоряет выполнение тестов.

Читать статью

tags: #статья #spring

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1