Stream 是 Java8 引入的一个强大且灵活的API功能,它提供了一种高效、简洁的方式来处理集合数据。Stream 不是一个数据结构,而是一种操作集合(如 List、Set)数据的抽象概念,它可以让你以声明式或流水线的方式对集合中的数据进行处理操作,包括过滤、转换、排序、聚合等。Stream API 提供了丰富的操作类型,使得你可以很方便地对集合数据进行各种复杂的处理。... 阅读详情
Read More →标签: Java
最近在项目里想要压缩和混淆下代码,我们常用的是proguard,结合网上现有的资料,做了集成,使用起来效果是很不错的。当我们的应用部署在公网或者非受控的服务器上时,对于代码的保护以及防止逆向工程就变得尤为重要。proguard支持代码优化,混淆,压缩,预检,通过对代码的混淆使得工程更难于破解。下面是详细的配置,根据实际情况自己修改。... 阅读详情
Read More →在做Excel文件导入导出的时候,我通常会用EasyExcel来进行处理,因为它重写了POI对Excel的解析,解决了Apache POI高耗内存的问题,同时能够保证很高的读写速度,集成起来也很简单,所以导出都推荐EasyExcel。它不仅效率高,里面还提供了很多Handler使得我们可以对Excel中的格式及样式进行灵活的自定义设置,这里列举一些我们能够常用的Hander,方便开发时使用。... 阅读详情
Read More →最近要把生产数据库的部分基础配置数据同步到新的测试环境用于测试使用,但由于生产环境网络和测试环境不通,DBA又不给支持,那么只能自己动手丰衣足食了。原本MySQL安装目录下可以使用mysqldump命令来对mysql数据库进行转储或者备份,它通过连接MySQL数据库,将需要转储的数据查询出来,再将查询结果转换成对应的Insert语句。通过这种方式,可以对单个库,多个库,或者多张表进行转储。但是有一个前提是我们需要知道数据库的安装目录或者能够使用这个命令来操作。但是现在我们没有,于是唯一的办法就是自己来加工了。... 阅读详情
Read More →前几天生产服务器上部署的应用出现了故障,搞的兄弟们惊出一身冷汗。几十个节点的应用正一个接一个的挂调,持续下去会直接导致提供给外部的高并发服务不可用,影响一系列上下游业务正常进行。在观察后台的监控后发现,CPU正常,但内存在一个很短的时间内出现飙高的情况。观察了几台挂掉的机器,都是相同的问题。为了在出现问题后为不影响线上业务,让同事第一时间对出现问题的应用进行了重启。重启之后,服务又稳定正常运行,事后我们对线上的问题进行了具体的分析。... 阅读详情
Read More →基础的代码写的越多,就越不想再重复的去写。总有一天当你对所有Controller都厌烦的时候,就该静下来想想能否将代码更加的抽象,精炼,或者做成一个通用的功能,让我们不用增加一张数据表就需要去写一套接口。在这里,分享一个通用的Controller基类来集成这些通用的操作抛砖引玉,在这样的一个BaseController基类中,我们需要考虑的是在原来独立的Controller上所做的工作如何通用的在基类上实现。... 阅读详情
Read More →线程池的优点自不必说,重用已有的线程,可以有效减少线程创建及销毁对性能造成的损失。并且通过有效控制线程数量,可以避免资源拥堵,或提高系统资源的使用率。但如何用好线程池才是重点,本篇就通过一个简单的例子,重温线程池相关的知识点。... 阅读详情
Read More →Paradox数据库是一个关系型数据库,现在看来它已经非常的古老了,而且在这之前没有听说过,但依然还有一些现行的系统中使用它,而且早期Delphi的程序用它比较多,好了这个关系先不深究了。现在客户给的数据库文件需要导入到我们的系统中,我们采用的策略是上传数据库文件,通过程序来连接读取该文件。数据库文件扩展名为.DB,乍一看让我想到了sqlite,但是通过花费一些时间查找以及验证,才终于确定,原来它是Paradox数据库文件。其实确定.DB文件是Paradox数据库的过程以及寻找驱动才是最花时间的。如果你缺的也是这些,直接到文末提供的链接下载吧。... 阅读详情
Read More →新的项目上使用了微服务的设计,本地的测试环境我们用了两台配置较低的主机来部署,所以在网上科普了一下CentOS下配置java环境等的一些知识,在这里记录下简单的部署操作及用到的一些命令。... 阅读详情
Read More →我们常常在系统中需要用到权限,然而每次新定义一项权限时,就需要在我们的系统权限列表中录入一次。如一个用户管理的模块可能需要在系统的权限列表中相应的增加查询用户,新增用户,修改用户以及删除用户的权限。这样繁琐的体力劳动看起来既不便捷,也不优雅。是否可以省略掉中间的录入环节呢?我们想要既方便的将我们定义的权限加入到系统的权限列表中,不需要录入,又能够方便的来进行功能权限的检查,好了,那么下面这种方式可能适合你。... 阅读详情
Read More →