Používanie Apache Camel s pružinou

1. Prehľad

V tomto článku si ukážeme, ako nakonfigurovať a používať server Apache Camel s programom Spring.

Apache Camel poskytuje pomerne veľa užitočných komponentov, ktoré podporujú knižnice ako JPA, Hibernate, FTP, Apache-CXF, AWS-S3 a samozrejme mnoho ďalších - to všetko pomáha pri integrácii údajov medzi dvoma rôznymi systémami.

Napríklad pomocou komponentov Hibernate a Apache CXF môžete načítať údaje z databázy a odoslať ich do iného systému prostredníctvom hovorov REST API.

V tomto výučbe si ukážeme jednoduchý príklad Camel - čítanie súboru a konverziu jeho obsahu na veľké a potom späť na malé písmená. Budeme používať komponent Camel's File a Spring 4.2.

Tu sú všetky podrobnosti príkladu:

  1. Čítať súbor zo zdrojového adresára
  2. Preveďte obsah súboru na veľké písmená pomocou vlastného procesora
  3. Zápis prevedeného výstupu do cieľového adresára
  4. Preveďte obsah súborov na malé písmená pomocou aplikácie Camel Translator
  5. Zápis prevedeného výstupu do cieľového adresára

2. Pridajte závislosti

Ak chcete používať Apache Camel s jarom, budete v súbore POM potrebovať nasledujúce závislosti:

 2.16.1 4.2.4.RELEASE org.apache.camel camel-core $ {env.camel.version} org.apache.camel camel-spring $ {env.camel.version} org.apache.camel camel-stream $ { env.camel.version} org.springframework jarny kontext $ {env.spring.version} 

Takže máme:

  • ťavie jadro - hlavná závislosť pre Apache Camel
  • ťava-jar - umožňuje nám používať ťavu s pružinou
  • ťava-prúd - voliteľná závislosť, ktorú môžete použiť (napríklad) na zobrazenie niektorých správ na konzole počas behu trás
  • jarný kontext - štandardná jarná závislosť, ktorá sa v našom prípade vyžaduje, pretože budeme prevádzkovať ťavské trasy v jarnom kontexte

3. Kontext jarnej ťavy

Najskôr vytvoríme súbor Spring Config, kde budeme neskôr definovať naše ťavie trasy.

Všimnite si, ako súbor obsahuje všetky požadované menné priestory Apache Camel a Spring a umiestnenia schém:

The element predstavuje (neprekvapivo) kontext Camel, ktorý je možné porovnať s kontextom jarných aplikácií. Teraz je váš kontextový súbor pripravený začať definovať trasy ťavy.

3.1. Camel Route s vlastným procesorom

Ďalej napíšeme našu prvú cestu na prevod obsahu súboru na veľké písmená.

Musíme definovať zdroj, z ktorého bude trasa čítať údaje. Môže to byť databáza, súbor, konzola alebo ľubovoľný počet ďalších zdrojov. V našom prípade to bude súbor.

Potom musíme definovať procesor údajov, ktoré sa budú čítať zo zdroja. V tomto príklade napíšeme vlastnú triedu procesora. Táto trieda bude jarná fazuľa, ktorá bude implementovať štandardné rozhranie Camel Processor Interface.

Po spracovaní údajov musíme povedať cestu, kam nasmerovať spracované údaje. Môže to byť opäť jeden z najrôznejších výstupov, napríklad databáza, súbor alebo konzola. V našom prípade to uložíme do súboru.

Ak chcete nastaviť tieto kroky vrátane vstupu, procesora a výstupu, pridajte do kontextového súboru Camel nasledujúcu cestu:

Ďalej musíme definovať myFileProcessor fazuľa:

3.2. Vlastný veľký procesor

Teraz musíme vytvoriť vlastný procesor súborov, ktorý sme definovali v našom fazule. Musí implementovať ťavu procesor jedno rozhranie procesu metóda, ktorá vyžaduje Výmena objekt ako jeho vstup. Tento objekt poskytuje podrobnosti o údajoch zo vstupného zdroja.

Naša metóda musí prečítať správu z Výmena, napíšte veľké písmená a potom tento nový obsah vráťte späť do priečinka Výmena objekt:

public class FileProcessor implementuje Processor {public void process (Exchange exchange) throws Exception {String originalFileContent = (String) exchange.getIn (). getBody (String.class); Reťazec upperCaseFileContent = originalFileContent.toUpperCase (); exchange.getIn (). setBody (upperCaseFileContent); }}

Táto procesná metóda sa vykoná pre každý vstup prijatý zo zdroja.

3.3. Malý procesor

Teraz pridáme ďalší výstup na našu cestu s ťavami. Tentokrát prevedieme údaje rovnakého vstupného súboru na malé písmená. Tentokrát však nebudeme používať vlastný procesor; použijeme funkciu Prekladača správ Apache Camel. Toto je aktualizovaná trasa ťavy:

     $ {body.toLowerCase ()} 

4. Spustenie aplikácie

Aby sme mohli spracovať naše trasy, musíme jednoducho načítať kontextový súbor Camel do kontextu aplikácie Spring:

ClassPathXmlApplicationContext applicationContext = nový ClassPathXmlApplicationContext ("camel-context.xml"); 

Po úspešnom spustení trasy sa vytvoria dva súbory: jeden s veľkým písmom a druhý s malým písmom.

5. Záver

Ak pracujete na integrácii, Apache Camel vám môže veci určite uľahčiť. Knižnica poskytuje komponenty typu plug-and-play, ktoré vám pomôžu znížiť štandardný kód a zamerať sa na hlavnú logiku spracovania údajov.

A ak chcete podrobne preskúmať koncepty vzorov podnikovej integrácie, mali by ste sa pozrieť na túto knihu, ktorú napísali Gregor Hohpe a Bobby Woolf, ktorí koncepcie EIP pojímajú veľmi čisto.

Príklad popísaný v tomto článku je k dispozícii v projekte na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found