Создаём CRUD REST API в Spring Boot быстро и просто вместе с Amplicode
📖 Читать: ссылка
👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Платформа для управления данными на Java
С её помощью можно превращать обычные текстовые запросы в SQL-коды.
Он предназначен для упрощения взаимодействия с базами данных и повышения продуктивности работы
⛓ Ссылка: тык
👉 Java Portal | дать буст
С её помощью можно превращать обычные текстовые запросы в SQL-коды.
Он предназначен для упрощения взаимодействия с базами данных и повышения продуктивности работы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5👀5
Media is too big
VIEW IN TELEGRAM
Docker с 0 до 100%. Всё, что нужно знать
Видео представляет основы Docker, включая установку, команды, управление портами, переменные окружения, работу с данными, сетью, созданием контейнеров, Docker Compose и использование Portainer для управления.
📲 Cмотреть источник: тут
👉 Java Portal | #курсы
Видео представляет основы Docker, включая установку, команды, управление портами, переменные окружения, работу с данными, сетью, созданием контейнеров, Docker Compose и использование Portainer для управления.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤2🔥2
На изображении показана структура файловой системы Linux с пояснением назначения каждой директории 😮
/bin содержит исполняемые файлы основных команд. /boot хранит файлы загрузчика, а /dev предназначен для файлов устройств. /etc используется для конфигурационных файлов системы, а /home — для домашних директорий пользователей.
/lib содержит модули библиотек, /media используется для съемных носителей, а /mnt — для временных точек монтирования. /opt предназначен для дополнительных пакетов программного обеспечения.
/proc представляет собой интерфейс для структур данных ядра. /root является домашней директорией суперпользователя root. /run хранит данные программ во время выполнения.
/sbin используется для системных команд. /srv содержит данные, предоставляемые сервисами системы. /sys является виртуальной директорией, предоставляющей информацию о системе.
/tmp предназначен для временных файлов. /usr содержит ресурсы Unix-системы. /var используется для хранения файлов, которые часто изменяются системой.
👉 Java Portal | дать буст
/bin содержит исполняемые файлы основных команд. /boot хранит файлы загрузчика, а /dev предназначен для файлов устройств. /etc используется для конфигурационных файлов системы, а /home — для домашних директорий пользователей.
/lib содержит модули библиотек, /media используется для съемных носителей, а /mnt — для временных точек монтирования. /opt предназначен для дополнительных пакетов программного обеспечения.
/proc представляет собой интерфейс для структур данных ядра. /root является домашней директорией суперпользователя root. /run хранит данные программ во время выполнения.
/sbin используется для системных команд. /srv содержит данные, предоставляемые сервисами системы. /sys является виртуальной директорией, предоставляющей информацию о системе.
/tmp предназначен для временных файлов. /usr содержит ресурсы Unix-системы. /var используется для хранения файлов, которые часто изменяются системой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👀5🔥1
Основные компоненты Apache Kafka объяснены:
🍩 Сообщения — единицы данных в формате "ключ-значение", которые обмениваются между продюсерами и потребителями.
🍩 Топики и партиции — организуют сообщения, обеспечивают параллелизм, сохраняют порядок на уровне партиции.
🍩 Брокер — сервер Kafka для хранения, управления и распространения сообщений; обеспечивает масштабируемость.
🍩 Продюсеры — публикуют сообщения, назначают партиции, обеспечивают надежную доставку.
🍩 Потребители — извлекают и обрабатывают сообщения, отслеживают смещения, чтобы избежать дублирования.
🍩 Группа потребителей — работает совместно для сбалансированной параллельной обработки сообщений.
👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Самоучитель Spring Boot RabbitMQ
В этой серии вы научитесь использовать RabbitMQ для обмена сообщениями между продюсером и консюмером в приложениях Spring Boot. Мы будем использовать версию Spring Boot 3. Если вы хотите применять RabbitMQ в микросервисах, построенных на основе событийной архитектуры с Spring Boot, то этот курс будет полезен для вас.
📲 Cмотреть источник: тут
👉 Java Portal | #курсы
В этой серии вы научитесь использовать RabbitMQ для обмена сообщениями между продюсером и консюмером в приложениях Spring Boot. Мы будем использовать версию Spring Boot 3. Если вы хотите применять RabbitMQ в микросервисах, построенных на основе событийной архитектуры с Spring Boot, то этот курс будет полезен для вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Области видимости бинов Spring 😏
singleton — единственный экземпляр бина для всего приложения
prototype — новый экземпляр бина при каждом запросе
request — экземпляр бина на каждый HTTP-запрос
session — экземпляр бина для каждой HTTP-сессии
application — один экземпляр бина на весь жизненный цикл ServletContext
websocket — экземпляр бина для каждого WebSocket-соединения
👉 Java Portal | дать буст
singleton — единственный экземпляр бина для всего приложения
prototype — новый экземпляр бина при каждом запросе
request — экземпляр бина на каждый HTTP-запрос
session — экземпляр бина для каждой HTTP-сессии
application — один экземпляр бина на весь жизненный цикл ServletContext
websocket — экземпляр бина для каждого WebSocket-соединения
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5
12 команд Git, которые вы должны знать
git init — инициализирует новый репозиторий Git в текущей директории.
git add — добавляет изменения в текущей директории или поддиректориях в область индексирования.
git commit — фиксирует проиндексированные изменения с сообщением.
git push — отправляет локальные изменения в удалённый репозиторий.
git pull — загружает изменения из удалённого репозитория и объединяет их с локальными.
git branch — отображает список веток, создаёт новые и позволяет управлять ими.
git fetch — получает данные из удалённого репозитория, не объединяя их с локальными.
git remote — добавляет, просматривает или переименовывает удалённые репозитории.
git checkout — переключается на указанную ветку.
git merge — объединяет указанную ветку с текущей.
git status — показывает состояние репозитория, включая неотслеживаемые файлы и изменения.
git reset — сбрасывает текущую ветку к указанному коммиту.
👉 Java Portal | дать буст
git init — инициализирует новый репозиторий Git в текущей директории.
git add — добавляет изменения в текущей директории или поддиректориях в область индексирования.
git commit — фиксирует проиндексированные изменения с сообщением.
git push — отправляет локальные изменения в удалённый репозиторий.
git pull — загружает изменения из удалённого репозитория и объединяет их с локальными.
git branch — отображает список веток, создаёт новые и позволяет управлять ими.
git fetch — получает данные из удалённого репозитория, не объединяя их с локальными.
git remote — добавляет, просматривает или переименовывает удалённые репозитории.
git checkout — переключается на указанную ветку.
git merge — объединяет указанную ветку с текущей.
git status — показывает состояние репозитория, включая неотслеживаемые файлы и изменения.
git reset — сбрасывает текущую ветку к указанному коммиту.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3🔥2
Media is too big
VIEW IN TELEGRAM
Принципы проектирования SOLID с примерами на Java
Видео посвящено пяти принципам SOLID, включая их объяснение и примеры: принцип единственной ответственности, открытости/закрытости, подстановки Барбары Лисков, сегрегации интерфейсов и инверсии зависимостей.
📲 Cмотреть источник: тут
👉 Java Portal | #курсы
Видео посвящено пяти принципам SOLID, включая их объяснение и примеры: принцип единственной ответственности, открытости/закрытости, подстановки Барбары Лисков, сегрегации интерфейсов и инверсии зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤3👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Это клавиатура Android на Java 🧔♂️
Для безопасных сквозных зашифрованных сообщений по протокол Signal, в любом мессенджере.
Общайтесь безопасно и независимо, независимо от правовой ситуации или того, используют ли мессенджеры E2EE. Сервер не нужен.
⏩ ввод сообщений через отдельное текстовое поле на клавиатуре
⏩ шифрование/дешифрование сообщений
⏩ использовать буфер обмена для чтения сообщений
⏩ журнал сообщений для просмотра отправленных/полученных сообщений
⏩ Темная и светлая тема
и многое другое...
⛓ Ссылка: тык
👉 Java Portal | дать буст
Для безопасных сквозных зашифрованных сообщений по протокол Signal, в любом мессенджере.
Общайтесь безопасно и независимо, независимо от правовой ситуации или того, используют ли мессенджеры E2EE. Сервер не нужен.
и многое другое...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🔥1
В чем разница между ActiveMQ, RabbitMQ и Kafka и когда использовать
ActiveMQ: Лучше всего подходит для сценариев, где критична совместимость с JMS и поддержка различных протоколов, с фокусом на интеграцию с предприятиями и надежность.
Kafka: Идеален для обработки больших потоков данных, обеспечивая высокую пропускную способность, а также когда необходимы сохранение данных и возможность их воспроизведения.
RabbitMQ: Отлично подходит для микросервисов, где требуется гибкая маршрутизация, поддержка различных моделей обмена сообщениями и баланс между производительностью и богатством функционала.
👉 Java Portal | дать буст
ActiveMQ: Лучше всего подходит для сценариев, где критична совместимость с JMS и поддержка различных протоколов, с фокусом на интеграцию с предприятиями и надежность.
Kafka: Идеален для обработки больших потоков данных, обеспечивая высокую пропускную способность, а также когда необходимы сохранение данных и возможность их воспроизведения.
RabbitMQ: Отлично подходит для микросервисов, где требуется гибкая маршрутизация, поддержка различных моделей обмена сообщениями и баланс между производительностью и богатством функционала.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5
Media is too big
VIEW IN TELEGRAM
JWT-аутентификация для нативных приложений - Spring Security
JWT-аутентификация - это токен-аутентификация с использованием ключей доступа сериализованных в формате JWT - JSON Web Token.
В этом ролике про реализацию получения и обновления ключей доступа, аутентификации при их помощи, а так же блокировку ключей.
📲 Cмотреть источник: тут
👉 Java Portal | #курсы
JWT-аутентификация - это токен-аутентификация с использованием ключей доступа сериализованных в формате JWT - JSON Web Token.
В этом ролике про реализацию получения и обновления ключей доступа, аутентификации при их помощи, а так же блокировку ключей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥2
Основные разрешения файлов в Linux для начинающих
🟣 Тип файла
🟣 Разрешения
Для владельца (Owner/User permissions)
🟣 Для группы (Group permissions)
🟣 Для других пользователей (Others permissions)
👉 Java Portal | дать буст
-
обычный файл (regular file) b
блочное устройство (block device) c
символьное устройство (character device) d
директория (directory) l
символическая ссылка (symbolic link) p
именованный канал (named pipe) s
сокет (socket) Для владельца (Owner/User permissions)
r
читать (read) w
записывать (write) x
выполнять (execute) r
читать (read) w
записывать (write) x
выполнять (execute) r
читать (read) w
записывать (write) x
выполнять (execute) Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1
Многопоточность в Java
В Java многопоточность реализована через класс
🟣 1. Создание и запуск потока
Поток может быть создан двумя способами:
Наследование от класса Thread:
Реализация интерфейса
🟣 2. Основные методы класса
-
-
-
-
-
🟣 3. Синхронизация
- Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация:
Это гарантирует, что только один поток может выполнить код внутри синхронизированного блока.
🟣 4. Пул потоков
- Для управления большим количеством потоков используется пул потоков, который управляется через
🟣 5. Состояния потока
Потоки могут находиться в разных состояниях:
- NEW: Поток создан, но не запущен.
- RUNNABLE: Поток готов к выполнению.
- WAITING: Поток ожидает другого потока.
- TIMED_WAITING: Поток ожидает в течение определенного времени.
- TERMINATED: Поток завершен.
🟣 6. Проблемы многопоточности
- Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам.
- Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга.
🟣 7. Современные подходы и классы
-
-
🟣 8. Параллельное выполнение коллекций
Коллекции в Java также могут работать с потоками через
Многопоточность — мощный инструмент для улучшения производительности приложений, но требует внимательности при реализации, чтобы избежать ошибок, таких как мертвые блокировки или некорректный доступ к данным.
👉 Java Portal | дать буст
В Java многопоточность реализована через класс
Thread
и интерфейс Runnable
. Вот основные моменты, которые могут быть полезны при работе с многопоточностью:Поток может быть создан двумя способами:
Наследование от класса Thread:
class MyThread extends Thread {
public void run() {
// Код, выполняемый в потоке
}
}
MyThread t = new MyThread();
t.start();
Реализация интерфейса
Runnable
:
class MyRunnable implements Runnable {
public void run() {
// Код, выполняемый в потоке
}
}
Thread t = new Thread(new MyRunnable());
t.start();
Thread
-
start()
— запуск потока.-
sleep(long millis)
— приостановка потока на определенное время.-
join()
— ожидание завершения потока.-
interrupt()
— прерывание потока.-
isAlive()
— проверка, работает ли поток.- Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация:
synchronized (this) {
// Критическая секция
}
Это гарантирует, что только один поток может выполнить код внутри синхронизированного блока.
- Для управления большим количеством потоков используется пул потоков, который управляется через
ExecutorService
. Пример:
ExecutorService executor = Executors.newFixedThreadPool(10);
executor.submit(() -> {
// Задача для потока
});
executor.shutdown();
Потоки могут находиться в разных состояниях:
- NEW: Поток создан, но не запущен.
- RUNNABLE: Поток готов к выполнению.
- WAITING: Поток ожидает другого потока.
- TIMED_WAITING: Поток ожидает в течение определенного времени.
- TERMINATED: Поток завершен.
- Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам.
- Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга.
-
ForkJoinPool
— используется для параллельного выполнения задач с разделением на подзадачи.-
CountDownLatch
, CyclicBarrier
, Semaphore
— различные утилиты для синхронизации между потоками.Коллекции в Java также могут работать с потоками через
parallelStream()
:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.parallelStream().forEach(System.out::println);
Многопоточность — мощный инструмент для улучшения производительности приложений, но требует внимательности при реализации, чтобы избежать ошибок, таких как мертвые блокировки или некорректный доступ к данным.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍11🔥3🏆1
Media is too big
VIEW IN TELEGRAM
Хеш-таблица — Самая Популярная Структура Данных
Разбираем как работает HashSet - структура данных, которая позволяет проверять в ней наличие любого элемента за О(1) времени.
Затем модифицируем ее так, чтобы получить хеш-таблицу, то есть структуру данных, хранящую пары ключ-значение.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Разбираем как работает HashSet - структура данных, которая позволяет проверять в ней наличие любого элемента за О(1) времени.
Затем модифицируем ее так, чтобы получить хеш-таблицу, то есть структуру данных, хранящую пары ключ-значение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
IntelliJ IDEA поддерживает JSONPath. 👩💻
Вы можете выполнять оценку выражений JSONPath, а также использовать Language Injection для получения форматирования кода и автодополнения внутри строки JSONPath.
👉 Java Portal | дать буст
Вы можете выполнять оценку выражений JSONPath, а также использовать Language Injection для получения форматирования кода и автодополнения внутри строки JSONPath.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3