[JAVA] Étapes pour créer une application chameau simple avec les démarreurs Apache Camel Spring Boot

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.

environnement


Préparer le projet

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).

  1. File → New → Project...
  2. Premier écran
  3. Sélectionnez «Maven» dans la liste de gauche
  4. Le SDK du projet reste "1.8" pour le moment
  5. Ne cochez pas Créer à partir de l'archétype
    1. 「Next」
  6. Écran suivant
    1. Name: mycamelapp
  7. Emplacement: nouveau répertoire approprié
  8. L'intérieur des coordonnées d'artefact reste tel quel
    1. 「Finish」

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.

définition d'itinéraire

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");
	}
}

Qu'est-ce qu'un itinéraire?

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.

Paramètres de Spring Boot

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

Commencez

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&#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

référence

Recommended Posts

Étapes pour créer une application chameau simple avec les démarreurs Apache Camel Spring Boot
Créez une application de recherche simple avec Spring Boot
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
Exemple de traitement par lots de données sur DB avec des démarreurs Apache Camel Spring Boot
Comment créer un projet Spring Boot dans IntelliJ
[Spring Boot] Comment créer un projet (pour les débutants)
[Introduction à Spring Boot] Soumettez un formulaire à l'aide de thymeleaf
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
Hello World (application console) avec Apache Camel + Spring Boot 2
J'ai créé un système d'exemple MVC simple à l'aide de Spring Boot
Créez une application avec Spring Boot 2
Créez une application avec Spring Boot
Essayez de créer une application client serveur
J'ai essayé de créer une application cartographique simple dans Android Studio
Comment créer un hinadan pour un projet Spring Boot à l'aide de SPRING INITIALIZR
Créez une application Web Spring Boot qui utilise IBM Cloudant et déployez-la sur Cloud Foundry
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
J'ai essayé de créer une application de clonage LINE
Comment ajouter un chemin de classe dans Spring Boot
Comment créer un formulaire Excel à l'aide d'un fichier modèle avec Spring MVC
Appliquer Twitter Bootstrap 4 à Spring Boot 2 à l'aide de Webjars
Créer un serveur API Web avec Spring Boot
Créer un environnement de développement Spring Boot avec docker
De la création d'un environnement cloud AWS au déploiement d'une application Spring Boot (pour les débutants)
Jusqu'à ce que vous créiez un projet Spring Boot dans Intellij et que vous le transmettiez à Github
Créez une application Web parfaitement adaptée à l'apprentissage [Spring Boot + Thymeleaf + PostgreSQL]
Créer une image docker pour exécuter une application Java simple
Comment écrire un test unitaire pour Spring Boot 2
Hello World (API REST) avec Apache Camel + Spring Boot 2
Un mémorandum de dépendance à Spring Boot2 x Doma2
[Compatible JUnit 5] Ecrire un test en utilisant JUnit 5 avec Spring boot 2.2, 2.3
Un mémorandum lors de la tentative de création d'une interface graphique à l'aide de JavaFX
Implémentez une API Rest simple avec Spring Security avec Spring Boot 2.0
Créer Restapi avec Spring Boot (jusqu'à l'exécution de l'application)
Étapes requises pour émettre des événements asynchrones Spring Boot
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Déployez des applications Spring Boot sur Heroku sans utiliser la CLI Heroku
Comment déployer une application Java Servlet simple sur Heroku
[Java] Déployer l'application Spring Boot sur Azure App Service
Créez une application Web Hello World avec Spring Framework + Jetty
Faisons une API simple avec EC2 + RDS + Spring boot ①
Que faire si le journal utilisant JUL n'est plus sorti dans le journal de l'application après le déploiement de l'application Spring Boot sur Tomcat en tant que guerre
J'ai essayé de démarrer avec Swagger en utilisant Spring Boot
8 choses à insérer dans DB en utilisant Spring Boot et JPA
Implémentez une API Rest simple avec Spring Security & JWT avec Spring Boot 2.0
Comment contrôler les transactions dans Spring Boot sans utiliser @Transactional
Essayez Spring Boot de 0 à 100.
Introduction à Spring Boot ① ~ DI ~
Introduction à Spring Boot ② ~ AOP ~
Créer une loterie avec Ruby
Introduction à Spring Boot, partie 1
Essayez d'utiliser Spring Boot Security
Comment créer une méthode
Implémentez un serveur API Web REST simple avec Spring Boot + MySQL
Comment créer un fichier jar et un fichier war à l'aide de la commande jar
Créez une application mémo avec Tomcat + JSP + Servlet + MySQL à l'aide d'Eclipse
J'ai essayé de créer un environnement de développement Spring MVC sur Mac