Apache Commons Lang项目介绍

1.Lang项目的基本介绍 Apache Commons 是一个专注于可重用 Java 组件各个方面的 Apache 项目。Apache Commons 项目由三部分组成:可重用Java组件的存储库、Java组件开发的工作区、当前处于非活动状态的组件的存储库。Commons项目下共有43个子项目,Lang作为其中的一个子项目,本篇文章主要是简单的介绍lang项目。 Lang项目保持着持续的更新与维护,上次更新为2021年的2月26日(1.0版本发布于2002年10月4日),最后的版本为3.12.0,经过20年的发展更新,几乎也是业内所有的项目均会被使用到的基础库之一,被超广泛使用。如果至今为止你仍然没有使用过它或者没有了解到它里面提供的工具类,可以说编码的质量真的不会高。 2.为什么要使用它 (1)由于标准Java库未能提供足够的方法来操作其主要组件,Lang包提供了这些额外的方法,还有其...

文章分类:后端一部分 开源项目 Apache 开源项目

工具类

Apache POI 常用Api整理

本篇文章是对于Apache POI的常用Api整理,涉及到一些常用的文件读写和样式设置以及其它辅助型的设置类操作,很早之前就想来整理汇总一下曾经应用到的各种功能点,今天终于动手了。实际工作应用中多数情况会使用基于模板的组件使用,如EasyPoi、Jxls、Jxls2等。以下是个人常用的Api整理,具体如下。 1.创建工作簿 在Excel中提供了xls和xlsx两种格式,POI对于这两种格式也都有提供对应的实现,完全以Api的实现层面做的适配,想要实现不同版本的文档读写只需使用对应版本的Api即可。一个Excel文件代表一个工作簿对象Workbook,一个工作表对应一个Sheet页,行为Row,单元格为Cell,所以对于Excel文档的操作就是对于Workbook、Sheet、Row、Cell几个主要对象的读取和写入,参考创建工作簿代码如下: packagecn.chendd.poi; i...

文章分类:后端一部分 开源项目 Apache 开源项目

Apache Commons Crypto加密

1.基本介绍 日常工作中会使用到的加密解密也是各种各样的,以本人来说文本编码(Base64);Apache Codec项目提供的MD5、SHA;基于公钥私钥的RSA非对称加密;JDK的对称加密;本篇文章主要是讲述对称加密的实现,简单理解对称加密是在加密文本时提供一个密钥的形式对文本加密,解密时需要提供此密钥,对于未知密钥的情况无法对文本进行解密,实际上JDK提供的对称加密写法在实现上还是略显复杂的,以至于个人一直处于排斥的心态,在看Apache Commons开源项目时,其中的几个示例给出了基本的使用,发现应用起来还是比较简单的,故对此开源项目进行了稍微全面一点的摸索吧,详细如下问所示。 Apache Commons Crypto 是Apache Commons下的子项目,是一个使用 AES-NI(高级加密标准新指令)优化的加密库。Commons Crypto 在密码级别和 Java 流级...

文章分类:后端一部分 开源项目 Apache 开源项目

Apache Commons JCI最佳实践(五)监听文件(夹)的变更

章接前文,终于又可以接到第一篇文章所说的实现对于文件(夹)的变更监控功能了,这也表示本次的Apache commons项目中的JCI研究就到此准备结束了,掌握到这种较浅的程度去作为技术知识储备也到位了。 说正题,要实现对于一个文件夹的变更(增、删、改)监控,我们使用JCI可以非常简单的实现,前面的几篇文章也是去熟悉它的一个附带,所以这个功能是为了实现代码动态编译后的热部署而来的。 Test代码 package cn.chendd.example; import junit.framework.TestCase; import org.apache.commons.jci.ReloadingClassLoader; import org.apache.commons.jci.listeners.ReloadingListener; import org.apache.commons.jci....

文章分类:后端一部分 开源项目 Apache 开源项目

Apache Commons JCI

Apache Commons JCI最佳实践(四)动态编译JSP文件

章接前文,我们知道JSP文件是先编译成Java文件,再由Java文件编译成Class后被最终执行的,既然是编译系列文章不能少了对JSP文件的编译尝试,先声明一下本次经过较短时间的尝试发现,官网给出的一个基于servlet运行编译的示例对于JSP的编译属于“示例”级别的,因为我们知道JSP文件中是可以被定义class、方法、变量等东西,而在尝试示例的时候,发现定义了一个变量被编译后的效果并不是很给力,可以通过本文的示例进行说明。 在进行之前先对官网上的示例文件中的JSP生产者“org.apache.commons.jci.examples.serverpages.JspGenerator”说明一下,这个类是将JSP文件读取并生成一个Java源文件的示例,但是通过debug中的代码发现并不好使,终于在尝试调试了半天后,简单修改其代码实现后可以正常使用了,该类的源文件路径为:http://com...

文章分类:后端一部分 开源项目 Apache 开源项目

Apache Commons JCI

Apache Commons JCI最佳实践(三)动态编译含包外部jar中的class引用

章接前文,本篇文章主要实现的编译Java源文件为Class文件时含有外部jar包中的class引用,以MySQL的JDBC驱动包为例,引入“com.mysql.jdbc.Driver”类,并输出该类的字节码地址,详细实现参考如下: Test代码 package cn.chendd.example; import junit.framework.TestCase; import org.apache.commons.jci.compilers.CompilationResult; import org.apache.commons.jci.compilers.JavaCompiler; import org.apache.commons.jci.compilers.JavaCompilerFactory; import org.apache.commons.jci.problems.Comp...

文章分类:后端一部分 开源项目 Apache 开源项目

Apache Commons JCI

Apache Commons JCI最佳实践(二)动态编译含包路径的java文件

接前篇文章,主要是API的调用是debug出来的,现在看到的代码较为简单,但分析出来这么写的过程使复杂的,本篇文章意在实现带包路径的源文件编译,示例中给出一个主类SimpleTest.java和一个多线程的匿名内部类定义,我们知道编译后的Class文件应该是有两个,分别是SimpleTest.class和SimpleTest$1.class,详细代码及运行结果参考如下: Test代码 package cn.chendd.example; import junit.framework.TestCase; import org.apache.commons.jci.compilers.CompilationResult; import org.apache.commons.jci.compilers.JavaCompiler; import org.apache.commons.jci.com...

文章分类:后端一部分 开源项目 Apache 开源项目

Apache Commons JCI

Apache Commons JCI最佳实践(一)动态编译不含包路径的java文件

本来准备简单整理一下Commons Compress项目示例的,却在浏览Commons项目列表的时候看到了JCI,对于它的将Java源文件编译成Class的实现倒是没那么感兴趣,让我入手实践的是它提供的监听文件夹、文件发生变更的实现,换句话说,就是可以实现对于某个文件(或文件夹)的创建、修改、删除动作后的监听,我猜它提供的这个功能应该是为实现热部署的,但是本篇文章还是先从将Java源文件编译成Class文件开始说起,把监听这个实现放在最后。 有可能你知道将Java源文件编译成Class的实现我们完全可以调用jdk/bin/jvac.exe命令去实现,但这里说的不是这种实现,实现比较简单,但却是官网(整个网络上)给出少有示例的分享,包括了完整的示例代码调用,这都是花费了许多时间debug出来的,不废话,开始实现,通过调用代码实现将d:\test\compiler文件夹中的SimpleNoPa...

文章分类:后端一部分 开源项目 Apache 开源项目

Apache Commons JCI
本站信息

 运营时间: 天

 用户数量: 人

 文章数量: 篇

 评论数量: 条

 点赞个数: 个

 最后更新:

标签云