en
Feedback
Java | Вопросы собесов

Java | Вопросы собесов

Open in Telegram

📈 Analytical overview of Telegram channel Java | Вопросы собесов

Channel Java | Вопросы собесов (@easy_java_ru) in the Russian language segment is an active participant. Currently, the community unites 11 457 subscribers, ranking 10 900 in the Technologies & Applications category and 57 494 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 11 457 subscribers.

According to the latest data from 09 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 13 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 10.15%. Within the first 24 hours after publication, content typically collects 7.30% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 162 views. Within the first day, a publication typically gains 836 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 6.
  • Thematic interests: Content is focused on key topics such as ставь, void, string, строка, static.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+icUwivvbGOkwNWRi Задачи t.me/+8eqUTboisnkyZjQy Вакансии t.me/+4pspF5nDjgM4MjQy

Thanks to the high frequency of updates (latest data received on 10 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

11 457
Subscribers
-124 hours
+47 days
+1330 days
Posts Archive
Как синхронизировать команду? Пригласить в Битрикс24. Бесплатный онлайн-сервис для бизнеса и совместной работы. Мессенджер, CRM для продаж, Видеозвонки, Задачи, Календарь, Файлы и ИИ-помощник. Заберите бесплатно 10+ инструментов в одном сервисе. Зарегистрироваться #реклама 16+ office-online.bitrix24.ru О рекламодателе

🤔 Как обеспечить TLS для веб-приложения? 1. Настройте HTTPS: - Установите SSL-сертификат на сервер (например, через Let’s Encrypt). - Настройте сервер (Apache, Nginx) для принудительного использования HTTPS. 2. Редирект HTTP → HTTPS: - Настройте перенаправление на уровне сервера или используйте фильтры. 3. Установите безопасные атрибуты куки: - Используйте Secure и HttpOnly, чтобы защитить куки от утечки. 4. Шифрование данных: - Передавайте конфиденциальные данные только через HTTPS. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Ивент, спецпроект, реклама – где будем обсуждать? В Битрикс24 Коллабы!✨ Создайте пространство для совместных проектов с подря
Ивент, спецпроект, реклама – где будем обсуждать? В Битрикс24 Коллабы!✨ Создайте пространство для совместных проектов с подрядчиками в Битрикс24 Коллабы. Чаты, задачи, файлы и звонки — для продуктивной работы без заморочек. Посмотрите, как это работает. Смотреть #реклама 16+ collabs.bitrix24.ru О рекламодателе

🤔 В чем разница между Statement и PreparedStatement? Это два интерфейса в JDBC, которые используются для выполнения SQL-запросов к базе данных. Основные различия между ними касаются производительности, безопасности и удобства использования. 🚩Statement Statement используется для выполнения простых SQL-запросов. Запросы формируются и передаются в базу данных в виде строки. Подходит для простых запросов. Не оптимизирован для повторного выполнения. Каждый раз, когда запрос передается в базу данных, он компилируется и выполняется заново. Уязвим к SQL-инъекциям. Поскольку запрос формируется путем конкатенации строк, злоумышленники могут внедрять вредоносный SQL-код.
Statement stmt = connection.createStatement();
String query = "SELECT * FROM employees WHERE department = 'HR'";
ResultSet rs = stmt.executeQuery(query);

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("ID: " + id + ", Name: " + name);
}
stmt.close();
🟠PreparedStatement PreparedStatement используется для выполнения предварительно скомпилированных SQL-запросов. Это позволяет повысить производительность и безопасность. Оптимизирован для повторного выполнения. Запрос компилируется только один раз, а затем может многократно выполняться с разными параметрами, что повышает производительность. Защита от SQL-инъекций. Использует параметризованные запросы, которые помогают избежать уязвимостей, связанных с SQL-инъекциями. Удобство работы с параметрами. Позволяет устанавливать значения параметров с использованием методов setInt(), setString() и других.
String query = "SELECT * FROM employees WHERE department = ?";
PreparedStatement pstmt = connection.prepareStatement(query);
pstmt.setString(1, "HR");
ResultSet rs = pstmt.executeQuery();

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("ID: " + id + ", Name: " + name);
}
pstmt.close();
🚩Основные различия 🟠Производительность Statement: Каждый запрос компилируется заново, что снижает производительность при многократном выполнении одного и того же запроса. PreparedStatement: Запрос компилируется один раз и может многократно выполняться с разными параметрами, что повышает производительность. 🟠Безопасность Statement: Уязвим к SQL-инъекциям, поскольку запросы формируются путем конкатенации строк. PreparedStatement: Использует параметризованные запросы, что защищает от SQL-инъекций. 🟠Удобство использования Statement: Подходит для простых, одноразовых запросов. PreparedStatement: Удобен для многократного выполнения запросов с разными параметрами. 🟠Типы запросов Оба интерфейса могут выполнять запросы типа SELECT, INSERT, UPDATE, DELETE, но PreparedStatement более удобен для запросов с параметрами. Ставь 👍 и забирай 📚 Базу знаний

🎓 Буткэмп "Все как на работе" — Прокачай навыки до уровня коммерческого разработчика за месяц + неделя Мы предлагаем практич
🎓 Буткэмп "Все как на работе" — Прокачай навыки до уровня коммерческого разработчика за месяц + неделя Мы предлагаем практическое обучение, максимально приближенное к реальной работе в IT-компании. Подключайся к боевому проекту и изучай технологии, которые используют профессиональные разработчики. Почему этот практикум — уникальная возможность: ✔️ Боевой проект (готов на 60%) — настоящая разработка в команде из 7 программистов ✔️ Полный цикл разработки: 1) Постановка задач в Jira 2) Работа с Git и создание Merge Request 3) Прохождение код-ревью (кросс-ревью и финальное ревью от тимлида) 4) Внедрение CI/CD, тестирование и деплой ✔️ Технологии уровня рынка: Java 17, Spring Boot 3, Hibernate 6 JWT, Spring Security, PostgreSQL Docker, Liquibase, MapStruct JUnit5 / Mockito / Testcontainers Организация обучения: 📅 Длительность: 5 недель 👩‍💻 4 занятия в неделю (Zoom): 2 занятия — изучение технологий 2 занятия — проектная работа Стоимость: 💳 Полная стоимость: 70 000 ₽ 🔥 Ранняя цена до 15 февраля: 49 000 ₽ ✔️ Возможна оплата частями 📅 Старт курса: 9 марта 2025 📍 Осталось мест: 6 из 15 Что вы получите: 🔑 Навык коммерческой разработки с пониманием транзакций, паттернов и ключевых бизнес процессов 🚀 Готовность уверенно работать в профессиональной команде и писать код коммерческого уровня 🔗 Записаться на курс и устроиться мидлом: https://javaguru.by/bootcamp Подробнее в видео: https://rutube.ru/video/91642fe34b761f231bf0c2b63a027662/ #Java #ITОбучение #Практика Реклама: ИП Бруев Алексей Тимофеевич, ИНН: 381258351501

Целевые кибератаки 2024: аналитика и кейсы На вебинаре 27 февраля команда Solar 4RAYS подведет итоги по следам расследований целевых атак 2024 года Вы узнаете, как профессиональные хакеры атакуют российские компании и обходят системы безопасности, когда защита не соответствует уровню угроз. А также какие тактики используют киберпреступники, каков конечный импакт для систем ИБ от воздействия хакеров и как выстроить стратегию защиты. Что будет на вебинаре: - Какие инструменты противодействия актуальны в 2025 году; - Какие отрасли бизнеса подвергались атакам и с какой целью; - Какие интересные техники использовали злоумышленники: разбор кейсов расследований. Все примеры и рекомендации основаны на реальных расследованиях инцидентов в российских организациях. Зарегистрироваться #реклама 16+ rt-solar.ru О рекламодателе

🤔 Какой существует способ удостовериться, что сервлеты доступны только для пользователя с верной сессией? 1. Фильтры (Filters): - Создайте фильтр, который проверяет, существует ли активная сессия, и перенаправляет на страницу входа, если сессия недействительна. 2. Настройка безопасности в web.xml: - Используйте <security-constraint> и роли для ограничения доступа к сервлетам. 3. Проверка в коде: - Проверяйте сессию непосредственно в сервлете с помощью request.getSession(false). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Простая подработка от 2 ч. в день. Обучение бесплатно ИИ-Таргетолог Простой способ начать зарабатывать в интернете! от 30 - 1
Простая подработка от 2 ч. в день. Обучение бесплатно ИИ-Таргетолог Простой способ начать зарабатывать в интернете! от 30 - 150 000 рублей в месяц! Узнаете, как настраивать таргетированную рекламу с помощью нейросетей за 1 видео! Без траты долгих лет на обучение. Без мутных и незаконных схем. Узнать больше #реклама 16+ institute.yagla.ru О рекламодателе

🤔 Является ли пустым пул строк при старте jar файла или там есть какие-то значения? Пул строк в Java не является пустым при старте JAR файла. Он изначально содержит несколько предопределенных строковых литералов, которые JVM использует для своей внутренней работы, а также строковые литералы, используемые в загруженных классах и стандартных библиотеках. 🚩Что изначально содержится 🟠Предопределенные строковые литералы JVM и стандартные библиотеки Java используют различные строковые литералы для своей работы. Эти строки добавляются в пул строк при запуске JVM. Примеры таких строк включают имена основных классов и пакетов (например, "java/lang/Object", "java/lang/String"). 🟠Строковые литералы, используемые в загруженных классах Когда классы загружаются JVM, все строковые литералы, используемые в этих классах, добавляются в пул строк. Это включает строки, используемые в JAR файле, а также строки из стандартных библиотек Java, которые загружаются при старте. 🚩Пример строк в пуле при старте Для демонстрации этого можно написать простой код, который проверяет, присутствуют ли определенные строки в пуле строк при старте программы.
public class StringPoolDemo {
    public static void main(String[] args) {
        // Проверка стандартных строк, которые могут быть в пуле строк
        String str1 = "java";
        String str2 = "lang";
        String str3 = "Object";

        // Вывод строк
        System.out.println("str1: " + str1);
        System.out.println("str2: " + str2);
        System.out.println("str3: " + str3);

        // Проверка строк в пуле строк
        System.out.println("Is 'java' in pool: " + (str1 == "java"));
        System.out.println("Is 'lang' in pool: " + (str2 == "lang"));
        System.out.println("Is 'Object' in pool: " + (str3 == "Object"));
    }
}
🚩Что происходит при старте JVM 🟠Инициализация JVM При запуске JVM загружаются системные классы, такие как java.lang.Object, java.lang.String, java.lang.System, и другие. Строковые литералы, используемые в этих классах, добавляются в пул строк. 🟠Загрузка пользовательских классов Когда JVM загружает пользовательские классы из JAR файла, все строковые литералы в этих классах также добавляются в пул строк. Ставь 👍 и забирай 📚 Базу знаний

Все новости из мира программирования на этом канале @umnyiprogrammist Подписывайтесь, чтобы не упустите ничего важного Ставь
Все новости из мира программирования на этом канале @umnyiprogrammist Подписывайтесь, чтобы не упустите ничего важного Ставь 👍 и забирай 📚 Базу знаний

Ошибки в коде — ключ для атаки на веб-приложения Всего одна ошибка — и данные ваших клиентов могут оказаться в руках мошенников. Иногда достаточно одной неверной строчки кода, чтобы хакеры получили доступ к информации о пользователях. Чтобы этого не произошло, важно позаботиться о безопасности еще на начальном этапе разработки. Как это сделать, расскажут эксперты «Солара» и AppSec Solutions на вебинаре 18 февраля. Вы узнаете: ✅какие языки программирования наиболее уязвимы — исследования от AppSec Solutions, ✅как проверить веб-приложение и ПО на безопасность без навыка разработки, ✅какие новые возможности появились в Solar appScreener 3.15.0. Регистрируйтесь! Зарегистрироваться #реклама 16+ rt-solar.ru О рекламодателе

🤔 Как уведомить объект в сессии, что сессия недействительна или закончилась? 1. Через HttpSessionListener: - Реализуйте этот интерфейс для обработки событий завершения сессии (sessionDestroyed). 2. Через HttpSessionBindingListener: - Добавьте этот интерфейс в объект, который добавляется в сессию, чтобы он мог отреагировать на удаление. 3. События атрибутов: - Используйте HttpSessionAttributeListener для уведомления при удалении атрибута из сессии. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Онлайн-интенсив для ИТ-специалистов в Открытых школах Т1 Уже есть опыт работы в ИТ, но хочешь прокачать скилы и продвинуться в карьере? Тогда скорее залетай на бесплатный ИТ-интенсив в Открытых школах Т1. Открытые школы — это возможность усилить свои навыки и получить оффер в ИТ-холдинг Т1. И все это за месяц, онлайн и в удобное вечернее время. Что ты получишь? ✅ бесплатное обучение в гибком формате: по вечерам, онлайн, из любого города РФ и РБ. ✅ материалы от HR для прокачки резюме и подготовки к интервью в Т1. ✅ много практики и уникальный рыночный опыт. ✅ поддержку опытных преподавателей и карьерный фаст-трек до мидла в Т1 для лучших выпускников. ✅ реальный шанс получить оффер в Т1. Более 1000 специалистов уже прошли этот путь — теперь твоя очередь! Регистрация до 14 марта! Подать заявку #реклама 16+ t1.ru О рекламодателе

🤔 Роль `serialVersionUID` в сериализации Это уникальный идентификатор версии класса, который используется механизмом сериализации для проверки совместимости классов при десериализации объектов. Он играет ключевую роль в предотвращении ошибок при изменении классов, участвующих в сериализации. 🚩Почему `serialVersionUID` важен? 🟠Гарантия совместимости при десериализации Когда объект сериализуется (превращается в поток байтов), вместе с ним сохраняется и serialVersionUID. При десериализации JVM сравнивает serialVersionUID сохранённого объекта с serialVersionUID текущего класса. Если они не совпадают, выбрасывается исключение InvalidClassException, так как структура класса могла измениться. 🟠Предотвращение ошибок при изменениях класса Если класс изменяется (например, добавляется новое поле), но serialVersionUID остаётся неизменным, JVM считает, что класс всё ещё совместим с более старой версией, и десериализация проходит успешно. 🟠Явное управление версиями Если serialVersionUID не указан явно, JVM генерирует его автоматически на основе структуры класса. Это может привести к неожиданным проблемам, если класс изменится, так как автоматически вычисленный serialVersionUID изменится. 🚩Как использовать `serialVersionUID`?
import java.io.*;

class Person implements Serializable {
    private static final long serialVersionUID = 1L; // Версия класса
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}
🚩Что будет, если не указать `serialVersionUID`? Если не определить serialVersionUID, JVM сгенерирует его автоматически. Однако: Он будет зависеть от структуры класса. Малейшее изменение в коде (даже порядок методов) изменит serialVersionUID. Это может привести к InvalidClassException при десериализации. Ставь 👍 и забирай 📚 Базу знаний

Repost from easyoffer
Ищу работу пол года Практически под каждым постом в этом канале я вижу комментарии от людей, которые ищут работу по полгода. Это перерастает в обсуждение того, как нужно (или не нужно) искать работу, почему процесс найма сломан и как они откликались на фейковые вакансии. Честно говоря, искать работу полгода — это нонсенс. Очевидно, что человек делает что-то не так. Главная ошибка, которую совершают многие, — это создание иллюзии поиска работы. То есть человек вроде бы ищет работу, но делает это неэффективно, тратя время на нецелевые действия. Например: ➖ Просматривает вакансии перед откликом. ➖ Пытается понять, подходит ли он под вакансию. Если считает, что не подходит — не откликается. ➖ Пишет сопроводительные письма (иногда даже уникальные под каждую вакансию). ➖ Заполняет анкеты, проходит тесты. Все эти действия отнимают время, но не приводят к результату. Почему это не работает? HR-менеджер не может вручную отсмотреть 2000 откликов, оценить каждое резюме и прочитать сопроводительные письма. Поэтому компании используют ATS-системы (системы автоматического подбора), которые анализируют резюме и определяют процент его соответствия вакансии. Что делать, чтобы повысить шансы? 1️⃣ Добавить ключевые навыки в резюме — и в основной текст, и в теги. Возьмите их с easyoffer.ru 2️⃣ Убрать нерелевантный опыт, оставить только подходящий. 3️⃣ Оформить опыт так, чтобы он выглядел релевантным. Если у вас его нет, укажите проекты, стажировки или другой опыт, который можно представить как работу от 1 года. Если опыт слишком большой, сузьте его до 6 лет. 4️⃣ Откликаться на все вакансии без разбору. Если вы Junior, не ищите только стажер или Junior-вакансии — пробуйте везде. Не отказывайте себе сами, пусть это решит HR 5️⃣ Сделать резюме публичным, потому что HR-менеджеры часто ищут кандидатов не только среди откликов, но и в базе резюме. 6️⃣ Используйте ИИ по минимуму – ATS-системы считывают это и помечают "сгенерировано ИИ" ‼️ Главное правило: чем больше откликов — тем выше шанс получить оффер. Делайте резюме удобным для ATS-систем, и вас заметят. 1. Посмотрите видео о том как я вывел свою резюме в Топ1 на HH 2. Посмотрите видео как я нашел первую работу 3. Прочитайте этот кейс про оптимизацию резюме Если прям вообще тяжело. Создайте несколько разных резюме. Создайте 2, 3 да хоть 10 резюме. Настройте авто-отлики и ждите приглашения на собесы. Не нужно создавать иллюзию поиска работы, сделайте несколько простых и актуальных действий.

🤔 Что такое «сессия»? Это способ хранения информации о состоянии взаимодействия между клиентом и сервером. Она используется для идентификации пользователя, управления его действиями и передачи данных между запросами. Данные сессии хранятся на сервере, а идентификатор сессии передается клиенту через куки или URL. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как сконфигурировать параметры инициализации для JSP ? Параметры инициализации могут быть настроены через файл конфигурации web.xml или с помощью аннотаций в сервлетах. Могут быть настроены для всего веб-приложения или для конкретных сервлетов и страниц. 🚩Конфигурация параметров инициализации через web.xml 🟠Параметры инициализации для сервлетов и JSP страниц Можно настроить в разделе <servlet> элемента конфигурационного файла web.xml.
<web-app>
    <servlet>
        <servlet-name>ExampleServlet</servlet-name>
        <jsp-file>/example.jsp</jsp-file>
        <init-param>
            <param-name>param1</param-name>
            <param-value>value1</param-value>
        </init-param>
        <init-param>
            <param-name>param2</param-name>
            <param-value>value2</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>ExampleServlet</servlet-name>
        <url-pattern>/example</url-pattern>
    </servlet-mapping>
</web-app>
Доступ к параметрам инициализации в JSP можно получить через объект config в JSP.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Initialization Parameters Example</title>
</head>
<body>
    <h1>Initialization Parameters Example</h1>
    
    <%
        // Получение параметров инициализации
        String param1 = config.getInitParameter("param1");
        String param2 = config.getInitParameter("param2");
    %>
    
    <p>Param1: <%= param1 %></p>
    <p>Param2: <%= param2 %></p>
</body>
</html>
🟠Параметры инициализации для всего приложения Можно настроить в разделе <context-param> элемента конфигурационного файла web.xml.
<web-app>
    <context-param>
        <param-name>globalParam1</param-name>
        <param-value>globalValue1</param-value>
    </context-param>
    <context-param>
        <param-name>globalParam2</param-name>
        <param-value>globalValue2</param-value>
    </context-param>
</web-app>
Доступ к параметрам инициализации для всего приложения можно получить через объект ServletContext.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Global Initialization Parameters Example</title>
</head>
<body>
    <h1>Global Initialization Parameters Example</h1>
    
    <%
        // Получение глобальных параметров инициализации
        String globalParam1 = application.getInitParameter("globalParam1");
        String globalParam2 = application.getInitParameter("globalParam2");
    %>
    
    <p>Global Param1: <%= globalParam1 %></p>
    <p>Global Param2: <%= globalParam2 %></p>
</body>
</html>
Ставь 👍 и забирай 📚 Базу знаний

🤔 Можно ли одновременно использовать в сервлете PrintWriter и ServletOutputStream? Нет, их одновременное использование в одном ответе запрещено. Это связано с тем, что использование одного из них фиксирует тип потока (символьный или байтовый), и дальнейшая попытка использовать другой поток вызовет исключение IllegalStateException. Вы должны выбрать только один подходящий поток для формирования ответа. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как работать на Spring? Spring – это мощный фреймворк для разработки Java-приложений, который упрощает работу с бэкендом, базами данных и веб-сервисами. 🚩Основные шаги для работы на Spring 1⃣Настроить проект 2⃣Создать контроллеры (обрабатывают HTTP-запросы). 3⃣Добавить сервисы (логика приложения). 4⃣Работать с базой данных (Spring Data JPA, Hibernate). 5⃣Запустить приложение и тестировать. 🚩Настройка проекта (Spring Boot) 🟠Создание проекта через Spring Initializr Самый быстрый способ – использовать [Spring Initializr](https://start.spring.io/). Заходим на [start.spring.io](https://start.spring.io/) Выбираем: Maven / Gradle Java 17+ Spring Boot 3+ Зависимости: Spring Web, Spring Data JPA, PostgreSQL/MySQL (если нужна БД) Скачиваем и открываем в IntelliJ IDEA или VS Code.
<dependencies>
    <!-- Spring Boot Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- Spring Boot JPA + Hibernate -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <!-- Драйвер для PostgreSQL -->
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
    </dependency>
    
    <!-- Lombok (автоматически генерирует геттеры/сеттеры) -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>
🚩Создание контроллера (REST API) Контроллер обрабатывает HTTP-запросы (GET, POST, PUT, DELETE).
@RestController
@RequestMapping("/hello")
public class HelloController {

    @GetMapping
    public String sayHello() {
        return "Привет, Spring!";
    }
}
Запрос в браузере
http://localhost:8080/hello
Ответ
Привет, Spring!
🚩Добавление бизнес-логики (Service Layer) Сервисы обрабатывают данные и реализуют бизнес-логику.
@Service
public class UserService {
    
    public String getUserGreeting(String name) {
        return "Привет, " + name + "!";
    }
}
Использование сервиса в контроллере
@RestController
@RequestMapping("/user")
public class UserController {
    
    private final UserService userService;

    @Autowired  // Внедрение зависимости
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("/{name}")
    public String getUserGreeting(@PathVariable String name) {
        return userService.getUserGreeting(name);
    }
}
Запрос в браузере:
http://localhost:8080/user/Иван
Ответ
Привет, Иван!
Ставь 👍 и забирай 📚 Базу знаний