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.
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.
mycamelapp
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.
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");
}
}
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.
from (uri)
ist die Dateneingabe.to (uri)
ist das Datenziel.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
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 (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