Heim  >  Artikel  >  Java  >  Java-Klassenbibliothek-Apache Commons-Ergänzung

Java-Klassenbibliothek-Apache Commons-Ergänzung

黄舟
黄舟Original
2017-01-19 13:10:161097Durchsuche

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

http://jakarta.apache.org/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
Hinweis: Als ich Datenbankprogramme schrieb, habe ich oft ein separates Paket für Datenbankoperationen erstellt. DbUtils ist ein solches Tool, sodass Sie diese Art von Arbeit in der zukünftigen Entwicklung nicht wiederholen müssen. Es ist erwähnenswert, dass dieses Tool nicht das beliebte OR-Mapping-Tool (wie Hibernate) ist, sondern nur Datenbankoperationen vereinfacht, wie zum Beispiel





7. Commons FileUpload
http ://jakarta.apache.org/commons/fileupload/
Erklärung: Wie verwende ich die JSP-Datei-Upload-Funktion?

Verwendungsbeispiel:
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.

Verwendungsbeispiel: die einfachste Get-Operation
// 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.

Anwendungsbeispiel:
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();
}
2. Datei lesen



InputStream in = new URL( "http://jakarta.apache.org" ).openStream();
try {
System.out.println( IOUtils.toString( in ) );
} finally {
IOUtils.closeQuietly(in);
}
3. Überprüfen Sie den verbleibenden Speicherplatz



File file = new File("/commons/io/project.properties");
List lines = FileUtils.readLines(file, "UTF-8");
10. Commons JXPath

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.

Verwendungsbeispiel:
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.

12. Commons Logging
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;
}
}
http://jakarta.apache.org/commons/logging/

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中文网(www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn