• 使用Spring AOP实现注解式的分布式锁

    这里简单说一个springboot生态下基于redis实现的分布式锁方案。预期实现的效果是在要加锁的方法上添加一个注解,然后就能根据请求参数得到并加上锁,方法执行完后,也会自动释放锁。这样在实现方法时,开发者就可以只关注业务逻辑,不用考虑加

    [阅读更多...]
  • MapStruct属性多转一实现

    在项目里遇到了需要使用mapstruct将source对象的多个属性转为target对象的一个属性的场景。针对这个问题研究了一段时间,发现想要解决得好一些还是挺让人头疼的。 先说结论吧:MapStruct支持将多个对象转为一个对象,但是不支

    [阅读更多...]
  • springboot入门16 – 包装Controller返回值2

    之前有整理过一次怎样包装SpringBoot Controller的做法。 最近在原有方案的基础上又升级了下,可以通过引入 spring-boot-starter 的形式对接口返回值进行封装。 具体做法如下: 1. 引入 zhy-sprin

    [阅读更多...]
  • springboot入门15 – profile设置

    配置方式 命令行方式 命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过 –spring.profiles.active=test的方式进行激活指定的profiles列表。 使用方式如下所示: 系统变量方式 需要添加一

    [阅读更多...]
  • 基于redis实现分布式bloomfilter

    如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路. 但是随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢(O(n),O(logn))。不过世界上还

    [阅读更多...]
  • springboot入门14 – Kafka应用

    简述 这几天优化了一下之前写的一个springboot kafka组件。比较起原生的spring-kafka来,我希望能够简化kafka的使用,可以更聚焦于具体的消息处理逻辑。 接下来的内容是这个组件的用法。 使用方法 添加依赖 这个组件已

    [阅读更多...]
  • springboot入门13 – 多CacheManager应用

    概述 之前有写过springboot缓存应用的说明(《springboot入门01 – 缓存的使用》)。不过实际的场景有时候会比较复杂一些,比如:需要同时使用redis和caffine来做多级缓存,或者需要在通用配置外应用一些个性化的配置。

    [阅读更多...]
  • springboot入门12 – SpringBoot MyBatis读写分离

    概述 随业务量增长,数据库读写分离是迟早要面临的问题。另外,公司在上规模后一般也会要求统一采用主从分布式数据库。 我习惯的处理方案是在应用层进行隔离:即将以写为主的业务放在一个应用上,以读为主的业务放在其他应用上。这应该算是最简单粗暴的解决

    [阅读更多...]
  • Excel导出超过65535行报异常

    工程中在使用POI导出Excel数据,某次因为导出的数据量比较大就报了下面的错误: 查了下资料,了解到问题在于使用了HSSFWorkbook。HSSFWorkbook用来操作Excel2003以前(包括2003)的版本,限制了每个Sheet

    [阅读更多...]
  • SpringBoot读写xml上传到S3

    最近的工作涉及到了生成xml文件并上传到AWS存储服务S3这样的处理。期间遇到了两个问题,简单记录下: springboot读取xml模板异常 将生成的xml上传到S3的问题 springboot的版本是2.1.9.RELEASE,读写xm

    [阅读更多...]