Перейти к содержанию

Руководство по созданию объектов в Java

Прежде чем сможем работать с объектом в JVM, его необходимо инициализировать. В следующих разделах рассмотрим различные способы инициализации примитивных типов и объектов. Объявление против инициализации Начнем с того, что убедимся, что мы на одной странице. Объявление – это процесс определения переменной вместе с ее типом и именем. Здесь объявляем переменную id: Инициализация заключается в присвоении …

Spring Cloud — как отключить Discovery Client с помощью профилей

В этой статье рассмотрим, как отключить Discovery Client в Spring Cloud с помощью профилей. Это может быть полезно в ситуациях, когда хотим включить/отключить обнаружение службы без внесения каких-либо изменений в код. Настройка Eureka Server и Eureka Client Начнем с создания Eureka Server и Discovery Client. Во-первых, можно настроить Eureka Server, используя раздел 2 из статьи …

Введение в Spring Cloud Netflix — Eureka

В этой статье рассказывается об обнаружении сервисов на стороне клиента с помощью Spring Cloud Netflix Eureka. Обнаружение сервисов на стороне клиента позволяет сервисам находить друг друга и связываться между собой без жесткой привязки к конкретному хосту и порту. Единственной «фиксированной точкой» в такой архитектуре является реестр сервисов, в котором должен регистрироваться каждый сервис. Одним из …

Введение в Spring Cloud OpenFeign

В этой статье познакомимся со Spring Cloud OpenFeign – декларативным REST-клиентом для приложений Spring Boot. Feign упрощает написание клиентов веб-сервисов благодаря поддержке подключаемых аннотаций, включая аннотации Feign и JAX-RS. Кроме того, Spring Cloud добавляет поддержку аннотаций Spring MVC и использования тех же HttpMessageConverters, что и в Spring Web. Одна из замечательных особенностей использования Feign заключается …

Интеграционные тесты с помощью Spring Cloud Netflix и Feign

В этой статье изучим интеграционное тестирование Feign Client. Создадим базовый Open Feign Client, для которого напишем простой интеграционный тест с помощью WireMock. После этого добавим конфигурацию Ribbon в наш клиент, а также создадим для него интеграционный тест. И, наконец, настроим тестовый контейнер Eureka и протестируем эту настройку, чтобы убедиться, что вся конфигурация работает должным образом. …

Kotlin и JPA

Одной из характеристик Kotlin является совместимость с библиотеками Java. JPA является одной из них. В этом руководстве рассмотрим, как использовать классы Kotlin в качестве сущностей JPA. Зависимости Для простоты будем использовать Hibernate в качестве реализации JPA. Нужно добавить следующие зависимости в проект Maven: Будем использовать встроенную базу данных H2 для запуска тестов: Для Kotlin будем …

Как удалить файл из репозитория Git, не удаляя его локально

Git стал широко используемой распределенной системой контроля версий. В этом руководстве рассмотрим, как удалить файл или каталог из репозитория Git, но сохранить его локальную копию. Введение в проблему Разберемся с проблемой на примере. Допустим, мы работаем над репозиторием Git myRepo: Мы склонировали репозиторий на локальный компьютер, и, как видно из вывода ls, есть три файла …

Миграция Flyway с помощью Spring Boot

В этом статье рассмотрим, что такое Flyway и как его настроить при работе с Spring Boot. Выясним: зачем он вообще нужен в проекте; как быстро настроить Flyway с помощью Spring Boot; как настроить его поведение. Что такое Flyway и какие проблемы он решает Flyway – это инструмент управления версиями базы данных. Точно так же, как …

Файл settings.xml в Maven

При использовании Maven мы сохраняем большую часть конфигурации для конкретного проекта в файле pom.xml. Maven предоставляет файл настроек settings.xml, который позволяет указать, какие локальные и удаленные репозитории он будет использовать. Также можно использовать его для хранения настроек, которые не нужны в исходном коде (например, учетные данные). В этом руководстве узнаем, как использовать файл settings.xml. Рассмотрим …

Наследование в Java

Один из основных принципов объектно-ориентированного программирования – наследование – позволяет повторно использовать существующий код или расширять существующий тип. Проще говоря, в Java класс может наследовать другой класс и несколько интерфейсов, а интерфейс может наследовать другие интерфейсы. В этой статье начнем с необходимости наследования и перейдем к тому, как наследование работает с классами и интерфейсами. Затем …