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

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

1. Обзор

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

Проще говоря, мы можем извлечь содержимое карты с помощью entrySet() , keySet() или values() . Поскольку это все наборы, ко всем из них применяются одинаковые принципы итерации.

Давайте подробнее рассмотрим некоторые из них.

2. Краткое введение в методы Map entrySet (), keySet() и values()

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

1. Обзор

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

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

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

2. Зачем интерфейсам нужны методы по умолчанию

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

1. Обзор

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

В этой статье мы собираемся оценить одну из этих относительно новых оптимизаций: конкатенацию строк с помощью invokedynamic .

2. До Java 9

До Java 9 нетривиальные конкатенации строк реализовывались с помощью StringBuilder . Например, рассмотрим следующий метод:

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

1. Весна и Ява

>> Государство Валгалла [ openjdk.java.net ]

Стоит прочитать обновление Project Valhalla и будущее Java .

>> Микросервисы Java: практическое руководство [ marcobehler.com ]

Отличный учебник по микросервисам с практическими советами по их проектированию и созданию на Java.

>> Дорожная карта обслуживания Spring Framework в 2020 году (включая 4.3 EOL) [ spring.io ]

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

1. Обзор

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

Первый подход может заключаться в использовании нескольких операторов if для проверки этого условия с помощью свойств класса System . Это, конечно, работает, но у JUnit есть более чистый и элегантный метод.

В этом коротком руководстве мы рассмотрим, как мы можем условно запускать или игнорировать тесты в JUnit 4, используя класс Assume .

2. Предполагаемый класс

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

1. Обзор

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

2. Вызов

Как и другие веб-ресурсы, REST API часто защищены. Таким образом, потребитель службы (такой как пользовательский интерфейс Swagger) должен не только сам обрабатывать HTTP-вызов, но и предоставлять информацию для аутентификации поставщику службы.

Keycloak — это сервер IAM, который позволяет выполнять аутентификацию и авторизацию за пределами реализации поставщика услуг. Это часть архитектуры, как показано на следующей диаграмме:

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

1. Обзор

Простой фасад ведения журналов для Java (сокращенно SLF4J) выступает в качестве фасада для различных сред ведения журналов (например, java.util.logging, logback, Log4j ). Он предлагает общий API, что делает ведение журнала независимым от фактической реализации.

Это позволяет сосуществовать различным платформам ведения журналов. И это помогает переходить с одного фреймворка на другой. Наконец, помимо стандартизированного API, он также предлагает некоторый «синтаксический сахар».

В этом руководстве обсуждаются зависимости и конфигурация, необходимые для интеграции SLF4J с Log4j, Logback, Log4j 2 и Jakarta Commons Logging.

Для получения дополнительной информации о каждой из этих реализаций ознакомьтесь с нашей статьей Introduction to Java Logging .

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

1. Обзор

В этом руководстве мы подробно рассмотрим интерфейс Spring ApplicationContext .

2. Интерфейс ApplicationContext

Одной из основных особенностей среды Spring является контейнер IoC (Inversion of Control). Контейнер Spring IoC отвечает за управление объектами приложения. Он использует внедрение зависимостей для достижения инверсии управления.

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

Обратите внимание, что этот контент устарел и использует устаревший стек OAuth. Взгляните на последнюю поддержку OAuth в Spring Security .

1. Обзор

В этом кратком руководстве мы сосредоточимся на настройке OpenID Connect с реализацией Spring Security OAuth2.

OpenID Connect — это простой уровень идентификации, созданный поверх протокола OAuth 2.0.

А если конкретнее, узнаем, как аутентифицировать пользователей с помощью реализации OpenID Connect от Google .

2. Конфигурация Maven

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

1. Обзор

Часто полезно использовать код состояния из ответа HTTP, чтобы определить, что приложение должно делать дальше с данным ответом.

В этом руководстве мы рассмотрим, как получить доступ к коду состояния и тексту ответа, возвращаемому из запроса REST, с помощью WebClient WebFlux.

WebClient был представлен в Spring 5 и может использоваться для асинхронного ввода-вывода при вызове служб RESTful.

2. Вариант использования