Data XML mengikat dengan Castor di Java
Castor membolehkan pemetaan objek XML-to-Java melalui konvensyen lalai atau fail pemetaan eksplisit; 1) Tentukan kelas Java dengan getters/setters; 2) Gunakan unmarshaller untuk menukar XML ke objek; 3) Gunakan Marshaller untuk bersiri objek kembali ke XML; 4) Untuk kes -kes yang kompleks, konfigurasikan pemetaan medan dalam pemetaan.xml; 5) Pemetaan beban melalui XMLContext untuk kawalan yang tepat -pendekatan ini berfungsi dengan pasti untuk sistem mudah atau warisan walaupun sokongan moden yang terhad.
Data XML yang mengikat dengan Castor di Java membolehkan pemaju memetakan data XML ke objek Java dan sebaliknya tanpa menghuraikan atau menjana XML secara manual. Castor adalah salah satu rangka kerja mengikat data sumber terbuka awal dan digunakan secara meluas untuk Java, yang menawarkan cara yang mudah untuk menyatukan objek Java ke XML dan deserialize XML kembali ke objek.

Bagaimana Castor berfungsi
Castor menggunakan fail pemetaan (atau introspeksi kelas) untuk menentukan bagaimana kelas Java sesuai dengan elemen dan atribut XML. Anda boleh bergantung pada konvensyen penamaan (pemetaan lalai) atau menyediakan fail pemetaan XML yang jelas ( mapping.xml
) untuk kawalan halus.
Komponen utama:
- Sumber XML - Dokumen XML input atau output.
- Kelas Java - Objek Java Lama Plain (POJOS) yang mewakili model data.
- Fail Pemetaan (Pilihan) - Menentukan pengikatan antara medan XML dan Java.
- Unmarshaller - Menukar XML ke objek Java.
- Marshaller - Menukar objek Java ke XML.
Contoh langkah demi langkah
Katakan anda mempunyai fail XML yang mewakili buku:

<book> <tirtle> Java berkesan </title> <Arthor> Joshua Bloch </pengarang> <Sbn> 978-0134685991 </isbn> </buku>
Dan kelas Java yang sepadan:
Buku Kelas Awam { tajuk rentetan peribadi; pengarang rentetan peribadi; rentetan peribadi ISBN; // getters dan setters rentetan awam getTitle () {return title; } public void setTItle (Tajuk String) {this.title = title; } public string getAuthor () {return pengarang; } public void setAuthor (pengarang rentetan) {this.author = pengarang; } rentetan awam getisbn () {return isbn; } public void setISbn (string isbn) {this.isbn = isbn; } }
Pilihan 1: Pemetaan lalai (tiada fail pemetaan)
Jika nama elemen XML anda sepadan dengan nama lapangan Java (atau ikuti konvensyen Javabean), Castor boleh memetakannya secara automatik.
import org.exolab.castor.xml.unmarshaller; import org.exolab.castor.xml.marshaller; import java.io.filereader; import java.io.filewriter; // unmarshal: xml ke objek Buku buku = (buku) unmarshaller.unmarshal (book.class, filereader baru ("book.xml")); // Marshal: objek ke XML Marshaller.marshal (buku, filewriter baru ("output.xml"));
Ini berfungsi di luar kotak jika:
- Nama Unsur Memadankan nama medan (kes sensitif secara lalai).
- Kelas ini mempunyai setter awam dan getters.
- Tiada jenis bersarang atau jenis tersuai yang kompleks.
Pilihan 2: Menggunakan fail pemetaan (disyorkan untuk kes yang kompleks)
Apabila struktur XML tidak sepadan dengan kelas Java, gunakan mapping.xml
:
<etapping> <class name = "book"> <map-to xml = "book"/> <field name = "title" type = "java.lang.string"> <bind-xml name = "title" node = "element"/> </medan> <field name = "pengarang" type = "java.lang.string"> <bind-xml name = "pengarang" node = "element"/> </medan> <field name = "isbn" type = "java.lang.string"> <bind-xml name = "isbn" node = "element"/> </medan> </class> </pemetaan>
Sekarang gunakannya dalam kod:
import org.exolab.castor.mapping.mapping; import org.exolab.castor.xml.xmlcontext; // Pemetaan beban Pemetaan pemetaan = pemetaan baru (); pemetaan.loadMapping ("pemetaan.xml"); XmlContext context = new XmlContext (); context.addmapping (pemetaan); // unmarshal dengan pemetaan Unmarshaller unmarshaller = context.createunmarshaller (); unmarshaller.setClass (book.class); Buku buku = (buku) unmarshaller.unmarshal (fileReader baru ("book.xml")); // Marshal dengan pemetaan Marshaller marshaller = context.CreateMarShaller (); marshaller.setWriter (Filewriter baru ("output.xml")); marshaller.marshal (buku);
Kelebihan Castor
- Persediaan mudah untuk kes penggunaan asas.
- Pemetaan fleksibel melalui konfigurasi XML.
- Menyokong koleksi, objek bersarang, dan warisan.
- Boleh menjana kelas Java dari XSD (menggunakan
castor-codegen
).
Perangkap & Petua Biasa
- Nama medan mesti sepadan kecuali pemetaan ditakrifkan.
- Gunakan atribut
type
dalam pemetaan untuk jenis bukan primitif atau tersuai. - Untuk koleksi (contohnya,
List<Book>
), tentukanfield
dengancollection="arraylist"
dalam pemetaan. - Castor kurang aktif dikekalkan sekarang; Pertimbangkan Jaxb atau Jackson untuk projek baru.
Ketergantungan (Maven)
Tambahkan Castor ke pom.xml
anda:
<geterlihat> <groupId> org.castor </groupId> <ctiFactId> castor-xml </artifactid> <versi> 1.5.1 </versi> </ketergantungan>
Walaupun Castor popular pada awal 2000 -an pembangunan Java, alternatif moden seperti JAXB (dibina ke Java sehingga Java 9, kini berasingan), Jackson XML, atau Xstream menawarkan prestasi dan sokongan masyarakat yang lebih baik. Tetapi untuk sistem warisan atau tugas mengikat yang mudah, Castor tetap menjadi pilihan yang tidak sesuai.
Pada asasnya, jika anda terjebak dengan perkakas yang lebih tua atau memerlukan pengikatan XML-Java yang cepat tanpa anotasi, Castor mendapat pekerjaan yang dilakukan-jangan mengharapkan penggilap perpustakaan yang lebih baru.
Atas ialah kandungan terperinci Data XML mengikat dengan Castor di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ChecksearchSettingslike "MatchentireCellContents" dan "MatchCase" byExpandingOptionsInfindandReplace, memastikan "lookin" issettovaluesand "dalam" tocorrectscope; 2.lookforhiddencharactersorformattingbycopytextdirectly

PreparyourapplicationByusingMavenorgradletobuildajarorwarfile, externalizingConfiguration.2.Chooseadeploymentenvironment: runonbaremetal/vmwithjava-jarandsystemd, deploywarontomcat, containerizeWithdoStloStLoThoStLoThoStLoThoStLoThoStLoUsToStLoUsToStLoUsToStLours.

Menggunakan SLF4J yang digabungkan dengan Logback atau Log4J2 adalah cara yang disyorkan untuk mengkonfigurasi log dalam aplikasi Java. Ia memperkenalkan API dan perpustakaan pelaksanaan dengan menambahkan kebergantungan Maven yang sepadan; 2. Dapatkan logger melalui loggerfactory SLF4J dalam kod, dan tulis kod log yang dihancurkan dan cekap menggunakan kaedah pembalakan parameter; 3. Tentukan Format Output Log, Tahap, Sasaran (Konsol, Fail) dan Kawalan Log Tahap Pakej melalui fail konfigurasi logback.xml atau log4j2.xml; 4. Secara pilihan membolehkan fungsi pengimbasan fail konfigurasi untuk mencapai pelarasan dinamik tahap log, dan springboot juga boleh diuruskan melalui titik akhir penggerak; 5. Ikuti amalan terbaik, termasuk

Castorenablesxml-to-javaobjectmappingviadefaultconventionsorexplicitmappingfiles; 1) definejavaclasswithgetters/setters; 2) useunmarshallertoconvertxmltoobjects;

Dalam JavaScript, kaedah yang paling biasa untuk menambah unsur -unsur ke permulaan array adalah dengan menggunakan kaedah unshift (); 1. Menggunakan UNSHIFT () akan secara langsung mengubah suai array asal, anda boleh menambah satu atau lebih elemen untuk mengembalikan panjang baru array tambahan; 2. Jika anda tidak mahu mengubah suai array asal, disyorkan untuk menggunakan pengendali lanjutan (seperti [NewElement, ... ARR]) untuk membuat array baru; 3. Anda juga boleh menggunakan kaedah Concat () untuk menggabungkan array elemen baru dengan nombor asal, mengembalikan array baru tanpa menukar array asal; Ringkasnya, gunakan unshift () apabila mengubah suai array asal, dan mengesyorkan pengendali lanjutan apabila mengekalkan array asal tidak berubah.

GotypicallyoffersbetterruntimeperformanceWithhightherthroughputandlowerlatency, terutama sekali-sekala/o-heavyservices, duetoitslightweightgoroutinesandeficientscheduler, whentjava, wifklowertostart, canmatchgoincpu-boundsafterjitoptimization.2.

TOWORKWITHJSONINJAVA, USEATHIRD-PARTYLIBRARYLIKEJACKSON, GSON, ORJSON-B, ASJAVALACKSBUILT-Insupport;

TheassertkeywordinJavaisusedtovalidateassumptionsduringdevelopment,throwinganAssertionErroriftheconditionisfalse.2.Ithastwoforms:assertcondition;andassertcondition:message;withthelatterprovidingacustomerrormessage.3.Assertionsaredisabledbydefaultandm
