Bevezetés a JiBX-be

1. Áttekintés

A JiBX egy eszköz az XML adatok Java objektumokhoz való kötésére. Szolid teljesítményt nyújt más elterjedt eszközökhöz, például a JAXB-hez képest.

A JiBX meglehetősen rugalmas, összehasonlítva más Java-XML eszközökkel, kötelező meghatározásokkal választja le a Java struktúrát az XML ábrázolásról, így mindegyiket egymástól függetlenül lehet megváltoztatni.

Ebben a cikkben megvizsgáljuk a JiBX által biztosított különböző módszereket az XML Java objektumokhoz való kötésére.

2. A JiBX elemei

2.1. Kötelező meghatározási dokumentum

Az összerendelési definíciós dokumentum meghatározza, hogyan konvertálják a Java objektumait XML-be vagy onnan.

A JiBX kötési fordító egy vagy több kötelező meghatározást vesz be bemenetként, a tényleges osztályfájlokkal együtt. Összeállítja az összerendelés definícióját Java bytecode-ba az osztályfájlokhoz való hozzáadással. Miután az osztályfájlokat továbbfejlesztette ezzel a lefordított összerendelési definíciós kóddal, készen állnak a JiBX futásidejű használatára.

2.2. Eszközök

Három fő eszközt fogunk használni:

  • BindGen - az összerendelés és az egyező sémadefiníciók előállítása Java kódból
  • CodeGen - Java kód és kötelező érvényű definíció létrehozása XML sémából
  • JiBX2Wsdl - az összerendelés definíciójának és a hozzá tartozó WSDL-nek, valamint egy séma-definíció elkészítéséhez a meglévő Java-kódból

3. Maven konfiguráció

3.1. Függőségek

Hozzá kell adnunk a jibx által futtatott függőséget a pom.xml:

 org.jibx jibx-futtatás 1.3.1 

A függőség legújabb verziója itt található.

3.2. Bővítmények

A JiBX különböző lépéseinek, például a kódgenerálás vagy a kötésgenerálás végrehajtásához konfigurálnunk kell maven-jibx-plugin ban ben pom.xml.

Konfiguráljuk a plugint abban az esetben, ha a Java kódból kell kiindulnunk, és elő kell állítanunk a kötés és séma definíciót:

 org.jibx maven-jibx-plugin ... src / main / resources * -binding.xml template-binding.xml true process-class bind 

Ha van sémánk, és létrehozzuk a Java kódot és az összerendelés definícióját, akkor a maven-jibx-plugin a séma fájl elérési útjának és a forráskód könyvtár elérési útjának információival van konfigurálva:

 org.jibx maven-jibx-plugin ... java-code-from-schema-séma-codegen src / main / jibx customer-schema.xsd true fordítás-kötés megkötés cél / generált-források igaz igaz igaz 

4. Kötelező meghatározások

A kötelező erejű meghatározások a JiBX központi részét képezik. Egy alapvető kötési fájl adja meg az XML és a Java objektum mezők közötti leképezést:

  ...   

4.1. Struktúra feltérképezése

A struktúra leképezésével az XML struktúra hasonlóvá válik az objektum struktúrájához:

  ...  ...   ...  

Ennek a szerkezetnek a megfelelő osztályai a következők lesznek:

nyilvános osztály Ügyfél {magánszemély személy; ... // szokásos getterek és beállítók} public class Person {private String vezetéknév; ... // szokásos mérőeszközök és beállítók} 

4.2. Gyűjtemény és Sor Leképezések

A JiBX összerendelés egyszerű módot kínál a tárgyak gyűjteményével való munkavégzésre:

    ...  ... 

Lássuk a megfelelő leképező Java objektumokat:

public class Rendelés {List listList = new ArrayList (); ... // getterek és beállítók itt} public static class Cím {private String name; ... // szokásos mérőeszközök és beállítók}

4.3. Speciális leképezések

Eddig láttunk egy alapvető leképezési meghatározást. A JiBX leképezés a térképezés különböző ízeit biztosítja, mint például az absztrakt térképezés és az öröklés feltérképezése.

Lássuk, hogyan definiálhatunk egy absztrakt leképezést:

   ...          

Lássuk, hogyan kötődik ez a Java objektumokhoz:

nyilvános osztály Ügyfél {magánszemély személy; ... saját telefon homePhone; privát Telefon irodaPhone; // szabványos mérőeszközök és beállítók}

Itt többször megadtuk Telefon mezők Vevő osztály. A Telefon maga is POJO:

nyilvános osztály Telefon {privát String szám; // szabványos mérőeszközök és beállítók}

A rendszeres leképezések mellett kiterjesztéseket is definiálhatunk. Minden kiterjesztés leképezés valamilyen alap leképezésre utal. A marsalláláskor a tényleges objektumtípus dönt arról, hogy mely XML leképezést alkalmazzák.

Nézzük meg, hogyan működnek a bővítmények:

    ...   ...  ... 

Nézzük meg a megfelelő Java objektumokat:

public class Identity {private long customerId; // szabványos mérőeszközök és beállítók}

5. Következtetés

Ebben a rövid cikkben különféle módszereket tártunk fel, amelyek segítségével a JiBX-et ​​felhasználhatjuk XML Java objektumokba / konvertálásához. Láttuk azt is, hogy hogyan használhatunk kötelező érvényű definíciókat a különböző ábrázolásokkal való együttműködésre.

A cikk teljes kódja elérhető a GitHub oldalon.


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