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

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

В этой статье будет рассмотрен небольшой побочный проект — бот для автоматического твитирования популярных вопросов с различных сайтов вопросов и ответов StackExchange , таких как StackOverflow , ServerFault , SuperUser и т. д . Мы создадим простой клиент для API StackExchange, а затем настроим его. взаимодействие с Twitter API с использованием Spring Social — в этой первой части речь пойдет только о клиенте StackExchange.

Первоначальная цель этой реализации не состоит в том, чтобы быть полноценным клиентом для всего API StackExchange — это выходит за рамки этого проекта. Единственная причина, по которой существует клиент, заключается в том, что я не смог найти тот, который работал бы против версии 2.x официального API.

1. Зависимости Maven

Чтобы использовать StackExchange REST API, нам понадобится очень мало зависимостей — по сути, только HTTP-клиент — Apache HttpClient отлично подойдет для этой цели:

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.3</version>
</dependency>

Spring `` RestTemplate также можно было бы использовать для взаимодействия с HTTP API, но это привело бы к введению в проект довольно большого количества других зависимостей, связанных со Spring, зависимостей, которые не являются строго необходимыми, поэтому HttpClient сделает все легким и простым.

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

1. Обзор

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

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

2. Мавен

Чтобы запустить наш проект, нам сначала нужно добавить необходимые зависимости в наш pom.xml . И поскольку мы работаем с Hibernate, мы собираемся добавить соответствующую зависимость :

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

1. Обзор

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

Отношения «многие ко многим» всегда сложны, но они могут быть более сложными, когда мы хотим получить связанные объекты на основе некоторого свойства самого отношения.

В этом уроке мы рассмотрим, как решить эту проблему, используя аннотацию Hibernate @WhereJoinTable .

2. Базовое отношение @ManyToMany

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

1. Обзор

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

2. расширяет или реализует

Давайте обсудим различия между обоими ключевыми словами.

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

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

1. Обзор

В этой статье мы рассмотрим различия между использованием типов List и ArrayList .

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

2. Использование ArrayList

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

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

1. Обзор

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

2. Подсчет строк набора результатов

Подсчет строк ResultSet не является простым, поскольку ни один метод API не предоставляет эту информацию. Причина этого в том, что запрос JDBC не сразу извлекает все результаты . Результаты строки загружаются из базы данных каждый раз, когда мы запрашиваем их с помощью метода ResultSet.next .

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

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

1. Введение

В этой статье будет представлен обзор того, как зарегистрировать сервлет в Jakarta EE и Spring Boot. В частности, мы рассмотрим два способа регистрации сервлета Java в Jakarta EE — один с использованием файла web.xml , а другой с помощью аннотаций. Затем мы зарегистрируем сервлеты в Spring Boot, используя конфигурацию XML, конфигурацию Java и настраиваемые свойства.

Отличную вводную статью о сервлетах можно найти здесь .

2. Регистрация сервлетов в Jakarta EE

Давайте рассмотрим два способа регистрации сервлета в Jakarta EE. Во-первых, мы можем зарегистрировать сервлет через web.xml . В качестве альтернативы мы можем использовать аннотацию Jakarta EE @WebServlet .

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

1. Обзор

Apache Camel — это мощная среда интеграции с открытым исходным кодом, реализующая ряд известных шаблонов интеграции предприятия .

В этом руководстве мы научимся писать надежные автономные модульные тесты для наших маршрутов Camel .

Во-первых, мы начнем с создания базового приложения Camel с использованием Spring Boot . Затем мы рассмотрим, как мы можем использовать API поддержки тестирования Camel Spring с JUnit 5 для тестирования нашего приложения.

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

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

1. Обзор

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

Хотя Spring Boot поддерживает бесшовную интеграцию с пользовательскими валидаторами, стандартом де-факто для выполнения валидации является Hibernate Validator , эталонная реализация инфраструктуры Bean Validation .

В этом руководстве мы рассмотрим, как проверять объекты домена в Spring Boot .

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

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

1. Обзор

В этом кратком руководстве представлены различные способы определения точки входа в приложение Spring Boot с помощью Maven и Gradle.

Основной класс приложения Spring Boot — это класс, который содержит общедоступный метод static void main() , который запускает Spring ApplicationContext . По умолчанию, если основной класс не указан явно, Spring будет искать его в пути к классам во время компиляции и не запустится, если ни один из них или несколько из них не будут найдены.

В отличие от обычных приложений Java, основной класс, обсуждаемый в этом руководстве, не отображается как свойство метаданных основного класса в META-INF/MANIFEST.MF результирующего файла JAR или WAR.

Spring Boot ожидает, что для свойства метаданных Main-Class артефакта будет установлено значение org.springframework.boot.loader.JarLauncher ** (или WarLauncher ) ** , что означает, что передача нашего основного класса непосредственно в командную строку java не запустит наше приложение Spring Boot правильно.

Примерный манифест выглядит так: