Java 优雅的拷贝对象属性 场景在 Java 项目中,经常遇到需要在对象之间拷贝属性的问题。然而,除了直接使用 Getter/Stter 方法,我们还有其他的方法么?当然有,例如 Apache Common Lang3 的 BeanUtils,然而 BeanUtils 却无法完全满足吾辈的需求,所以吾辈便自己封装了一个,这里分享出来以供参考。 需要大量复制对象的属性 对象之间的属性名可能是不同的 对象之间的属性类型可能是不
Java 使用 FTP/SFTP 场景项目中需要使用 FTP,所以做了简单的 FTP/SFTP 封装,此处仅做一下记录。 注:这里并未实现连接池管理,生产环境强烈建议手动实现连接池以提高性能! UML 图像说明形状 注:此处参考自 IDEA UML 图中的颜色 蓝色:类/步骤 黄色:字段 红色:函数 紫色:配置 图形 长方形:类/配置文件/依赖项 圆角长方形:字段/函数/对象/变量 箭头:拥有/向下依赖的意思 目标封装
Java8 函数式功能速查 场景有时候使用 lambda 参数的时候忘记应该接口的名字,所以便在此写一下 Java8function 包下原生的相关接口,方便快速查找。 lambda 接口 class 参数 返回值 Stream 示例 应用场景 Function <T> <R> map/flatMap 映射 Consumer <T> void forEach/peek 迭代
Java8 时间格式化 DateTimeFormatter 场景吾辈在使用 Java8 的 LocalDateTime 想要根据某种格式格式化字符串为日期时间,本以来会简单的事情,事实上却出乎预料! 问题想要格式化一个字符串为日期时间。例如常见的 yyyy-MM-dd hh:mm:ss 格式的 2017-12-11 10:11:05,吾辈习惯性的写出以下代码 1234final String text = "2017-12-11 10:11:05";fin
Spring 配置静态资源访问后结果发生 404 了? 场景这两天使用 SpringMVC 时突然发现了一个问题,在 spring-mvc.xml 中配置静态资源访问以后,突然发现访问什么 Controller 控制的页面都 404 了。如果把这个配置删除后,就能正常访问了,后来在与曾经的项目配置文件对比时发现是缺少了配置 <mvc:annotation-driven/>。然而,在没有添加静态资源访问时,没有这个配置也能够使用 Contro
MybatisPlus 自定义全局操作 exists 一直返回 null 场景为 mybatis-plus 自定义了一个全局操作,然后就一直返回 null。。。 在自定义 sql 注入器类的时候,突然发现 existsById() 一直都在抛空指针异常,就去看了一下结果发现一直返回 null。 1234567891011121314151617181920212223242526272829package com.rxliuli.example.mybatispluss
SpringBoot 使用 Jackson 处理 Java8 时间 API 场景在项目中的实体类里面使用了 Java8 新的时间 API,例如 LocalDate, LocalTime, LocalDateTime 等。然而在将这些时间类型的字段序列化返回到前端时,但格式却感觉有些异常。 嗯,大概就是下面这种样子的 12345678910111213141516{ "dayOfMonth": 27, "dayOfWeek": "MONDAY", "dayOfYear
SpringBoot 使用阿里云的短信服务出现问题 异常12345Exception in thread "main" java.lang.NoSuchMethodError: org.json.JSONArray.iterator()Ljava/util/Iterator; at com.aliyuncs.regions.LocalEndpointResolver.<init>(LocalEndpointResolver.java:3
SpringBoot 集成 WebSocket SpringBoot 集成 WebSocket 场景 & 需求 前置知识 引入依赖 配置 SpringBoot WebSocket 支持 双向广播服务端 双向广播客户端 单向广播服务端 单向广播客户端 点对点推送服务端 点对点推送客户端 单向点对点推送服务端 单向点对点推送客户端 记录 user -> Socket 会话对应的映射表 接受/返回复杂类型的消息(服务端) 发送/订阅复
配置文件 yml 本文主要引用自:Spring Boot 配置文件详解,这里主要是为了进行记录以便吾辈进行查找。 yml 是 YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心,比 json、xml 等更适合做配置文件。 对比:yml 和 xml 相比,少了一些结构化的代码,使数据更直接,一目了然。yml 和 json 呢?没有谁好谁坏,合适才是最好的。yml 的语法比
使用 Java 实现 setTimeout/setInterval 场景之前想把 Java 代码中使用回调函数的方法改成 Promise 风格,苦思冥想而不得其解。然而突发奇想之下,吾辈尝试在 Java 中实现 JavaScript 的 setTimeout/setInterval,并在之后想到了如何封装回调为 Promise,所以便先在此将这个想法的写出来以供参考。 Promise 是 ES6 添加的一个重要的元素,它将回调函数压平为了一级调用,并在 ES7
SpringMVC @RequestParam 参数不能自动转换泛型集合 GitHub example 场景在使用 SpringMVC 传参的时候遇到的一个问题,本来需要的参数类型是 Map<Integer, Integer>l。然而浏览器传递过来的是 Map<String, String>。然而,此时 SpringMVC 并没有直接说参数类型错误。 Controller 大概是下面这样 123456789101112@RestControl