Apache Commons enthält viele Open-Source-Tools, die dazu dienen, häufig bei der täglichen Programmierung auftretende Probleme zu lösen und Doppelarbeit zu reduzieren. Ich habe einige häufig verwendete Projekte für eine kurze Einführung ausgewählt. Der Artikel verwendet viele vorgefertigte Dinge im Internet, ich habe nur eine Zusammenfassung erstellt.
1. Commons BeanUtils
http://jakarta.apache.org/commons/beanutils/index.html
Beschreibung: Ein Tool-Set für Bean. Da Beans oft aus einer Reihe von Get- und Set-Elementen bestehen, führt BeanUtils auch einige Pakete auf dieser Basis durch.
Nutzungsbeispiele: Es gibt viele Funktionen, die auf der Website ausführlich beschrieben werden. Eine der am häufigsten verwendeten Funktionen ist Bean Copy, mit der die Eigenschaften einer Bean kopiert werden. Es wird verwendet, wenn Sie eine mehrschichtige Architektur entwickeln, z. B. beim Kopieren von Daten von PO (Persistent Object) nach VO (Value Object).
Die traditionelle Methode lautet wie folgt:
//得到TeacherForm TeacherForm teacherForm=(TeacherForm)form; //构造Teacher对象 Teacher teacher=new Teacher(); //赋值 teacher.setName(teacherForm.getName()); teacher.setAge(teacherForm.getAge()); teacher.setGender(teacherForm.getGender()); teacher.setMajor(teacherForm.getMajor()); teacher.setDepartment(teacherForm.getDepartment()); //持久化Teacher对象到数据库 HibernateDAO= ; HibernateDAO.save(teacher);
Nach der Verwendung von BeanUtils wurde der Code erheblich verbessert, wie unten gezeigt:
//得到TeacherForm TeacherForm teacherForm=(TeacherForm)form; //构造Teacher对象 Teacher teacher=new Teacher(); //赋值 BeanUtils.copyProperties(teacher,teacherForm); //持久化Teacher对象到数据库 HibernateDAO= ; HibernateDAO.save(teacher);
2. Commons CLI
http://jakarta.apache.org/commons/cli/index.html
Beschreibung: Dies ist ein Tool zur Verarbeitung von Befehlen. Beispielsweise muss die von der Hauptmethode eingegebene Zeichenfolge [] analysiert werden. Sie können die Parameterregeln vordefinieren und dann die CLI aufrufen, um sie zu analysieren.
Verwendungsbeispiel:
// create Options object Options options = new Options(); // add t option, option is the command parameter, false indicates that // this parameter is not required. options.addOption(“t”, false, “display current time”); options.addOption("c", true, "country code"); CommandLineParser parser = new PosixParser(); CommandLine cmd = parser.parse( options, args); if(cmd.hasOption("t")) { // print the date and time }else { // print the date } // get c option value String countryCode = cmd.getOptionValue("c"); if(countryCode == null) { // print default date }else { // print date for country specified by countryCode }
3. Commons Codec
http://jakarta.apache.org/commons/codec/index.html
Beschreibung: Dieses Tool wird zum Kodieren und Dekodieren verwendet, einschließlich Base64, URL, Soundx usw. Personen, die dieses Tool verwenden, sollten diese sehr gut kennen, daher werde ich sie nicht im Detail vorstellen.
4. Commons Collections
http://jakarta.apache.org/commons/collections/
Hinweis: Sie können sich dieses Tool als Erweiterung von java.util vorstellen.
Verwendungsbeispiel: Geben Sie ein einfaches Beispiel
OrderedMap map = new LinkedMap(); map.put("FIVE", "5"); map.put("SIX", "6"); map.put("SEVEN", "7"); map.firstKey(); // returns "FIVE" map.nextKey("FIVE"); // returns "SIX" map.nextKey("SIX"); // returns "SEVEN"
5. Commons-Konfiguration
http://jakarta.apache.org/commons/configuration/
Beschreibung: Dieses Tool dient zur Verarbeitung von Konfigurationsdateien und unterstützt viele Speichermethoden
1. Eigenschaftendateien
3. .plist)
4. JNDI
6. Systemeigenschaften
8. Servlet-Parameter
Verwendungsbeispiel: Geben Sie ein einfaches Beispiel für Eigenschaften
http://jakarta.apache.org/commons/dbcp/
Anweisungen : Datenbankverbindungspool, das ist es, was Tomcat verwendet. Wenn Sie ihn verwenden möchten, lesen Sie die Anweisungen.
6. Commons DbUtils
# usergui.properties, definining the GUI, colors.background = #FFFFFF colors.foreground = #000080 window.width = 500 window.height = 300 PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties"); config.setProperty("colors.background", "#000000); config.save(); config.save("usergui.backup.properties);//save a copy Integer integer = config.getInteger("window.width"); Commons DBCP
7. Commons FileUpload
http ://jakarta.apache.org/commons/fileupload/
Erklärung: Wie verwende ich die JSP-Datei-Upload-Funktion?
QueryRunner run = new QueryRunner(dataSource); // Execute the query and get the results back from the handler Object[] result = (Object[]) run.query("SELECT * FROM Person WHERE name=?", "John Doe");
8. Commons HttpClient
http://jakarta.apache.org/commons/httpclient/
Anleitung: Dieses Tool erleichtert den programmgesteuerten Zugriff auf Websites.
// Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Parse the request List /* FileItem */ items = upload.parseRequest(request); // Process the uploaded items Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { processFormField(item); } else { processUploadedFile(item); } }
9. Commons IO
http://jakarta.apache.org/commons/io/
Hinweis: Es kann als Erweiterung von java.io betrachtet werden. Ich denke, es ist sehr praktisch.
GetMethod get = new GetMethod("http://jakarta.apache.org"); // execute method and handle any error responses. ... InputStream in = get.getResponseBodyAsStream(); // Process the data from the input stream. get.releaseConnection();
1. Stream lesen
Standardcode:
IOUtils verwenden
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 ); } } finally { in.close(); }
InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { System.out.println( IOUtils.toString( in ) ); } finally { IOUtils.closeQuietly(in); }
File file = new File("/commons/io/project.properties"); List lines = FileUtils.readLines(file, "UTF-8");
http://jakarta.apache.org/commons/jxpath/
Erklärung: Sie kennen also Xpath JXpath ist ein auf Java-Objekten basierender Xpath, der Xpath zum Abfragen von Java-Objekten verwendet. Dieses Ding ist immer noch sehr einfallsreich.
long freeSpace = FileSystemUtils.freeSpace("C:/");
11. Commons Lang
http://jakarta.apache.org/commons/lang/
Anleitung: Dieses Toolkit kann als Erweiterung von java.lang betrachtet werden. Bietet Werkzeugklassen wie StringUtils, StringEscapeUtils, RandomStringUtils, Tokenizer, WordUtils usw.
Address address = (Address)JXPathContext.newContext(vendor). getValue("locations[address/zipCode='90210']/address"); 上述代码等同于 Address address = null; Collection locations = vendor.getLocations(); Iterator it = locations.iterator(); while (it.hasNext()){ Location location = (Location)it.next(); String zipCode = location.getAddress().getZipCode(); if (zipCode.equals("90210")){ address = location.getAddress(); break; } }
Erklärung: Kennen Sie Log4j?
13. Commons Math
http://jakarta.apache.org/commons/math/
Erklärung: Sie sollten anhand des Namens wissen, wofür dieses Paket verwendet wird. Die von diesem Paket bereitgestellten Funktionen werden von Commons Lang teilweise dupliziert, aber dieses Paket konzentriert sich mehr auf die Erstellung mathematischer Werkzeuge und verfügt über leistungsfähigere Funktionen.
14. Commons Net
http://jakarta.apache.org/commons/net/
Hinweis: Dieses Paket ist immer noch sehr praktisch und kapselt viele Netzwerkprotokolle.
1. FTP
3. POP3
6. TFTP
8. Whois
10. Zeit (rdate)
11. Echo
12. NTP/SNTP
Verwendungsbeispiel:
TelnetClient telnet = new TelnetClient(); telnet.connect( "192.168.1.99", 23 ); InputStream in = telnet.getInputStream(); PrintStream out = new PrintStream( telnet.getOutputStream() ); ... telnet.close();
十五、Commons Validator
http://jakarta.apache.org/commons/validator/
说明:用来帮助进行验证的工具。比如验证Email字符串,日期字符串等是否合法。
使用示例:
// Get the Date validator DateValidator validator = DateValidator.getInstance(); // Validate/Convert the date Date fooDate = validator.validate(fooString, "dd/MM/yyyy"); if (fooDate == null) { // error...not a valid date return; }
十六、Commons Virtual File System
http://jakarta.apache.org/commons/vfs/
说明:提供对各种资源的访问接口。支持的资源类型包括
1. CIFS
2. FTP
3. Local Files
4. HTTP and HTTPS
5. SFTP
6. Temporary Files
7. WebDAV
8. Zip, Jar and Tar (uncompressed, tgz or tbz2)
9. gzip and bzip2
10. res
11. ram
这个包的功能很强大,极大的简化了程序对资源的访问。
使用示例:
从jar中读取文件
// Locate the Jar file FileSystemManager fsManager = VFS.getManager(); FileObject jarFile = fsManager.resolveFile( "jar:lib/aJarFile.jar" ); // List the children of the Jar file FileObject[] children = jarFile.getChildren(); System.out.println( "Children of " + jarFile.getName().getURI() ); for ( int i = 0; i < children.length; i++ ){ System.out.println( children[ i ].getName().getBaseName() ); }
从smb读取文件
StaticUserAuthenticator auth = new StaticUserAuthenticator("username", "password", null); FileSystemOptions opts = new FileSystemOptions(); DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth); FileObject fo = VFS.getManager().resolveFile("smb://host/anyshare/dir", opts);
以上就是java-类库-Apache Commons补充的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!