Apache Commons には、日常のプログラミングでよく遭遇する問題を解決し、作業の重複を減らすために使用されるオープンソース ツールが多数含まれています。簡単に紹介するために、一般的に使用されるプロジェクトをいくつか選択しました。この記事はインターネット上にある既製のものを多く使用しており、要約しただけです。
1. Commons BeanUtils
http://jakarta.apache.org/commons/beanutils/index.html
説明: Bean 用のツールセット。 Bean は get と set の束で構成されることが多いため、BeanUtils はこれに基づいていくつかのパッケージ化も実行します。
使用例: 多くの機能があり、ウェブサイトで詳しく説明されています。より一般的に使用される機能は、Bean のプロパティをコピーする Bean Copy です。 PO (永続オブジェクト) から VO (値オブジェクト) にデータをコピーするなど、階層化されたアーキテクチャを開発している場合に使用されます。
従来の方法は次のとおりです:
//得到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);
BeanUtils を使用した後、コードは以下に示すように大幅に改善されました:
//得到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
説明: これはコマンドを処理するためのツールです。たとえば、main メソッドによって入力された string[] は解析する必要があります。パラメータ ルールを事前定義してから、CLI を呼び出してそれらを解析できます。
使用例:
// 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
説明: このツールは、Base64、URL、Soundx などのエンコードとデコードに使用されます。もっと。このツールを使っている人はよく知っているはずなので、詳しくは紹介しません。
4. Commons Collections
http://jakarta.apache.org/commons/collections/
説明: このツールは java.util の拡張機能と考えることができます。
使用例: 簡単な例を挙げてください
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 Configuration
http://jakarta.apache.org/commons/configuration/
説明: このツールは、設定ファイルの処理を支援するために使用され、多くのストレージ方法をサポートしています
1. プロパティファイル
3. プロパティリストファイル
4. サーブレットパラメータ
# 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
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");
使用例:
// 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); } }
使用例: 最も単純な Get オペレーション
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.ストリームを読み取ります
標準コード:
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(); }
IOUtilsを使用します
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");
long freeSpace = FileSystemUtils.freeSpace("C:/");
10. Commons JXPath
http://jakarta.apache.org/commons/jxpath/
説明: Xpath をご存知であれば、JXpath は Java オブジェクトに基づく Xpath です。つまり、Xpath を使用してクエリする Java オブジェクト。このことはまだ非常に想像力豊かです。
使用例:
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; } }
イレブン、Commons Lang
http://jakarta.apache.org/commons/lang/
説明: このツールキットは java.lang の拡張機能と見なされます。 StringUtils、StringEscapeUtils、RandomStringUtils、Tokenizer、WordUtils などのツール クラスを提供します。
12、Commons Logging
http://jakarta.apache.org/commons/logging/
説明: Log4j をご存知ですか?
13. Commons Math
http://jakarta.apache.org/commons/math/
説明: 名前を見れば、このパッケージが何に使用されるかがわかるはずです。このパッケージで提供される関数は Commons Lang と多少重複していますが、このパッケージは数学ツールの作成により重点を置いており、より強力な関数を備えています。
Fourteen、Commons Net
http://jakarta.apache.org/commons/net/
説明: このパッケージは依然として非常に実用的であり、多くのネットワーク プロトコルをカプセル化しています。
2. NNTP
4. TFTP
8. d/rログイン
10. 時刻(rdate)と昼間
11. エコー
13. NTP/SNTP
の使用例:
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中文网(www.php.cn)!