Тестирование является очень важной составляющей процесса разработки программного обеспечения, ведь при помощи тестов можно заранее проверить корректность работы написанного кода, не дожидаясь гневных отзывов от пользователей и заказчиков из-за ошибок, допущенных при разработке. Конечно во многих случаях проверить написанный код можно вручную, однако лучше всё же пользоваться средствами автоматизированного тестирования, так как такое тестирование позволяет проверить не только новый код, но и убедиться в том, что ранее написанный код работает без ошибок.
Читать далее Spring по верхам: тестирование REST сервисаМетка: Java EE
Серверы приложений в эру микросервисов и облаков
Лет десять назад, когда я начинал заниматься разработкой на Java, подавляющее большинство корпоративных проектов разворачивалось в сервлет-контейнерах, серверах приложений и OSGi-контейнерах. Справедливости ради стоит отметить, что микросервисная архитектура уже тогда будоражила умы разработчиков, а Java EE, Spring и другие фреймворки предоставляли хороший инструментарий для разработки проектов с микросервисной архитектурой. И такие проекты точно так же разворачивались в серверах приложений.
Читать далее Серверы приложений в эру микросервисов и облаковОтправка SSE из JMS при помощи Spring WebFlux
Когда речь заходит о необходимости отправки сообщений клиенту от сервера по HTTP, варианты решения, как правило, ограничиваются использованием вебсокетов или событий отправляемых сервером (Server-sent Events, SSE). Если требуется отправить клиенту сообщение из JMS, то обычно реализация этой задачи сводится к использованию STOMP через вебсокеты, как это описано в официальной документации Spring Framework.
Читать далее Отправка SSE из JMS при помощи Spring WebFluxREST API с использованием Spring
Spring Framework WebMVC позволяет разрабатывать не только классические веб-приложения, но и реализовывать REST API. В этой статье я опишу процесс разработки REST API простого проекта на Java с использованием Spring Boot и Spring Framework.
Читать далее REST API с использованием SpringУскоряем Spring Boot: Автоконфигурации
Автоконфигурации в Spring Boot содержат большое количество заранее сконфигурированных компонентов, которые вы можете использовать либо без дополнительного конфигурирования, либо с указанием минимальных настроек вроде информации об адресах используемых сервисов, именах пользователей и паролях.
Читать далее Ускоряем Spring Boot: АвтоконфигурацииSpring Framework: Functional Bean Registration
Functional bean registration is a feature that was added to Spring Framework 5. This feature allows to create and register beans in the application context without use of reflection API and also can boost up application startup time.
Читать далее Spring Framework: Functional Bean RegistrationSpring Framework: Функциональная регистрация компонентов
В Spring Framework 5 была добавлена возможность функциональной регистрации компонентов (бинов) в контексте приложения.
Читать далее Spring Framework: Функциональная регистрация компонентовXML-конфигурация Bean Validation
Компоненты Bean Validation могут быть сконфигурированы при помощи XML-файлов. Такой подход может быть удобен, когда требуется добавить валидацию классов, недоступных для изменения, либо в тех случаях, когда хочется избежать появления сторонних зависимостей в коде. Основной XML-файл конфигурации — META-INF/validation.xml, в нём находятся основные настройки Bean Validation.
Валидация данных при помощи Bean Validation API
Для валидации данных в Java EE существует Bean Validation. Первая версия данного набора API была специфицирована в JSR-303 и опубликована как часть Java EE 6. Текущая версия — 2.0, является частью Java EE 8 и описана в JSR-380. Эталонной реализацией Bean Validation является Hibernate Validator. Bean Validation может использоваться не только в классических приложениях на основе Java EE, но и в приложениях на основе Spring, и даже в приложениях, не имеющих отношения к Java EE.
Читать далее Валидация данных при помощи Bean Validation APISOLID на практике — Принцип подстановки Барбары Лисков
Принцип подстановки [Барбары] Лисков (Liskov Substitution Principle — LSP, буква L в аббревиатуре SOLID), сформулирован Барбарой Лисков в 1987 году и звучит следующим образом:
Пусть q(x) является свойством, верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.
Упрощенное описание этого принципа предложил Роберт Мартин:
Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом.
Иными словами, поведение реализующих и наследующих классов не должно противоречить поведению базовых типов.
Читать далее SOLID на практике — Принцип подстановки Барбары Лисков