Apache teve használata tavasszal

1. Áttekintés

Ez a cikk bemutatja, hogyan konfigurálható és használható az Apache Camel Spring alkalmazással.

Az Apache Camel nagyon sok hasznos komponenst kínál, amelyek támogatják az olyan könyvtárakat, mint a JPA, a Hibernate, az FTP, az Apache-CXF, az AWS-S3 és természetesen sok más - mindezek segítenek az adatok két különböző rendszer közötti integrálásában.

Például a Hibernate és az Apache CXF összetevők használatával adatokat gyűjthet egy adatbázisból, és REST API-hívásokon keresztül elküldheti őket egy másik rendszernek.

Ebben az oktatóanyagban áttekintünk egy egyszerű Camel példát - egy fájl elolvasása és tartalmának konvertálása nagybetűvé, majd vissza kisbetűvé. A Camel's File komponenst és a Spring 4.2-et fogjuk használni.

Íme a példa teljes részlete:

  1. Fájl olvasása a forráskönyvtárból
  2. Konvertálja a fájl tartalmát nagybetűvé egy egyedi processzor segítségével
  3. Írja az átalakított kimenetet egy célkönyvtárba
  4. Konvertálja a fájl tartalmát kisbetűvé a Camel Translator segítségével
  5. Írja az átalakított kimenetet egy célkönyvtárba

2. Add hozzá a Függőségeket

Az Apache Camel Spring használatához a következő függőségekre lesz szükség a POM fájlban:

 2.16.1 4.2.4. env.camel.version} org.springframework spring-context $ {env.spring.version} 

Tehát:

  • tevemag - az Apache Camel fő függősége
  • teve-rugó - lehetővé teszi számunkra, hogy a tevét a tavasszal használjuk
  • teve-patak - opcionális függőség, amelyet használhat (például) egyes üzenetek megjelenítéséhez a konzolon, miközben az útvonalak futnak
  • tavaszi kontextus - a szokásos tavaszi függőség, amely a mi esetünkben szükséges, mivel tavaszi viszonylatban fogunk teveútvonalakat futni

3. Tavaszi teve kontextus

Először létrehozzuk a Spring Config fájlt, ahol később meghatározzuk a teve útvonalainkat.

Figyelje meg, hogy a fájl tartalmazza az összes szükséges Apache Camel és Spring névteret és séma helyet:

A elem (nem meglepő módon) a teve kontextust képviseli, amely összehasonlítható egy tavaszi alkalmazás kontextussal. Most a helyi fájl készen áll a teve útvonalak meghatározására.

3.1. Teve útvonal egyedi processzorral

Ezután megírjuk az első útvonalat a fájltartalom nagybetűvé konvertálásához.

Meg kell határoznunk egy forrást, amelyből az útvonal kiolvassa az adatokat. Ez lehet adatbázis, fájl, konzol vagy tetszőleges számú egyéb forrás. Esetünkben fájl lesz.

Ezután meg kell határoznunk a forrásból kiolvasandó adatok processzorát. Ehhez a példához egyéni processzorosztályt fogunk írni. Ez az osztály egy tavaszi bab lesz, amely a szabványos teve processzor interfészt valósítja meg.

Az adatok feldolgozása után meg kell mondanunk az útvonalat, ahová a feldolgozott adatokat irányíthatjuk. Ismételten ez lehet a sokféle kimenet, például adatbázis, fájl vagy konzol. Esetünkben egy fájlban fogjuk tárolni.

Ezeknek a lépéseknek a beállításához, beleértve a bemenetet, a processzort és a kimenetet, adja hozzá a következő útvonalat a Camel helyi fájlhoz:

Ezen felül meg kell határoznunk a myFileProcessor bab:

3.2. Egyéni nagybetűs processzor

Most létre kell hoznunk az egyedi fájlfeldolgozót, amelyet a babunkban definiáltunk. Meg kell valósítania a tevét Processzor interfész, egyetlen meghatározása folyamat módszer, amely egy Csere objektum, mint a bemenet. Ez az objektum adja meg a bemeneti forrás adatainak részleteit.

A módszerünknek ki kell olvasnia a Csere, nagybetűvel írja be a tartalmat, majd állítsa vissza az új tartalmat a Csere tárgy:

public class A FileProcessor végrehajtja a Processor {public void process (Exchange exchange) kivételt dob ​​{Kivonat {String originalFileContent = (String) exchange.getIn (). getBody (String.class); String upperCaseFileContent = originalFileContent.toUpperCase (); exchange.getIn (). setBody (upperCaseFileContent); }}

Ez a folyamat a forrásból kapott minden bemenetre végrehajtásra kerül.

3.3. Kisbetűs processzor

Most egy újabb kimenetet adunk a teve útvonalunkhoz. Ezúttal ugyanazon bemeneti fájl adatait kisbetűvé alakítjuk. Ezúttal azonban nem használunk egyedi processzort; az Apache Camel Message Translator funkcióját fogjuk használni. Ez a frissített teve útvonal:

     $ {body.toLowerCase ()} 

4. Az alkalmazás futtatása

Az útvonalak feldolgozása érdekében egyszerűen be kell töltenünk a teve kontextusfájlt egy tavaszi alkalmazáskörnyezetbe:

ClassPathXmlApplicationContext applicationContext = új ClassPathXmlApplicationContext ("teve-context.xml"); 

Miután az útvonal sikeresen lefutott, két fájl jön létre: egy nagybetűs és egy kisbetűs.

5. Következtetés

Ha integrációs munkát végez, akkor az Apache Camel mindenképpen megkönnyítheti a dolgokat. A könyvtár plug-and-play komponenseket kínál, amelyek segítenek csökkenteni a kazánlap kódját, és az adatok feldolgozásának fő logikájára összpontosítani.

Ha pedig részletesen meg akarja fedezni az Enterprise Integration Patterns koncepciókat, érdemes megnéznie ezt a könyvet, amelyet Gregor Hohpe és Bobby Woolf írtak, akik nagyon tisztán fogalmazták meg az EIP-ket.

A cikkben leírt példa a GitHub egyik projektjében érhető el.


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