Перейти к основному содержимому

· 20 мин. чтения

1. Введение

В этом руководстве мы рассмотрим основные концепции разделения ответственности командных запросов (CQRS) и шаблонов проектирования Event Sourcing.

Хотя шаблоны часто называют взаимодополняющими, мы попытаемся понять их по отдельности и, наконец, посмотрим, как они дополняют друг друга. Существует несколько инструментов и фреймворков, таких как Axon , которые помогают использовать эти шаблоны, но мы создадим простое приложение на Java, чтобы понять основы.

2. Основные понятия

Сначала мы поймем эти шаблоны теоретически, прежде чем пытаться их реализовать. Кроме того, поскольку они достаточно хорошо представляют собой отдельные паттерны, мы постараемся понять их, не смешивая их.

· 4 мин. чтения

1. Обзор

Keycloak — это сторонний сервер авторизации, используемый для управления требованиями аутентификации и авторизации наших веб-приложений или мобильных приложений. Он использует страницу входа по умолчанию для входа пользователей от имени нашего приложения.

В этом руководстве мы сосредоточимся на том, как мы можем настроить страницу входа для нашего сервера Keycloak, чтобы она выглядела по-другому. Мы увидим это как для автономных, так и для встроенных серверов.

Мы будем опираться на настройку тем для учебника Keycloak , чтобы сделать это.

2. Настройка автономного сервера Keycloak

· 7 мин. чтения

1. Обзор

Keycloak — это решение для управления идентификацией и доступом или IAM с открытым исходным кодом, которое можно использовать в качестве стороннего сервера авторизации для управления требованиями аутентификации и авторизации наших веб-приложений или мобильных приложений.

В этом руководстве мы сосредоточимся на том, как мы можем настроить тему для нашего сервера Keycloak, чтобы мы могли иметь другой внешний вид для наших веб-страниц, обращенных к конечным пользователям.

Во-первых, мы установим фон с точки зрения автономного сервера Keycloak. В следующих разделах мы рассмотрим аналогичные примеры в контексте встроенного.

Для этого мы будем опираться на наши предыдущие статьи: Краткое руководство по использованию Keycloak и Keycloak Embedded in a Spring Boot Application . Так что для тех, кто начинает, рекомендуется сначала пройти их.

2. Темы в Keycloak

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы увидим разницу между вызовами HttpServletRequest# getSession() и HttpServletRequest# getSession(boolean) .

2. В чем разница?

Методы getSession() и getSession(boolean) очень похожи. Хотя есть небольшая разница. Разница заключается в том, следует ли создавать сеанс, если он еще не существует.

Вызовы getSession() и getSession(true) функционально одинаковы : получить текущий сеанс и, если он еще не существует, создать его.

· 4 мин. чтения

1. Обзор

HashSet — это коллекция для хранения уникальных элементов.

В этом руководстве мы обсудим производительность метода removeAll() в классе java.util.HashSet .

2. HashSet.removeAll()

Метод removeAll удаляет все элементы, содержащиеся в коллекции :

· 2 мин. чтения

1. Обзор

KeyStore, как следует из названия, представляет собой хранилище сертификатов, открытых и закрытых ключей. Более того, дистрибутивы JDK поставляются с исполняемым файлом для управления ими — keytool .

С другой стороны, сертификаты могут иметь много расширений, но нужно помнить, что файл .cer содержит общедоступные ключи X.509 и поэтому может использоваться только для проверки личности.

В этой короткой статье мы рассмотрим, как импортировать файл .cer в хранилище ключей Java.

2. Импорт сертификата

· 6 мин. чтения

1. Обзор

В этой статье мы собираемся изучить интересную особенность NIO2 — интерфейс FileVisitor .

Все операционные системы и несколько сторонних приложений имеют функцию поиска файлов, где пользователь определяет критерии поиска.

Этот интерфейс — то, что нам нужно для реализации такой функциональности в Java-приложении. Если вам нужно найти все файлы .mp3 , найти и удалить файлы .class или найти все файлы, к которым не обращались за последний месяц, то этот интерфейс — то, что вам нужно.

Все классы, которые нам нужны для реализации этой функциональности, объединены в один пакет:

import java.nio.file.*;

· 7 мин. чтения

1. Обзор

Интерфейс Spliterator , представленный в Java 8, можно использовать для обхода и разделения последовательностей . Это базовая утилита для потоков , особенно параллельных.

В этой статье мы рассмотрим его использование, характеристики, методы и способы создания собственных пользовательских реализаций.

2. API -разделитель

2.1. попробуй вперед

· 4 мин. чтения

1. Введение

В этом руководстве мы опишем, как использовать Spring WebSockets для отправки сообщений STOMP одному пользователю. Это важно, потому что иногда мы не хотим транслировать каждое сообщение каждому пользователю. Кроме того, мы покажем, как отправлять эти сообщения безопасным способом.

Для ознакомления с WebSockets ознакомьтесь с этим замечательным руководством о том, как приступить к работе. И, чтобы глубже погрузиться в безопасность, ознакомьтесь с этой статьей, чтобы защитить свою реализацию WebSockets.

2. Очереди, темы и конечные точки

Есть три основных способа сказать, куда отправляются сообщения и как они подписываются, используя Spring WebSockets и STOMP:

· 5 мин. чтения

1. Введение

Hibernate — это удобный фреймворк для управления постоянными данными, но иногда бывает сложно понять, как он работает внутри.

В этом уроке мы узнаем о состояниях объектов и о том, как перемещаться между ними. Мы также рассмотрим проблемы, с которыми мы можем столкнуться с отсоединенными объектами, и способы их решения.

2. Сессия Hibernate

Интерфейс сеанса является основным инструментом, используемым для связи с Hibernate. Он предоставляет API, позволяющий нам создавать, читать, обновлять и удалять постоянные объекты. Сессия имеет простой жизненный цикл. Открываем его, выполняем какие-то операции, а потом закрываем.