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

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

1. Введение

Создание больших приложений Java, состоящих из нескольких уровней, требует использования нескольких моделей, таких как модель сохраняемости, модель предметной области или так называемые DTO. Использование нескольких моделей для разных уровней приложения потребует от нас предоставления способа отображения между bean-компонентами.

Выполнение этого вручную может быстро создать много стандартного кода и занять много времени. К счастью для нас, для Java существует несколько фреймворков отображения объектов.

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

2. Картографические рамки

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

1. Обзор

В этой быстрой статье мы рассмотрим различные способы чтения строки с заданным номером строки внутри файла.

2. Входной файл

Давайте начнем с создания простого файла с именем inputLines.txt , который мы будем использовать во всех наших примерах:

Line 1
Line 2
Line 3
Line 4
Line 5

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

1. Обзор

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

2. Мягкое завершение работы

Начиная с Spring Boot 2.3 , Spring Boot теперь поддерживает функцию корректного завершения работы для всех четырех встроенных веб-серверов (Tomcat, Jetty, Undertow и Netty) как на сервлетных, так и на реактивных платформах.

Чтобы включить плавное завершение работы, все, что нам нужно сделать, это установить свойство server.shutdown в изящное в нашем файле application.properties :

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

1. Обзор

В этом руководстве мы рассмотрим различные способы записи в файл с помощью Java. Мы будем использовать BufferedWriter , PrintWriter , FileOutputStream , DataOutputStream , RandomAccessFile , FileChannel и служебный класс файлов Java 7 .

Мы также рассмотрим блокировку файла во время записи и обсудим некоторые заключительные выводы о записи в файл.

Этот учебник является частью серии «Назад к основам Java» здесь, на ForEach.

2. Пишите с помощью BufferedWriter

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

1. Обзор

Spring по умолчанию управляет жизненным циклом бинов и устанавливает порядок их инициализации.

Но мы все еще можем настроить его в соответствии с нашими потребностями. Мы можем выбрать либо интерфейс SmartLifeCycle , либо аннотацию @DependsOn для управления порядком инициализации .

В этом руководстве рассматривается аннотация @DependsOn и ее поведение в случае отсутствия bean-компонента или циклической зависимости . Или в случае просто необходимости инициализации одного компонента перед другим.

2. Мавен

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

1. Обзор

В этом кратком руководстве мы собираемся проиллюстрировать, как настроить `обработку ошибок аутентификации Spring Security в приложении Spring Boot. Цель состоит в том, чтобы аутентифицировать пользователей с помощью формы входа в систему .`

Для ознакомления с Spring Security и Form Login в Spring Boot обратитесь к этой и этой статье соответственно.

2. Аутентификация и авторизация

Аутентификация и авторизация часто используются вместе, поскольку они играют существенную и не менее важную роль, когда речь идет о предоставлении доступа к системе.

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

1. Обзор

В этой статье мы рассмотрим класс StreamUtils и то, как мы можем его использовать.

Проще говоря, StreamUtils — это класс Spring, который содержит некоторые служебные методы для работы с потоком — InputStream и OutputStream , которые находятся в пакете java.io и не связаны с Stream API Java 8.

2. Зависимость от Maven

Класс StreamUtils доступен в модуле spring-core, поэтому давайте добавим его в наш pom.xml :

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

1. Обзор

В этом руководстве мы рассмотрим некоторые основные реализации параллельных очередей в Java. Общие сведения об очередях см. в нашей статье «Руководство по интерфейсу очередей Java » .

2. Очереди

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

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

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

1. Введение

Spring Data JPA предоставляет множество способов работы с сущностями, включая методы запросов и пользовательские запросы JPQL . Но иногда нам нужен более программный подход, такой как Criteria API или QueryDSL .

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

Однако у него есть свои недостатки; нам приходится писать многословную логику, раздутую шаблонным кодом.

В этом руководстве мы узнаем, как реализовать нашу пользовательскую логику DAO с помощью запросов критериев. Мы также покажем, как Spring помогает сократить шаблонный код.

2. Образец заявления

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

1. Обзор

В этом руководстве мы покажем, как использовать аутентификацию Run-As в Spring Security с помощью простого сценария.

Объяснение запуска от имени на очень высоком уровне выглядит следующим образом: пользователь может выполнять некоторую часть логики от имени другого принципала с другими привилегиями.

2. Менеджер запуска от имени

Первое, что нам нужно сделать, это настроить GlobalMethodSecurity и внедрить RunAsManager .