概述
几大关键要素可极大节省程序员的宝贵时间:首先是优秀的架构,它如同战场上的整体阵形,确保系统有序且高效运转;其次是精良的框架,它如同小方阵,协助程序员在开发过程中迅速搭建起稳固的基础;最后是强大的工具,它们如同士兵手中的钢枪长矛,助力程序员轻松应对各种编程挑战。
在构建软件系统的过程中,除了架构和框架外,还有一些至关重要的工具类,它们负责处理数据格式转换、数据验证、数据加密解密等开发层面的工作。为了方便管理和复用,这些工具类通常会被组织在同一个包下,并以“utils”、“common”或“helper”等命名。有时候,这些工具类甚至会被独立成一个项目,以便在多个软件系统中共享和重用。
之所以采用这种方式,是因为虽然JDK提供了核心功能的实现,但在实际项目开发中,我们还需要处理许多常用的操作。如果直接用Java编写这些功能,可能会面临以下问题:需要投入大量的时间和精力进行开发和测试;代码可能会显得繁琐且不够简洁;复用性较差,一旦发现问题,可能需要在整个工程中进行代码搜索和修正。
因此,在软件开发中,我们应该避免重复造轮子,而是积极寻找并利用现成的成熟工具包。通过关键词搜索,我们可以找到大量由个人或组织整理的工具包或工具类。相比个人整理的工具包,组织级的工具包往往更可靠,如Apache的Commons系列。此外,谷歌的Guava也是一个值得关注的工具库,尽管其定位不完全是工具包,但其在提供丰富功能的同时,也展现出了优秀的性能和设计理念。当然,在选择学习和掌握工具库时,我们应根据项目需求进行优先级排序。
Apache Commons是Apache软件基金会的项目,曾隶属于Jakarta项目,官网地址:http://commons.apache.org/
Commons的目的是提供可重用的、开源的Java代码,使用组件可以提高开发效率和质量。
Commons的开发者努力确保其组件对其他的软件库的依赖最少,以便可以轻松地部署这些组件。此外,Commons组件会尽可能的保持其接口的稳定,因而Apache用户以及其他Apache项目可以实现这些组件,而无需担心未来接口的变化。
Apache Commons项目的由三部分组成:
The Commons Proper - 一个可重用的java组件库。(已经发布过的)
The Commons Sandbox - Java组件开发工作区. (正在开发的项目)
The Commons Dormant - 当前处于非活动状态的组件库.(刚启动或者已经停止维护的项目)
依据官网,当前处于发布状态的组件大概有四十多个了
这相当于是一个大而全组件库,而在实际开发过程中,我们用到的可能仅仅一小部分,建议泛泛了解,知道有这么一些相关组件,重点掌握一些常用的即可,不常见常用的,待到有需求时再查阅文档,不断吸收消化,最终转换为自己的一部分。
此外,陆续搜索到了国产的工具包 http://hutool.mydoc.io/,以及http://feilong-core.mydoc.io/,前者完全是自己实现,无第三方依赖,而后者则是基于Apache Commons3,进一步完善和补充,特别是添加了常量。
实用方法整理(持续更新)
生成随机字符串
//生成随机数字字符串
RandomStringUtils.randomNumeric( 5 );
//生成随机字母字符串(大小写混合)
RandomStringUtils.randomAlphabetic(5);
//生成指定长度的字母和数字的随机组合字符串
RandomStringUtils.randomAlphanumeric( 5 );
//使用指定的字符生成5位长度的随机字符串
RandomStringUtils.random( 5 , new char []{ ‘a’ , ‘b’ , ‘c’ , ‘d’ , ‘e’ , ‘f’ });
注意,以下方法实际执行结果像乱码,不建议使用
//产生5位长度的随机字符串
RandomStringUtils.random( 5 );
应用场景:
1.验证码,登录或其他操作,通过随机生成的验证码来保证唯一
2.使用随机字符串附加来保证标识唯一(该场景通常使用时间戳,用随机字符串较少)
判断值是否属于枚举类
EnumUtils.isValidEnum(MessageTypeEnum.class,messageType)
参数分别为枚举类,指定的值,返回布尔类型