Apache Commons berisi banyak alat sumber terbuka untuk menyelesaikan masalah yang sering ditemui dalam pemrograman dan mengurangi tenaga kerja berulang. Di bawah ini adalah pengantar singkat untuk alat yang telah saya gunakan selama proses pengembangan dalam beberapa tahun terakhir.
| Komponen | Pendahuluan Fungsional |
| Beanutils | Menyediakan berbagai operasi, objek kloning, properti, dll. Untuk JavaBeans. |
| Antaranya | Konversi objek XML dan Java satu sama lain. |
| Codec | Alat yang berhubungan dengan metode pengkodean yang umum digunakan seperti DES, SHA1, MD5, BASE64, dll. |
| Koleksi | Operasi Kerangka Kerja Koleksi Java. |
| Kompres | Java menyediakan perpustakaan kelas kompresi kemasan file. |
| Konfigurasi | Perpustakaan kelas manajemen konfigurasi untuk aplikasi Java. |
| Dbcp | Menyediakan layanan pengumpulan koneksi basis data. |
| Dbutils | Memberikan enkapsulasi operasi JDBC untuk menyederhanakan kueri data dan merekam operasi baca. |
| Java mengirim surat ke enkapsulasi Javamail. | |
| Fileupload | Menyediakan fungsi unggahan file. |
| HttpClient | Menyediakan berbagai operasi komunikasi antara klien dan server HTTP. Sekarang telah diubah menjadi httpomponents |
| Io | Enkapsulasi alat IO. |
| Lang | Paket kelas alat untuk metode objek dasar java seperti: stringutils, arrayutils, dll. |
| Logging | Ini menyediakan antarmuka logging Java. |
| Validator | Memberikan kerangka kerja verifikasi data untuk sisi klien dan server. |
1. Beanutils menyediakan berbagai operasi untuk JavaBeans, seperti objek, penyalinan atribut, dll.
// 1. Kloning Object // Buat kacang Java normal baru yang akan digunakan sebagai orang kelas publik objek yang dikloning {private string name = ""; private string email = ""; private int usia; // olet set, dapatkan metode} // Buat kelas uji, di mana kode dalam metode utama adalah sebagai berikut: impor Java.Lang.Reflect.IninvocationtargepoCepion. java.util.map; impor org.apache.commons.beanutils.beanutils; impor org.apache.commons.beanutils.convertutils; tes kelas publik {/** * @param args */public static void main (string [] args) {orang orang = orang baru. {// clone person person2 = (orang) beanutils.cloneBean (orang); System.out.println (person2.getName ()+">>"+person2.getage ());} catch (IllegalAccessException E) {e.printStackTrace ();} Catch (InstantiationException E) {E.PrintStackRace ();} Catch (InstantiationException E) {E.PrintStackRACE ();} Catch (InstantiationException E) {E.PrintStackRace ();} Catch (Instantiasion E) {E.PrintScrace (); e) {e.printstacktrace ();} catch (nosuchmethodeException e) {e.printstacktrace ();}}} // Prinsip ini juga dilakukan melalui mekanisme refleksi Java. // 2. Konversi objek peta menjadi kacang // Kunci objek peta ini harus sesuai dengan properti kacang. Peta peta = hashmap baru (); peta.put ("name", "tom"); map.put ("email", "tom@"); peta.put ("usia", "21"); // Konversi peta menjadi orang orang objek orang = orang baru (); beanutils.populate (orang, peta); // melalui kode orang di atas, sudah ada nada di atas. // Konversi kacang menjadi objek peta, sebagai berikut: peta peta = beanutils.describe (orang)2. Betwixt XML dan objek Java dikonversi.
// 1. Convert JavaBean to XML content// Create a new Person class public class Person{private String name;private int age;/** Need to allow bean to be created via reflection */public PersonBean() {}public PersonBean(String name, int age) {this.name = name;this.age = age;}//Omit set, get method public String toString() {return "PersonBean[name='" + name + "', usia ='" + usia + "']";}} // Buat kelas writeApp: impor java.io.stringwriter; import org.apache.commons.betwixt.io.beanwriter; writeApp kelas publik {/** Buat contoh bean dan konversi menjadi xml. */public static final void main (string [] args) melempar Exception {// Buat stringwriter terlebih dahulu, kami akan menulisnya sebagai string stringwriter outputwriter = new stringwriter (); // betwixt di sini hanya menulis bean sebagai fragmen // jadi jika kami ingin menyelesaikan konten xml, kami harus menulis ke header format output. encoding = 'UTF-8'?>/n "); // Buat beanwriter, yang akan ditulis ke aliran yang kami siapkan. Beanwriter BeanWriter = BeanWriter baru (OutputWriter); // Mengkonfigurasi Betwixt // Untuk detail lebih lanjut, silakan merujuk ke dokumen Java atau dokumen terbaru beanwriter.getxmlintrospector (). getConfiguration (). setattributeForprimitives (false); beanwriter.getBindingConfiguration (). setMapids (false); beanwriter. root node beanWriter.write("person", new PersonBean("John Smith", 21));//Output result System.out.println(outputWriter.toString());// Betwixt writes fragments rather than a document, so don't automatically close writers or streams, // But here is just an example and won't do more, so you can turn off outputWriter.close();}}//2. Konversi XML ke Javabean Impor Java.IO.StringReader; impor org.apache.commons.betwixt.io.beanreader; kelas publik readapp {public static final Main (String args []) melempar pengecualian {// Buat XML pertama. Since this is only an example, we hardcoded a piece of XML content StringReader xmlReader = new StringReader( "<?xml version='1.0' encoding='UTF-8' ?> <person><age>25</age><name>James Smith</name></person>");//Create BeanReader BeanReader beanReader = new BeanReader (); // Mengkonfigurasi pembaca beanreader.getxmlintospector (). GetConfiguration (). Setattributesforprimitives (false); beanreader.getbindingConfiguration (). SetMapids (false); // mendaftar bean begitu tahu apa yang diketahui oleh bean xmapids. Personbean.class); // Sekarang kita parse xml personbean person = (personbean) beanreader.parse (xmlreader); // output hasil sistem.out.println (orang);}}3. Codec menyediakan beberapa implementasi codec publik, seperti Base64, Hex, MD5, Fonetic dan URL, dll.
// base64 codec private static string encodeTest (string str) {base64 base64 = base64 baru (); coba {str = base64.encodetoString (str.getbytes ("UTF-8");} catch (UnsupportedencodingException E) {e.printstacktack (); "+str); return str;} private static void decodetest (string str) {base64 base64 = base64 baru (); // str = arrays.tostring (base64.decodeBase64 (str)); str = string baru (base64.decodeBase64 (str)); System.out.println ("Base64 Decoded:"+str);}4. Koleksi memperluas java.util dan memproses data cukup fleksibel.
org.apache.commons.Collections Commons Koleksi yang disesuaikan dari antarmuka umum dan kelas alat
org.apache.commons.collections.bag Satu set kelas yang mengimplementasikan antarmuka tas
org.apache.commons.collections.bidimap Satu set kelas yang mengimplementasikan antarmuka seri Bidimap
org.apache.commons.collections.buffer satu set kelas yang mengimplementasikan antarmuka buffer
org.apache.commons.collections.collection satu set kelas yang mengimplementasikan antarmuka java.util.collection
org.apache.commons.collections.collections satu set kelas yang menerapkan antarmuka java.util.comparkor
org.apache.commons.collections.foctors koleksi commons set kelas fungsional yang disesuaikan
org.apache.commons.collections.iterators satu set kelas yang mengimplementasikan antarmuka java.util.iterator
org.apache.commons.collections.keyValue mengimplementasikan satu set kelas yang terkait dengan pengumpulan dan pemetaan kunci/nilai
org.apache.commons.collections.list satu set kelas yang mengimplementasikan antarmuka java.util.list
org.apache.commons.collections.map Satu set kelas yang mengimplementasikan antarmuka seri peta
org.apache.commons.collections.set satu set kelas yang mengimplementasikan antarmuka seri set
/** * Dapatkan kunci tertentu setelah kunci yang disimpan dalam set */orderedmap peta = new LinkedMap (); peta.put ("lima", "5"); peta.put ("enam", "6"); peta.put ("tujuh", "7"); peta.firstkey (); // returns "lima" MAP.NexTKey ("Five" ("FIVET"; Mengembalikan "tujuh"/** * Dapatkan nilai melalui kunci * Dapatkan kunci melalui nilai * sakelar kunci dan nilai dalam peta */BIDIMAP BIDI = new TreeBidimap (); Bidi.put ("Six", "6"); Bidi.get ("Six"); // Returns "6" Bidi.getkey ("6"); // Returns "enam" // Bidi. // Menghapus pemetaan BIDIMAP Inverse = Bidi.inversebiMap (); // Mengembalikan peta dengan tombol dan nilai yang bertukar system.out.println (terbalik);/*** Dapatkan elemen yang sama dalam dua set*/daftar <string> list1 = baru ArrayList <String> (); list1.add ("1"); list1.add ("2"); list1.add ("3"); Daftar <String> List2 = ArrayList baru <string> (); list2.add ("2"); list2.add ("3"); list2.add ("5"); collection c = = ("3"); list2.add ("5"); collection c = = ("3"); list2.add ("5"); collection c = = ("3"); list2.Add ("5"); collection c = = ("3"); list2.Add ("5"); collection c = cor = List2); System.out.println (c);5. Compress Commons Pustaka Kelas yang Dikompresi dan Terkompresi.
// Buat entri ziparchiveentry objek terkompresi = ziparchiveEntry baru ("compresstest"); // File yang akan dikompresi f = file baru ("e: //test.pdf"); FileInputStream fis baru (f); // new zipstream (f); // new zipstream outputsstream (f); // new zipstream outputeamsstream (f); // new zipstream output output new Zipstream (F);/ File ("e: //test.zip")); zipoutput.putarchiveentry (entri); int i = 0, j; while ((j = fis.read ())! = -1) {zipoutput.write (j); i ++; Systy.println (i);} zipoutput.6. Konfigurasi digunakan untuk membantu memproses file konfigurasi dan mendukung banyak metode penyimpanan.
1. File Properties
2. Dokumen XML
3. File daftar properti (.plist)
4. Jndi
5. JDBC DataSource
6. Properti Sistem
7. Parameter applet
8. Parameter Servlet
// Berikan contoh sederhana dari properti #usergui.properties colors.background = #fffff colors.foreGround = #000080 window.width = 500 window.height = 300 properti Configuration configuration = new PropertiesConfiguration ("Usergui.properties"); config.setproperty ("colors. config.save ("usergui.backup.properties); // simpan copy integer integer = config.getInteger (" window.width ");7. DBCP (Database Connection Pool) adalah kumpulan koneksi database yang bergantung pada mekanisme kumpulan objek Jakarta Commons-Pool. Sumber data Tomcat menggunakan DBCP.
import javax.sql.DataSource;import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.commons.pool.ObjectPool;import org.apache.commons.pool.impl.GenericObjectPool;import org.apache.commons.dbcp.connectionFactory; impor org.apache.commons.dbcp.poolingDataSource; impor org.apache.commons.dbcp.poolableconnectionFactory; Impor org.apache.commons.dbcp.driverManMactory; void main (string [] args) {system.out.println ("muat driver jdbc"); coba {class.forname ("oracle.jdbc.driver.oracledriver");} catch (classnotfoundException e) {e.printstackrace ();} System.out.printlexception E) {e.printStackace ();} System.out.printll e) {e.printStackace ();} System.out.printlin ("(" "{e.printStack ();} System.out.printl (" Sumber "); DataSource DataSource = setupDataSource (" jdbc: oracle: thin: @localhost: 1521: test "); System.out.println (" Done. "); // koneksi conn = null; pernyataan stmt = null; hasil rsetet = null; try {system.out.print; nullint stmt = null; resultset rset = null; try {System.out.print = null; null; hasil rset = null; try {System.out.print = null = null; retset rset = null; try {System.out.print = null; connecing (" connecing. " DataSource.getConnection (); System.out.println ("Membuat Pernyataan."); stmt = conn.createStatement (); System.out.println ("Pernyataan Eksekusi."); rset = stmt.executequery ("Select * from Person"); System.out.println ("Hasil:"); rset.getMetAdata (). getColumnCount (); while (rset.next ()) {for (int i = 0; i <= numcols; i ++) {System.out.print ("/t"+rset.getstring (i));} System.out.println ("");}}});}});}); {E.PrintStackTrace ();} akhirnya {coba {if (rset! = null) rset.close ();} catch (Exception e) {} coba {if (stmt! = null) stmt.close ();} catch (pengecualian e) {} coba {if (conn! = null); Static DataSource SetupDataSource (String Connecturi) {// Setel Alamat Koneksi ConnectionFactory ConnectionFactory = New DriverManAgerConnectionFactory (Connecturi, null); // Buat Koneksi Koneksi Poolableconnectory = PoolpoolPoolPoryFactory = new poolmonnectionConnectionFactory (ConnectionConFactory); GenericObjectPool (poolableconnectionFactory); // Buat poolingdriver poolingDataSource dataSource = new PoolingDataSource (ConnectionPool); return DataSource;}}8. Perpustakaan kelas alat JDBC sumber daya yang disediakan oleh organisasi dbutilsapache. Ini adalah enkapsulasi sederhana dari JDBC, enkapsulasi sekunder dari kelas basis data operasi tradisional, dan dapat mengubah hasil yang diatur ke dalam daftar. , dan itu tidak mempengaruhi kinerja program.
Kelas Dbutils: Kelas Startup
Antarmuka HasilThandler: Antarmuka Jenis Konversi
Kelas Maplisthandler: Kelas Implementasi, Konversi Catatan Menjadi Daftar
Kelas Beanlisthandler: Menerapkan kelas, mengubah catatan menjadi daftar, dan membuat catatan menjadi objek tipe JavaBean
Kelas Qreryrunner: Kelas yang mengeksekusi pernyataan SQL
Impor org.apache.commons.dbutils.dbutils; impor org.apache.commons.dbutils.queryrunner; impor org.apache.commons.dbutils.handlers.beanlisthandler; import java.sql.connection; impor java.sql.driver. java.util.list; // konversi ke daftar beanlist kelas publik {public static void main (string [] args) {connection conn = null; string url = "jdbc: mysql: // localhost: 3306/ptest"; string jdbcdriver = "com.mysql.jdbc.jdbc.prwas "Ptest"; dbutils.loaddriver (jdbcdriver); coba {conn = driverManager.getConnection (url, pengguna, kata sandi); queryrunner qr = queryrunner baru (); daftar hasil = (daftar) qr.query (conn, "ID pilih, nama dari orang", beanlislistand ne baru. i ++) {person p = (orang) results.get (i); System.out.println ("id:" + p.getId () + ", nama:" + p.getName ());}} catch (sqlexception e) {e.printstacktrace ();} akhirnya {dbutils.closeGiety (connprintStackRace ();} akhirnya {dbutils.closeGietly (connprintStackRace (); name; // olos set, dapatkan metode} impor org.apache.commons.dbutils.dbutils; impor org.apache.commons.dbutils.queryrunner; impor org.apache.commons.dbutils.handlers.maplisthandler; impor java.sql.connection. java.sql.sqlexception; import java.util.list; import java.util.map; // konversi ke peta maplists kelas publik {public static main (string [] args) {connection conn = null; string url = "jdbc: mysql: // localhost: 330/string url =" jdbc: mysql://localhost: 330 "Com.mysql.jdbc.driver"; string user = "root"; string password = "ptest"; dbutils.loaddriver (jdbcdriver); coba {conn = driverManager.getConnection (daftar, "qrunner queryner (list" queryner (daftar); "Daftar); qrunner qr = queryrunner (); Daftar (", "querrunner qr = queryrunner (); DAFFER (" DAFFER ("DAFTER (" DAFTER ("DAFTER (" DAFTER ("DAFTER (" DAFTER ("DAFTOR (" Maplisthandler ()); untuk (int i = 0; i <results.size (); i ++) {peta peta = (peta) results.get (i); System.out.println ("id:" + map.get ("id") + ", name:" + map.get ("name"));}}}}}}} {e.printsception {E. {Dbutils.closequietly (conn);}}}9. API Open Source yang disediakan melalui email adalah enkapsulasi Javamail.
//Send emails using commons email public static void main(String args[]){Email email = new SimpleEmail();email.setHostName("smtp.googlemail.com");email.setSmtpPort(465);email.setAuthenticator(new DefaultAuthenticator("username", "Kata Sandi"); email.setsslonconnect (true); email.setfrom ("[email protected]"); email.setsubject ("testmail"); email.setmsg ("Ini adalah surat tes ... :-)"); email.addto ("[email protected]"); email.send ();10. Fileupload Fungsi Unggah File Web Java.
// Contoh resmi: //* Periksa apakah kami memiliki permintaan unggahan file boolean ismultipart = servletfileupload.ismultipartContent (permintaan); // Sekarang kami memiliki daftar item // jika aplikasi Anda mendekati kasus paling sederhana, pemrosesan di atas sudah cukup. Tapi terkadang kita masih membutuhkan lebih banyak kendali. // Berikut ini adalah beberapa opsi kontrol: // Buat pabrik untuk item file berbasis disk berbasis diskfileItemFactory factory = new diskfileItemFactory (); // atur pabrikan factory. Servletfileupload (pabrik); // atur unggah ukuran unggahan maksimum.setsizeMax (yourmaxRequestSize); // parse semua permintaan daftar/ * fileitem */item = unggah.parsequest (permintaan); // buat pabrik berbasis disk. YourTempDirectory); // Setelah parsing selesai, Anda perlu memproses lebih lanjut daftar item. // Proses item yang diunggah iterator iter = items.iterator (); while (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (item.isFormField ()) {ProcessFormField (item);} else {ProcessuploadedFile (item);}} // Bedakan apakah data tersebut adalah data formulir sederhana, jika itu adalah data sederhana: // ProcessFormField if (item.isformField ()) {string name = getFieldName (); string value if. item.getstring ()) {String name = getFieldName (); steptor. ProcessUcloadedFile if (! item.isFormField ()) {string fieldName = item.getFieldName (); string filename = item.getName (); string contentType = item.getContentType (); itemse. get itemse.) om item (); om item oMemory (); file, atau konversinya menjadi stream // proses unggahan file if (writeToFile) {file unggahedfile = file baru (...); item.write (unggahedfile);} else {inputStream unggah yang diunggah (). upload in memory byte[] data = item.get();//...Omitted steps// If this file is really large, you may want to report to the user how much it has been transmitted to the server, so that the user can understand the upload process//Create a progress listener ProgressListener progressListener = new ProgressListener(){public void update(long pBytesRead, long pContentLength, int pItems) {System.out.println ("Kami saat ini membaca item" + pitems); if (pcontentLength == -1) {System.out.println ("Sejauh ini," + pbytesread + "byte telah dibaca.");} Lain {System.out.println ("So Far," pbytes. baca. ");}}}; unggah.setProgressListener (ProgressListener);11. HttpClien adalah klien HTTP yang kompatibel dengan HTTP/1.1 yang diimplementasikan berdasarkan HTTPCore. Ini menyediakan serangkaian otentikasi klien yang dapat digunakan kembali, pemeliharaan status HTTP, dan modul manajemen koneksi HTTP.
// Dapatkan metode impor java.io.ioException; impor org.apache.commons.httpClient.*; Impor org.apache.commons.httpclient.methods.getmethod; import org.apache.commons.httpclient.params.htpethod; Impor org.apache.commons.httpclient.params.htpethod; Bangun contoh httpClient httpClient httpclient = new httpclient (); // buat instance metode get getMethod getMethod = getMethod baru ("http://www.ibm.com"); // Gunakan kebijakan pemulihan default yang disediakan oleh sistem untuk untuk menjadi sistem untuk sistem untuk sistem untuk sistem untuk sistem untuk sistem untuk sistem untuk sistem pemulihan default yang disediakan oleh sistem ke sistem untuk sistem untuk sistem default getMethod.getParams (). setParameter (httpmethodparams.retry_handler, DEFAULTHTTPMETHODRETRYHANDLER ()); coba {// jalankan getMethod int statusCode = httpClient.executeMethod (getMethod); if (statuscode! = httpstatus.sc_ok) {system.err.println ("Metode gagal:" + getMethod.getStatusLine ());} // Baca byte konten [] responseBody = getMethod.getResponseBody (); // menangani konten System.out.println (response {responseBody); Pengecualian terjadi, yang mungkin protokolnya salah atau konten yang dikembalikan adalah System.out.println ("Silakan periksa alamat http yang disediakan!"); e.printstacktrace ();} catch (ioException e) {// jaringan pengecualian terjadi E.PrintStackTrace ();} {// rilis jaringan Exception terjadi E.PrintStackTrace ();} {/ {// rilis jaringan terjadi e.printstacktack ();} {// rilis jaringan Koneksi terjadi e.printstacktack ();} {/ {// connection network Exception terjadi E.PrintStackRACE ();} akhirnya {// rilis jaringan getMethod.releaseConnection();}}}}//POST method import java.io.IOException;import org.apache.commons.httpclient.*;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.httpclient.params.HttpMethodParams;public Class PostSample {public static void main (string [] args) {// Bangun instance httpClient httpClient httpClient = new httpclient (); // Buat instance dari Metode Posting URL = "http://www.oracle.com NamevaluePair [] data = {new namevaluePair ("id", "yousername"), new namevaluepair ("passwd", "yourpwd")}; // Masukkan nilai formulir ke dalam postmethod postmethod.setRequestBody (data); // Execute Postmethod Int Postmethod. httpclient.executeMethod (postmethod); // httpClient tidak dapat secara otomatis menangani penerusan untuk permintaan yang memerlukan layanan selanjutnya seperti post dan put // 301 atau 302 if (statuscode == httpstatus.sc_moved_porly || statuscode == httpstatus.sc_moved_porly || statusCode == httpstatus.sc_moved_porly || statuscode == httpstatus.sc_moved_porly | Header locationHeader = postmethod.getResponseHeader ("location"); string location = null; if (locationHeader! = Null) {location = locationHeader.getValue (); System.out.println ("Halaman itu dialihkan ke:" + Lokasi);} else {System.err.println ("Lokasi Nilai Bidang);" Lokasi);} Lain {System.R.R.Println ("Lokasi Nilai Bidang ("12. IO sangat nyaman bagi java.io untuk memperluas file operasi.
// 1. Read Stream //Standard code: InputStream in = new URL( "http://jakarta.apache.org" ).openStream();try {InputStreamReader inR = new InputStreamReader( in );BufferedReader buf = new BufferedReader( inR );String line;while ( ( line = buf.readLine() ) != null ) {System.out.println (line);}} akhirnya {in.close ();} // Gunakan ioutils inputStream in = URL baru ("http://jakarta.apache.org") .openstream (); cobalah {System.out.println (ioutils.tostring (); {system.out.println (ioutils.tostring (); in); in -system.out.println (ioutils.toString (); in); {System.out.println (ioutils.tostring (); in); in -); {Ioutils.closequietly (in);} // 2. Baca File File File = File Baru ("/Commons/IO/Project.Properties"); daftar baris = fileutils.readlines (file, "UTF-8"); // 3. Lihat Ruang Long Freespace = Filesystemutils.freespace ("C:/");13. Lang terutama kumpulan alat publik, seperti operasi pada karakter, array, dll.
// 1 Gabungkan dua array: org.apache.commons.lang. Arrayutils // Kadang -kadang kita perlu menggabungkan dua array ke dalam array, dan sangat nyaman untuk menggunakan arrayutils. Contohnya adalah sebagai berikut: private static void testarr () {string [] s1 = string baru [] {"1", "2", "3"}; string [] s2 = string baru [] {"a", "b", "c"}; string [] s = (string []) arrayutils.addall (s1, s1); {System.out.println (s [i]);} string str = arrayutils.tostring (s); str = str.substring (1, str.length () - 1); System.out.println (str + ">>" + str.length ());} // 2 intercept string mulai dari string. " apakah string terdiri dari angka (0 ~ 9). Jika demikian, kembalikan benar, tetapi metode ini tidak mengenali poin desimal dan harap dicatat bahwa Stringutils.isnumeric ("454534"); // Kembalikan true // 4. Dapatkan nama kelas System.out.println (classutils.getshortclassname (test.class)); // dapatkan nama paketnya system.out.println (classutils.getpackagename (test.class)); //5.numberutils system.out.println (numberutils.stringtoint ("6")); // 6. Lima digit huruf acak dan angka system.out.println (randomstringutils.randomalphanumeric (5)); //7.stringescapeutils system.out.println (stringescapeutils.escapeHtml ("<Html>")); // Hasil outputnya adalah <Html> System.out.println (stringutils.espapeJava ("string")); // 8.pringutils. ")); // Pisahkan konten dalam array dengan system.out.println (stringutils.join (test,", ")); // tambahkan karakter ke kanan untuk membuat panjang total 6 system.out.println (stringutils.rightpad (" ABC ", 6, 't')); // huruf pertama adalah huruf pertama adalah huruf pertama adalah huruf pertama. System.out.println (Stringutils.capitalize ("ABC")); // Menghapus semua whitespace dari string hapus semua spaces System.out.println (stringutils.deletewhitespace ("ABC")); // menghapus semua whitespace dari string hapus semua spaces.out.println ("hapus whitespaces dari string all spaces.out.printl (" "Ba")); // menunjukkan dua karakter di sistem kiri.out.println (stringutils.left ("abc", 2)); System.out.println (numberutils.stringtoint ("33"));14. Logging menyediakan antarmuka logging Java, yang memperhitungkan baik ringan dan tidak bergantung pada alat implementasi log tertentu.
impor org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; kelas publik CommonLogTest {private static log = logfactory.getLog (commonlogtest.class); // log cetak public static main (string [] args) {log.error ("error"); log.debug ("debug"); log.warn ("warn"); log.info ("info"); log.trace ("trace"); System.out.println (log.getClass ());}}}); 15. Validator adalah sistem verifikasi umum, yang menyediakan kerangka kerja verifikasi data untuk sisi klien dan server.
Tanggal Verifikasi
// Dapatkan verifikasi tanggal validator datevalidator = datevalidator.getInstance (); // verifikasi/konversi tanggal foodate = validator.validate (foostring, "dd/mm/yyyy"); if (foodate == null) {// kesalahannya bukan kencan;}Verifikasi ekspresi
// Set the parameter Boolean caseSensitive = false;String regex1 = "^([AZ]*)(?://-)([AZ]*)*$" String regex2 = "^([AZ]*)$";String[] regexs = new String[] {regex1, regex1};// Create a validator RegexValidator validator = new RegexValidator (RegExs, Cases sensitif); // Verifikasi pengembalian boolean boolean valid = validator.isvalid ("ABC-DEF"); // Verifikasi Pengembalian String Hasil = Validator.Validate ("ABC-DEF");Gunakan verifikasi dalam file konfigurasi
<Form-Validation> <Blobal> <validator name = "wajib" classname = "org.apache.commons.validator.testvalidator" Method = "validateRequired" MethodParams = "java.lang.object, org.apache.commons.validator.field"//</global> formset. <Form-validasi> <Blobal> <validator name = "wajib" classname = "org.apache.commons.validator.testValidator" Method = "validateRequired" MethodParams = "java.lang.object, org.apache.commons.validator.field"/</</</field nameAmet "nameForm" nameEform "nameFONTORM.POMMONS.VALIDATOR.Field"//</</</fieldom, nameForm "nameEMETOR" NAMEFORM.POMMONS. tergantung = "wajib"> <arg0 key = "nameform.firstname.displayname"/> </field> <field properti = "lastName" tergantung = "wajib"> <arg0 key = "nameform.lastname.displayname"/> </formset> </form-validasi>
Kelas verifikasi
Kutipan dari org.apache.commons.validator.RequiredNametest // Muat file konfigurasi verifikasi InputStream in = this.getClass (). GetResourCeAsstream ("Validator-name-moired.xml"); ValidArresources Resources = New ValidArresources (in); Saya menghilangkan nama = nama baru (); validator validator = validator baru (sumber daya, "nameform"); // atur parameter validator.setParameter (validator.bean_param, name); peta result = null; // verifikasi hasil = validator.validate (); if (results.get ("firstName") == OLE EROCHRORS = OLE ELORORS/OLOD OLE OLE ORO ((Integer) results.get ("firstName")). Intvalue ();}Meringkaskan
Di atas adalah semua penjelasan terperinci dari kode alat Apache Commons dalam artikel ini, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!