Apache Commons contient de nombreux outils open source utilisés pour résoudre les problèmes couramment rencontrés dans la programmation quotidienne et réduire la duplication du travail. J'ai sélectionné quelques projets couramment utilisés pour une brève introduction. L'article utilise beaucoup de choses toutes faites sur Internet, je viens de faire un résumé.
1. Commons BeanUtils
http://jakarta.apache.org/commons/beanutils/index.html
Description : Un ensemble d'outils pour Bean. Étant donné que les Beans sont souvent composés d'un ensemble de get et de set, BeanUtils effectue également certains packaging sur cette base.
Exemples d'utilisation : Il existe de nombreuses fonctions, qui sont décrites en détail sur le site Web. L'une des fonctions les plus couramment utilisées est Bean Copy, qui consiste à copier les propriétés d'un bean. Il sera utilisé si vous développez une architecture en couches, comme la copie de données de PO (objet persistant) vers VO (objet de valeur).
La méthode traditionnelle est la suivante :
//得到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);
Après avoir utilisé BeanUtils, le code a été grandement amélioré, comme indiqué ci-dessous :
//得到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
Description : Il s'agit d'un outil de traitement des commandes. Par exemple, la chaîne[] entrée par la méthode principale doit être analysée. Vous pouvez prédéfinir les règles de paramètres, puis appeler la CLI pour les analyser.
Exemple d'utilisation :
// 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 <🎜. >Description : Cet outil est utilisé pour encoder et décoder, notamment Base64, URL, Soundx, etc. Les personnes qui utilisent cet outil devraient très bien les connaître, je ne les présenterai donc pas en détail.
4. Commons Collections
http://jakarta.apache.org/commons/collections/
Remarque : vous pouvez considérer cet outil comme une extension de java.util.
Exemple d'utilisation : donnez un exemple simple
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"
http://jakarta.apache.org/commons/configuration/ <. 🎜>Description : Cet outil est utilisé pour aider à traiter les fichiers de configuration et prend en charge de nombreuses méthodes de stockage
1. Fichiers de propriétés
2. Documents XML
3. .plist)
4. JNDI
5 Source de données JDBC
6. Propriétés du système
7. Paramètres de l'applet
8. Paramètres de servlet
Exemple d'utilisation : donnez un exemple simple de propriétés
# 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
6. Commons DbUtils
http://jakarta.apache.org/commons/dbutils/
Remarque : lorsque j'écrivais des programmes de base de données, je créais souvent un package séparé pour les opérations de base de données. DbUtils est un tel outil, vous n'avez donc pas besoin de répéter ce type de travail lors de développements futurs. Il convient de mentionner que cet outil n'est pas l'outil OR-Mapping populaire (tel que Hibernate), mais simplifie uniquement les opérations de base de données, telles que
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");
Explication : Comment utiliser la fonction de téléchargement de fichiers jsp ?
Exemple d'utilisation :
// 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); } }
Instructions : Cet outil facilite l'accès aux sites Web par programmation.
Exemple d'utilisation : l'opération Get la plus simple
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();
Remarque : il peut être considéré comme une extension de java.io, je pense qu'il est très pratique à utiliser.
Exemple d'utilisation :
1. Lire le code standard de Stream
:
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");
long freeSpace = FileSystemUtils.freeSpace("C:/");
Explication : Vous connaissez Xpath, alors JXpath est Xpath basé sur des objets Java, c'est-à-dire utilisant Xpath pour interroger des objets Java. Cette chose est encore très imaginative.
Exemple d'utilisation :
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; } }
Instructions : Cette boîte à outils peut être considérée comme une extension de java.lang. Fournit des classes d'outils telles que StringUtils, StringEscapeUtils, RandomStringUtils, Tokenizer, WordUtils, etc.
12. Commons Logging
http://jakarta.apache.org/commons/logging/
Explication : Connaissez-vous Log4j ?
13. Commons Math
http://jakarta.apache.org/commons/math/
Explication : Vous devriez savoir à quoi sert ce package en regardant le nom. Les fonctions fournies par ce package sont quelque peu dupliquées par Commons Lang, mais ce package est davantage axé sur la création d'outils mathématiques et possède des fonctions plus puissantes.
14. Commons Net
http://jakarta.apache.org/commons/net/
Remarque : ce package est toujours très pratique et encapsule de nombreux protocoles réseau.
1. FTP
2. NNTP
3.SMTP
4. >6. TFTP
7. Doigt
8. Whois
9. rexec/rcmd/rlogin
10. 🎜>
11. Écho
12. Rejeter
13. NTP/SNTP
Exemple d'utilisation :
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)!