[JAVA] Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern

Ich wollte eine neue einfache App erstellen, um den Betrieb der mit ** Apache Camel ** erstellten App zu überprüfen, aber ich habe das Java-System von Grund auf neu erstellt. Ich weiß nicht, was ich tun soll, weil es fast keine gibt.

Vorerst habe ich gemäß der Erklärung auf der offiziellen Seite eine Kamel-App erstellt, die eine Route enthält, die jede Sekunde protokolliert. Ich werde den Start von Kamel nicht überprüfen, also benutze ** Camel Spring Boot Starter **, das einfach zu machen scheint. Es war.

Umgebung


Projekt vorbereiten

Ich weiß irgendwie, dass pom.xml für maven benötigt wird, aber ich weiß noch nicht, wie ich es schreiben soll. Das einzige, was auf der Kamelseite angezeigt wird, ist, wie die Abhängigkeiten geschrieben werden. Sie müssen also einen äußeren Rahmen vorbereiten.

Ich konnte nicht anders, also habe ich ein neues Projekt mit IDE (IntelliJ IDEA) gemacht.

  1. File → New → Project...
  2. Erster Bildschirm
  3. Wählen Sie "Maven" aus der Liste auf der linken Seite
  4. Das Projekt-SDK bleibt vorerst "1,8"
  5. Lassen Sie "Aus Archetyp erstellen" deaktiviert
    1. 「Next」
  6. Nächster Bildschirm
    1. Name: mycamelapp
  7. Speicherort: Geeignetes neues Verzeichnis
  8. Das Innere der Artefaktkoordinaten bleibt unverändert
    1. 「Finish」

Richten Sie für alle Fälle Git ein und speichern Sie Ihre Arbeit. Ich habe mich für .gitignore entschieden, weil es auf GitHub eine Vorlagensammlung gab.

terminal


cd path/to/app

git init

for kind in Java Maven Global/JetBrains; do
  echo "###--- github/gitignore : ${kind}.gitignore ---###"
  curl https://raw.githubusercontent.com/github/gitignore/master/${kind}.gitignore
  echo
done >> .gitignore

git add .
git commit -m 'Create a Maven project'

pom.xml Fügen Sie Abhängigkeiten gemäß https://camel.apache.org/camel-spring-boot/latest/index.html hinzu. Es dauerte einige Zeit, ohne zu bemerken, dass "Abhängigkeiten" innerhalb und außerhalb des "Abhängigkeitsmanagements" getrennt geschrieben werden mussten.

Das Ganze ist wie folgt.

pom.xml (mycamelapp)


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.example</groupId>
	<artifactId>mycamelapp</artifactId>
	<version>1.0-SNAPSHOT</version>

	<!-- https://camel.apache.org/camel-spring-boot/latest/index.html -->
	<dependencyManagement>
		<dependencies>
			<!-- Camel BOM -->
			<dependency>
				<groupId>org.apache.camel.springboot</groupId>
				<artifactId>camel-spring-boot-dependencies</artifactId>
				<version>3.2.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- ... other BOMs or dependencies ... -->
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<!-- Camel Starter -->
		<dependency>
			<groupId>org.apache.camel.springboot</groupId>
			<artifactId>camel-spring-boot-starter</artifactId>
		</dependency>
		<!-- ... other dependencies ... -->
	</dependencies>
</project>

ActiveMQ wird als Beispiel für die Komponente eingeführt, die anderen Abhängigkeiten hinzugefügt werden soll. Ich überspringe sie jedoch, da ich nicht vorhabe, sie zu verwenden.

Routendefinition

Ich habe hier in der zu wartenden App viele Beispiele gesehen, daher habe ich persönlich keine Zweifel. https://camel.apache.org/camel-spring-boot/latest/spring-boot.html#SpringBoot-Camel Definieren Sie eine kurze Route bei SpringBootStarter.

terminal


cd path/to/app

mkdir -p src/main/java/org/example/mycamelapp/routes
touch    src/main/java/org/example/mycamelapp/routes/SampleTimerRoute.java

src/main/java/org/example/mycamelapp/routes/SampleTimerRoute.java


package org.example.mycamelapp.routes;

import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;

@Component
public class SampleTimerRoute extends RouteBuilder {

	@Override
	public void configure() throws Exception {
		from("timer:foo").to("log:bar");
	}
}

Was ist eine Route?

Grob gesagt ** Pipeline **. Stellen Sie sich die [Stream-API] von Java 8 vor (https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/package-summary.html), aber der Fluss geht weiter. Ich schreibe in DSL, wie man die eingehenden Daten verarbeitet.

Spring Boot-Einstellungen

Ich konnte es nicht in der Dokumentation von camel finden, aber es scheint, dass ich den Startpunkt der App schreiben muss. Wenn Sie es schreiben, wird die Markierung "Ausführen" in der entsprechenden Zeile in der IDE angezeigt.

src/main/java/org/example/mycamelapp/MyCamelApplication.java


package org.example.mycamelapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyCamelApplication {

	public static void main(String[] args) {
		SpringApplication.run(MyCamelApplication.class, args);
	}
}

Verhindern Sie, dass die App sofort nach dem Start geschlossen wird. Es scheint, dass Sie hier nur Parameter angeben müssen, also schreiben Sie es in yaml (möglicherweise Eigenschaften).

src/main/resources/application.yml


# to keep the JVM running
camel:
  springboot:
    main-run-controller: true

Anlaufen

Auf der IDE können Sie sie sofort starten, indem Sie auf die oben erwähnte Schaltfläche "Ausführen" klicken.


Wenn Sie es mit dem Befehl maven starten, fügen Sie die Einstellungen zu pom.xml hinzu.

pom.xml&#x20;(mycamelapp)


...
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>2.2.6.RELEASE</version>
			</plugin>
		</plugins>
	</build>
...

terminal


cd path/to/app

mvn spring-boot:run

Referenz

Recommended Posts

Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern
Erstellen Sie mit Spring Boot eine einfache Such-App
Java-Anfänger haben versucht, mit Spring Boot eine einfache Webanwendung zu erstellen
Beispiel für Batch-Prozessdaten in der Datenbank mit Apache Camel Spring Boot-Startern
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
[Einführung in Spring Boot] Senden Sie ein Formular mit thymeleaf
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Hallo Welt (Konsolen-App) mit Apache Camel + Spring Boot 2
Ich habe mit Spring Boot ein einfaches MVC-Beispielsystem erstellt
Erstellen Sie eine App mit Spring Boot 2
Erstellen Sie eine App mit Spring Boot
Versuchen Sie, eine Server-Client-App zu erstellen
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
So erstellen Sie mit SPRING INITIALIZR einen Hinadan für ein Spring Boot-Projekt
Erstellen Sie eine Spring Boot-Webanwendung, die IBM Cloudant verwendet, und stellen Sie sie in Cloud Foundry bereit
Erstellen Sie mit dem Befehl cURL + tar ein Spring Boot-App-Entwicklungsprojekt
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
Ich habe versucht, eine LINE-Klon-App zu erstellen
So fügen Sie in Spring Boot einen Klassenpfad hinzu
So erstellen Sie ein Excel-Formular mithilfe einer Vorlagendatei mit Spring MVC
Wenden Sie Twitter Bootstrap 4 mithilfe von Webjars auf Spring Boot 2 an
Erstellen Sie einen Web-API-Server mit Spring Boot
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Vom Aufbau einer AWS-Cloud-Umgebung bis zur Bereitstellung einer Spring Boot-App (für Anfänger)
Bis Sie ein Spring Boot-Projekt in Intellij erstellen und an Github senden
Erstellen Sie eine Web-App, die genau zum Lernen geeignet ist [Spring Boot + Thymeleaf + PostgreSQL]
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
So schreiben Sie einen Komponententest für Spring Boot 2
Hallo Welt (REST API) mit Apache Camel + Spring Boot 2
Ein Memorandum über die Sucht nach Spring Boot2 x Doma2
[JUnit 5-kompatibel] Schreiben Sie einen Test mit JUnit 5 mit Spring Boot 2.2, 2.3
Ein Memorandum beim Versuch, eine GUI mit JavaFX zu erstellen
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
Erstellen Sie Restapi mit Spring Boot (bis zum Ausführen der App)
Erforderliche Schritte zum Ausgeben von asynchronen Spring Boot-Ereignissen
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Stellen Sie Spring Boot-Anwendungen für Heroku bereit, ohne die Heroku-CLI zu verwenden
So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
[Java] Stellen Sie die Spring Boot-Anwendung für den Azure App Service bereit
Erstellen Sie eine Hello World-Webanwendung mit Spring Framework + Jetty
Erstellen wir eine einfache API mit EC2 + RDS + Spring Boot ①
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
8 Dinge, die mit Spring Boot und JPA in die DB eingefügt werden müssen
Implementieren Sie eine einfache Rest-API mit Spring Security & JWT mit Spring Boot 2.0
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
Versuchen Sie Spring Boot von 0 bis 100.
Einführung in Spring Boot ~ ~ DI ~
Einführung in Spring Boot ② ~ AOP ~
Erstellen Sie eine Lotterie mit Ruby
Einführung in Spring Boot Teil 1
Versuchen Sie es mit Spring Boot Security
So erstellen Sie eine Methode
Implementieren Sie einen einfachen Web-REST-API-Server mit Spring Boot + MySQL
So erstellen Sie eine JAR-Datei und eine War-Datei mit dem Befehl jar
Erstellen Sie eine Memo-App mit Tomcat + JSP + Servlet + MySQL mit Eclipse
Ich habe versucht, eine Spring MVC-Entwicklungsumgebung auf einem Mac zu erstellen