Java >> Java Tutorial >  >> Tag >> Spring

Spring Batch Tutorial:Abrufen der erforderlichen Abhängigkeiten mit Maven

Der erste Teil meines Spring Batch-Tutorials erklärte, warum Sie Spring Batch verwenden sollten, anstatt Ihre eigenen Batch-Jobs zu schreiben, und identifizierte die grundlegenden Bausteine ​​eines Spring Batch-Jobs. Bevor Sie fortfahren und Spring Batch in Aktion sehen können, müssen Sie die erforderlichen Abhängigkeiten abrufen.

Nachdem Sie diesen Blogbeitrag gelesen haben, werden Sie:

  • Kann die von Spring Batch bereitgestellten Module identifizieren.
  • Kann die erforderlichen Abhängigkeiten auflisten, wenn Sie Spring Framework oder Spring Boot verwenden.
  • Wissen Sie, wie Sie die erforderlichen Abhängigkeiten mit Maven erhalten.

Beginnen wir mit einem Blick auf die von Spring Batch bereitgestellten Module.

Einführung in die Module von Spring Batch

Spring Batch bietet die folgenden Module:

  • Der spring-batch-infrastructure -Modul enthält die allgemeinen Lese- und Schreibfunktionen und stellt Dienste für Anwendungsentwickler und das Kernmodul bereit.
  • Die spring-batch-core -Modul enthält die Klassen, die zum Starten und Steuern von Spring Batch-Jobs erforderlich sind.
  • Die spring-batch-test -Modul bietet Unterstützung für das Schreiben automatisierter Tests für Spring Batch-Jobs.
  • Die spring-batch-integration Modul hilft Ihnen, Spring Batch mit Spring Integration zu integrieren.

Als Nächstes erfahren Sie, wie Sie die erforderlichen Abhängigkeiten erhalten, wenn Sie eine "alte" Spring-Anwendung schreiben.

Beziehen der Abhängigkeiten einer "alten" Spring-Anwendung

Wenn Sie Spring Batch-Jobs mit Spring Framework schreiben, müssen Sie die folgenden Abhängigkeiten abrufen:

  • Da Spring Batch die Auftrags- und Schrittausführungsmetadaten (auch bekannt als Protokolle) in die Datenbank schreibt, benötigen Sie einen JDBC-Treiber wodurch Ihre Anwendung mit der verwendeten Datenbank kommunizieren kann. Sie sollten die In-Memory-Datenbank von H2 verwenden, da Ihre Beispielanwendung damit einfach ausgeführt werden kann. Außerdem benötigen Sie diese Abhängigkeit nur, wenn Ihre Anwendung ausgeführt wird, und deshalb müssen Sie den runtime verwenden Gültigkeitsbereich, wenn Sie diese Abhängigkeit deklarieren.
  • Liquibase . Sie sollten Liquibase in Spring Framework integrieren und sicherstellen, dass es die Datenbanktabellen erstellt, die die Job- und Step-Ausführungsmetadaten enthalten, wenn der Spring-Container gestartet wird.
  • Die Datenquelle bietet Datenbankverbindungen zu Ihrer Anwendung. Sie sollten die HikariCP-Datenquelle verwenden, da sie die schnellste Datenquelle auf diesem Planeten ist.
  • Spring Batch Core enthält die Klassen, die zum Starten und Steuern von Spring Batch-Jobs erforderlich sind. Außerdem enthält es den spring-batch-infrastructure Modul.

Wenn Sie eine "ältere" Spring-Anwendung schreiben, können Sie die erforderlichen Abhängigkeiten mit einer dieser beiden Optionen abrufen:

  1. Sie können die Abhängigkeitsversionen mithilfe der Abhängigkeitsverwaltung von Spring Boot verwalten.
  2. Sie können die herkömmliche Methode verwenden und die Abhängigkeitsversionen manuell verwalten.

Lassen Sie uns herausfinden, wie Sie die erforderlichen Abhängigkeiten erhalten, wenn Sie die Abhängigkeitsverwaltung von Spring Boot verwenden.

Verwendung der Abhängigkeitsverwaltung von Spring Boot

Sie können die erforderlichen Abhängigkeiten erhalten, indem Sie diesen Schritten folgen:

Zuerst müssen Sie das übergeordnete POM Ihres Maven-Projekts konfigurieren. Spring Boot hat einen Starter namens spring-boot-starter-parent das Abhängigkeits- und Plugin-Management für Maven-Projekte bereitstellt. Wenn Sie das Abhängigkeitsmanagement von Spring Boot verwenden möchten, müssen Sie diesen Starter als übergeordnetes Element Ihres Maven-Projekts festlegen. Sie können dies tun, indem Sie Ihrer POM-Datei den folgenden XML-Code hinzufügen:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
</parent>

Zweiter müssen Sie sich, nachdem Sie das übergeordnete POM Ihres Maven-Projekts konfiguriert haben, keine Gedanken über Abhängigkeitsversionen machen, da diese vom übergeordneten POM geerbt werden. Das bedeutet, dass Sie die erforderlichen Abhängigkeiten erhalten können, indem Sie den folgenden XML-Code zu dependencies hinzufügen Abschnitt Ihrer POM-Datei:

<!-- Database -->
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

<!-- Liquibase -->
<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
</dependency>
        
<!-- DataSource -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
</dependency>

<!-- Spring Batch -->
<dependency>
    <groupId>org.springframework.batch</groupId>
    <artifactId>spring-batch-core</artifactId>
</dependency>

Als Nächstes erfahren Sie, wie Sie Ihre Abhängigkeitsversionen manuell verwalten können.

Traditionell

Wenn Sie den traditionellen Weg verwenden möchten, müssen Sie Ihre Abhängigkeitsversionen "manuell" verwalten. Mit anderen Worten, Sie müssen die Versionen aller Abhängigkeiten angeben. Sie können dies tun, indem Sie die folgenden Abhängigkeitsdeklarationen zu dependencies hinzufügen Abschnitt Ihrer pom.xml Datei:

<!-- Database -->
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.200</version>
    <scope>runtime</scope>
</dependency>

<!-- Liquibase -->
<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <version>3.8.9</version>
</dependency>

<!-- DataSource -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.4.5</version>
</dependency>

<!-- Spring Batch -->
<dependency>
    <groupId>org.springframework.batch</groupId>
    <artifactId>spring-batch-core</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>

Sie können jetzt die erforderlichen Abhängigkeiten abrufen, wenn Sie mit einer "alten" Spring-Anwendung arbeiten. Lassen Sie uns weitermachen und herausfinden, wie Sie die erforderlichen Abhängigkeiten erhalten, wenn Sie Spring Boot verwenden.

Beziehen der Abhängigkeiten einer Spring Boot-Anwendung

Sie können die erforderlichen Abhängigkeiten erhalten, indem Sie diesen Schritten folgen:

Zuerst müssen Sie das übergeordnete POM Ihres Maven-Projekts konfigurieren. Wenn Sie eine Spring Boot-Anwendung schreiben, müssen Sie den spring-boot-starter-parent festlegen als übergeordnetes Element Ihres Maven-Projekts. Sie können dies tun, indem Sie Ihrer POM-Datei den folgenden XML-Code hinzufügen:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
</parent>

Zweiter , müssen Sie die erforderlichen Abhängigkeiten konfigurieren. Wenn Sie diese Abhängigkeiten konfigurieren, können Sie die Abhängigkeitsversionen ignorieren, da sie vom übergeordneten POM geerbt werden. Bevor Sie Spring Batch in einer Spring Boot-Anwendung verwenden können, müssen Sie die folgenden Abhängigkeiten abrufen:

  • Da Spring Batch die Auftrags- und Schrittausführungsmetadaten (auch bekannt als Protokolle) in die Datenbank schreibt, benötigen Sie einen JDBC-Treiber wodurch Ihre Anwendung mit der verwendeten Datenbank kommunizieren kann. Sie sollten die In-Memory-Datenbank von H2 verwenden, da Ihre Beispielanwendung damit einfach ausgeführt werden kann. Außerdem benötigen Sie diese Abhängigkeit nur, wenn Ihre Anwendung ausgeführt wird, und deshalb müssen Sie den runtime verwenden Gültigkeitsbereich, wenn Sie diese Abhängigkeit deklarieren.
  • Liquibase . Sie sollten Liquibase in Spring Boot integrieren und sicherstellen, dass es die Datenbanktabellen erstellt, die die Job- und Step-Ausführungsmetadaten enthalten, wenn der Spring-Container gestartet wird. Da Sie diese Abhängigkeit nur benötigen, wenn Ihre Anwendung ausgeführt wird, müssen Sie den runtime verwenden Gültigkeitsbereich, wenn Sie diese Abhängigkeit deklarieren.
  • Die spring-boot-starter-batch Abhängigkeit stellt die Abhängigkeiten bereit, die von Spring Batch benötigt werden.
  • Die spring-boot-starter-jdbc Abhängigkeit ist ein Starter, der die Abhängigkeiten bereitstellt, die es Ihnen ermöglichen, JDBC- und HikariCP-Datenquellen in Ihrer Spring Boot-Anwendung zu verwenden.

Sie können diese Abhängigkeiten erhalten, indem Sie die folgenden Abhängigkeitsdeklarationen zu dependencies hinzufügen Abschnitt Ihrer pom.xml Datei:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

Sie können jetzt die erforderlichen Abhängigkeiten abrufen, wenn Sie Spring Boot verwenden. Fassen wir zusammen, was Sie aus diesem Blogbeitrag gelernt haben.

Zusammenfassung

Dieser Blogbeitrag hat Ihnen fünf Dinge beigebracht:

  • Da Spring Batch die Job- und Step-Ausführungsmetadaten in eine Datenbank schreibt, benötigen Sie einen JDBC-Treiber, der es Ihrer Anwendung ermöglicht, mit der verwendeten Datenbank zu kommunizieren.
  • Da Sie mit einer relationalen Datenbank kommunizieren möchten, benötigen Sie eine Datenquelle, mit der Sie Datenbankverbindungen herstellen können.
  • Da Spring Batch die Auftrags- und Schrittausführungsmetadaten in eine Datenbank schreibt, müssen Sie die erforderlichen Datenbanktabellen erstellen, bevor Spring Batch versucht, Daten in diese Tabellen einzufügen. Zu diesem Zweck können Sie Liquibase (oder Flyway) verwenden.
  • Wenn Sie mit einer "alten" Spring-Anwendung arbeiten, müssen Sie spring-batch-core deklarieren Abhängigkeit in Ihrer POM-Datei.
  • Wenn Sie Spring Boot verwenden, müssen Sie den spring-boot-starter-batch deklarieren Abhängigkeit in Ihrer POM-Datei.

Der nächste Teil dieses Tutorials beschreibt, wie Sie mit Gradle die erforderlichen Abhängigkeiten erhalten.


Java-Tag