Java
文章平均质量分 62
宇霖
星辰大海的征途,也从足履实地开始!
展开
-
Centos7上搭建MySQL主从
Centos7上搭建MySQL主从1.环境准备和说明主库所在机器IP:192.168.41.128从库所在机器IP:192.168.41.129保证主库和从库的databases、tables必须存在(即databases和tables的DDL语句必须保持一致且已完全执行完毕!)或者直接 GRANT ALL PRIVILEGES ON . TO ‘repl’@’%’ ; 这里的repl是从库用于同步数据的用户名,自定义即可!2.MySQL主从搭建的详细步骤:# 1 在主数据库上创建同步账原创 2020-12-01 15:55:55 · 390 阅读 · 0 评论 -
借助Zookeeper实现分布式锁
我们都知道,在JDK中,我们可以通过synchronized关键字和Lock实现同步锁,也称本地锁。一般我们用其在多线程环境中控制对资源的并发访问。本地锁有其局限性,本地锁仅适用于单个JVM进程。试想,随着业务的快速发展,单机应用势必会被替代,取而代之的将是分布式集群部署。在分布式环境中,本地锁将失去其应有效用。由此,分布式锁应运而生!原创 2020-05-06 14:02:48 · 261 阅读 · 0 评论 -
SpringBoot快速集成Mybatis并轻松上手调试
本篇主题:SpringBoot如何快速集成Mybatis并上手调试?引入相关Jar依赖这里使用Gradle作为构建工具,构建脚本build.gradle见下图:事实上,SpringBoot与Mybatis的集成由 org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.0 完成。因此,org.mybatis.spring.bo...原创 2019-04-08 21:27:48 · 800 阅读 · 0 评论 -
SpringBoot读取properties文件配置项最常用2种方式
使用SpringBoot开发过程中,难免需要配置相关数据项,然后在Java代码中@Autowired注入并使用。基于SpringBoot项目,配置项一般都存放在application.properties文件中。我们应该如何读取properties文件中的配置项呢?有2种常用的方法:使用@Value注解标注在Field上面 使用@ConfigurationProperties注解标注...原创 2019-03-17 22:27:23 · 5083 阅读 · 0 评论 -
SpringBoot中这样定义全局异常处理器Global Exception Handler
在SpringBoot中,我们使用@ControllerAdvice注解定义全局异常处理器。详见下方代码块:@ControllerAdvicepublic class GlobalExceptionHandler { private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.c...原创 2019-03-13 22:55:45 · 6952 阅读 · 0 评论 -
Java 批量打包文件 Zip下载
本篇文章主题:如何批量压缩指定目录的文件成Zip包并下载。以下附上ZIP压缩打包的关键编码:友情说明:ZIP打包下载功能,行文中将其作为一个Service服务对外开放。测试验证的话,可自行创建Controller层,建议使用REST风格API,传入HttpServletResponse对象以及指定特定目录下的图片文件名称数据集(数据类型:List),即可完成测试!public cla...原创 2019-03-05 21:14:28 · 993 阅读 · 0 评论 -
Java8 实现ArrayList求交集并集差集
本文借助Java8的Stream API完成ArrayList集合运算:求交集、并集和差集!以下代码可立刻复制至IDE运行调试!public class CollectionUtil { /** * 判断为空 */ public static boolean isEmpty(Collection<?> collection) { ...原创 2019-03-05 21:26:52 · 2885 阅读 · 0 评论 -
Java文件renameTo()重命名失败并返回false的原因分析
最近,手头上有一个图片添加水印的功能点,水印处理完成,需要对原文件进行重命名后再返回给前端,但重命名的过程并不顺利!以下,记录下问题的解决方法:// 原文件名String originalFilename = file.getOriginalFilename();// 原文件扩展名String originalFilenameExtension = org.springframewor...原创 2019-02-20 14:54:18 · 10724 阅读 · 0 评论 -
论阿里easyexcel导出Excel的优雅性,会否超乎您的预期呢?
我们直奔主题:阿里easyexcel导出Excel文件的优雅性有哪些具体表现?准备工作之引入Jar依赖:Gradle:// https://mvnrepository.com/artifact/com.alibaba/easyexcelcompile group: 'com.alibaba', name: 'easyexcel', version: '1.0.2'Maven:...原创 2019-04-24 23:03:14 · 2891 阅读 · 0 评论 -
企业付款到零钱「微信小程序别样发放红包」
目录一、开发前的准备工作二、接入微信企业付款到零钱API1)接入「企业付款到零钱」API2)接入「查询企业付款」API三、开发过程的参数封装以及工具类封装四、调试注意事项汇总一、开发前的准备工作前往商户平台开通「企业付款到零钱」。 配置好API密钥和生成API证书。「企业付款到零钱」介绍:开通注意事项见下图。详情请戳:企业付款场景介绍&操作...原创 2019-05-25 11:52:24 · 2476 阅读 · 0 评论 -
String convert to BigDecimal in Java
public class StringToBigDecimalDemo { public static void main(String[] args) { String currency="13.14"; BigDecimal bigDecimalCurrency=new BigDecimal(currency); System.out.println("String to ...原创 2019-05-28 22:33:31 · 1785 阅读 · 0 评论 -
StackOverflowError 是什么错误?
StackOverflowError 是什么错误?1.StackOverflowError是什么错误?又是什么原因引起的呢?StackOverflowError 称为栈内存溢出。常发生于方法的无限递归调用(即方法递归没有带上结束递归的条件)2.请编写一个Java程序产生StackOverflowErrorpublic class StackOverflowErrorDemo { ...原创 2019-06-29 13:09:32 · 5331 阅读 · 0 评论 -
OutOfMemoryError是什么错误?
1.OutOfMemoryError是什么错误?OutOfMemoryError 表示堆内存溢出也即我们启动Java程序时,通过 -Xmx 参数指定的最大堆内存都用光了2.请编写一个Java程序使其发生OutOfMemoryError错误在while(true)循环体当中,不断创建新线程,最终将产生OutOfMemoryError错误,示例代码如下:public class Ou...原创 2019-06-29 22:44:57 · 4296 阅读 · 0 评论 -
Java线程的4种创建方式
Java中创建线程有几种方式?继承Thread类实现Runnable接口实现Callable接口使用线程池创建线程(有多种方式)原创 2019-06-30 07:44:52 · 450 阅读 · 0 评论 -
SpringBoot 收集并记录接口调用过程信息的Aop实践
1.需求拆解2.自定义注解3.定义切面4.Demo调试原创 2019-09-29 16:18:58 · 1653 阅读 · 0 评论 -
ThreadLocal和线程栈封闭
1.线程栈是什么?2.什么叫线程封闭?线程栈封闭又是什么?3.ThreadLocal是什么?怎么使用?原创 2019-09-30 11:40:47 · 374 阅读 · 0 评论 -
原图片基础上添加图片水印和文字水印 Thumbnails Java版
水印要求:左上角为文字水印,左下角为Logo图片水印,右下角为图片水印(如百度定位静态图)。一、引入Jar依赖Gradle语法:compile 'net.coobird:thumbnailator:0.4.8'Maven语法:<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->&...原创 2019-02-19 23:12:11 · 6516 阅读 · 3 评论 -
单元测试Junit Test 聚焦Dao层 Java版
一、单元测试为什么要针对Dao层呢?其实,Dao层的单元测试,目的在于保证数据交互的准确无误,有了这个基础,那么上层的单元测试才有更高的可靠性!二、步骤说明准备好测试数据的sql脚本文件,存放在test/resource/ 目录下。当然,为了方便管理,建议按照功能模块建立细分目录,如banner。执行insert操作前,务必先执行 truncate table tableName;以防...原创 2019-02-13 18:29:11 · 1786 阅读 · 0 评论 -
条形码生成 图片裁剪 上传七牛云 返回URL链接
背景:最近一个项目的会员模块,需要将会员手机号码转换成条形码展示出来,并保证能够被扫码枪识别。接着,简要说明下编码思路,或者说步骤:引入 aspose.barcode 的Jar依赖 调用API,合理配置相关属性,生成条形码 根据需要对第2步的图片进行一轮裁剪 将图片以二进制流的方式上传至七牛云 拼接条形码的访问链接URL引入Jar依赖(maven)<repository...原创 2019-01-18 10:27:47 · 660 阅读 · 0 评论 -
HttpClient封装成常规请求方法 get post 支持key-value和json 格式传参
/** * @Description Http|Https 请求工具类 * @Author blake * @Date 2018/12/12 下午4:33 * @Version 1.0 */public class HttpUtils { private static PoolingHttpClientConnectionManager connMgr; priva...原创 2019-01-19 17:32:39 · 2452 阅读 · 0 评论 -
阿里云短信服务 发送短信验证码 区分业务场景
总结:配置好阿里云短信服务API调用所需配置项信息 按业务场景自定义标识码,做到正确发送不同场景的短信验证码 有一点需要特别注意:写这篇文章时,偶然发现阿里云短信服务API,在遇到以数字0开头的随机数验证码时,发送的验证码会忽略数字0,导致验证码长度不匹配。因此,建议在生成随机数验证码时,使用递归思想提前将 以数字0开头的随机数验证码过滤掉!手动导入依赖的Jar aliyun-java...原创 2019-01-19 17:42:21 · 1474 阅读 · 0 评论 -
二维码生成并上传至七牛云 返回图片URL
背景:最近一个项目的优惠券模块,需要将优惠券的券号转换成二维码展示出来,并保证能够被扫码枪识别。接着,简要说明下编码思路,或者说步骤:引入 qrcode 的Jar依赖 调用API,合理配置相关属性,生成二维码 根据需要对第2步的图片进行一轮裁剪(可选) 将图片以字节流的方式上传至七牛云 拼接二维码的访问链接URL 手动导入依赖Jar:Qrcode_A.jar qrcod...原创 2019-01-19 18:12:03 · 1559 阅读 · 0 评论 -
微信小程序 礼品卡转赠功能 Java
礼品卡转赠功能思路分析:将礼品卡转赠API作为小程序码的生成明文,将礼品卡转赠API以及需跳转Page的URL封存进小程序码当中 这样,用户扫描小程序码的话,将自动跳转至小程序的相应页面,并请求礼品卡转赠API 接收礼品卡转赠API响应结果,灵活处理小程序码的生成可参考另外一篇文章:小程序码生成 ...原创 2019-01-19 18:21:16 · 3921 阅读 · 0 评论 -
JsonNode 读取数据
jsonResponse ={ "status":"success", "data":{ "id":1, "dealerInfoId":1, "dealerName":"北京长怡汽车销售服务有限公司", "address":"广州市", "active":true, "created...原创 2019-01-24 22:55:50 · 10157 阅读 · 6 评论 -
Java.util.Date 转换成 TimeStamp
TimeStamp timeStamp = new TimeStamp(new Date().getTime());原创 2019-01-24 23:04:03 · 4848 阅读 · 0 评论 -
MySQL 的 datetime 对应 Java 中的哪种数据类型?
MySQL vs Java MySQL Java datetime java.sql.TimeStamp原创 2019-01-24 23:08:30 · 25011 阅读 · 0 评论 -
POI 导出Excel Java版
报表导出编码思路解析:按照一定查询条件,将满足条件的记录查询出来 创建workbook,并命名,如sheet1 使用增强for循环逐一遍历对象,先设置好表头,接着按照对象的字段创建单元格Cell并完成赋值操作 使用HttpServletRespone对象,获取输出流 OutputStream out = response.getOutputStream(); 而这也就意味着Control...原创 2019-01-25 22:07:45 · 431 阅读 · 0 评论 -
POI 导入Excel Java版 兼容2003&2007
Excel文件导入数据库思路解析:准备好需要import的Excel文件 准备Excel文件数据对应的Bean 引入POI相关的Jar依赖 做好.xls和 .xlsx 的兼容处理 读取sheet数量为N,进行N轮迭代处理 每一轮迭代处理,都是先获取Row对象,接着对Row中的每个单元格Cell进行数据类型判断匹配,按需处理 将第6步的数据初始化成一个个bean实例 将bean实例...原创 2019-01-25 22:08:44 · 459 阅读 · 0 评论 -
单元测试Junit Test 中 Assertions 使用 Java版
业务场景描述:盘库操作中需要使用具备有效期限的动态码登录系统,接下来是结合 动态码更新API 的单元测试,讲解Assertions 的常规用法。项目采用 Spring Boot + Gradle 集成,下面使用gradle 语法引入依赖:testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-te...原创 2019-01-25 22:10:50 · 3710 阅读 · 4 评论 -
微信小程序码生成并存储至七牛云COS Java版本
文章要点描述:1. 调用微信API获取接口请求凭证信息;2. 调用微信API并获取小程序码二进制流信息;3. 使用字节流解析,并转换成图片,随即上传至七牛云;4. 手动拼接图片的访问URL. private static final String ACCESS_TOKEN_KEY = "MINI_PROGRAM_ACCESS_TOKEN";// URL=> 获取...原创 2019-01-16 12:22:38 · 1359 阅读 · 0 评论 -
NIO 缓冲区
概述:NIO 缓冲区 Buffer Api 解说和运用,这里以 ByteBuffer 为例展开package nio.buffer;import org.junit.Test;import java.nio.ByteBuffer;/** * @Description Java NIO Buffer : 负责数据的存取(get=>读取数据,put=>存放数据) * ...原创 2019-01-22 10:12:15 · 301 阅读 · 0 评论 -
NIO 通道=>Channel
概述:NIO 通道 Channel 表示IO源跟目标建立的连接线路,channel通过跟buffer的交互,进而完成对数据的相关操作,有一点需要特别明确的是:channel本身并不具备操作数据的能力。 ...原创 2019-01-22 10:13:23 · 282 阅读 · 0 评论 -
单元测试Junit Test 聚焦Controller层 Java版
概要:演示如何从Controller层完成单个API的单元测试任务 单个API单元测试编写规范:一个Api对应一个测试类class,应尽可能包含Api调用会出现的状况 聚焦Controller的测试模板代码块讲解细化 涉及 Assertions , AssertJ 等Api的常规用法 先展示Controller层代码,再展示Tests代码,方便对照着查看Controller/**...原创 2019-02-13 18:25:49 · 1083 阅读 · 0 评论 -
Spring boot 获取resources 静态资源 jar包于linux服务器上运行
InputStream inputStream = this.getClass().getResourceAsStream("/templates/exportQuestionTemplate.xls");一般思维都是通过File指定路径去读取文件,但这种方式有一个隐藏的问题:编译打成Jar包,部署到linux服务器上运行,会抛异常:not such file or directory! ...原创 2019-01-17 18:27:12 · 2678 阅读 · 0 评论