Je voulais créer une nouvelle application simple pour vérifier le fonctionnement de l'application réalisée avec ** Apache Camel **, mais j'ai créé le système Java à partir de zéro. Je ne sais pas quoi faire car il n'y en a presque pas.
Pour le moment, en suivant l'explication sur la page officielle, j'ai créé une application chameau qui a un itinéraire qui se connecte toutes les secondes. Je ne vérifierai pas le démarrage de camel, alors utilisez ** Camel Spring Boot starters ** qui semble facile à faire. C'était.
Je sais en quelque sorte que pom.xml
est nécessaire pour maven, mais je ne sais pas comment l'écrire à ce stade. La seule chose sur la page chameau est de savoir comment écrire les dépendances, vous devez donc préparer un cadre extérieur.
Je n'ai pas pu m'en empêcher, j'ai donc réalisé un nouveau projet avec IDE (IntelliJ IDEA).
mycamelapp
Au cas où, configurez Git et enregistrez votre travail. J'ai décidé d'utiliser .gitignore
car il y avait une collection de modèles sur GitHub.
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 Ajoutez des dépendances selon https://camel.apache.org/camel-spring-boot/latest/index.html. Il a fallu du temps sans se rendre compte que les «dépendances» devaient être écrites séparément à l'intérieur et à l'extérieur de «dependencyManagement».
L'ensemble est le suivant.
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 est présenté comme un exemple du composant à ajouter à d'autres dépendances, mais je l'ignore car je ne prévois pas de l'utiliser.
J'ai vu beaucoup d'exemples ici dans l'application en cours de maintenance, donc je n'ai aucun doute personnellement. https://camel.apache.org/camel-spring-boot/latest/spring-boot.html#SpringBoot-Camel Définissez un itinéraire court sur 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");
}
}
En gros, ** pipeline **. Imaginez [Stream API] de Java 8 (https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/package-summary.html), mais le flux continue. J'écris en DSL comment traiter les données entrantes.
from (uri)
est l'entrée de données.timer
ou interroger le fichier avec file
.to (uri)
est la destination des données.sql
pour faire une requête à la base de données ou http
pour faire une requête HTTP.Je n'ai pas pu le trouver dans la documentation de camel, mais il semble que je doive écrire le point de départ de l'application. Lorsque vous l'écrivez, la marque "Exécuter" s'affiche sur la ligne correspondante dans l'EDI.
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);
}
}
Empêchez l'application de se fermer immédiatement après son lancement. Il semble que vous n'ayez besoin que de donner des paramètres ici, alors écrivez-les en yaml (peut-être des propriétés).
src/main/resources/application.yml
# to keep the JVM running
camel:
springboot:
main-run-controller: true
Sur l'IDE, vous pouvez le démarrer immédiatement en appuyant sur le bouton "Exécuter" mentionné ci-dessus.
Si vous le lancez avec la commande maven, ajoutez les paramètres à pom.xml.
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
Recommended Posts