自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dangerous

一切都应该尽可能的简单,但不要太简单

  • 博客(78)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 一致性Hash的简单实现(java demo)

一致性Hash算法Java实现

2022-07-28 00:39:39 391 1

原创 MySQL使用存储过程造数据

MySQL使用存储过程造数据

2022-07-28 00:15:56 1011

原创 AES加解密工具类(JDK)

AES加解密工具类的使用

2022-07-27 23:54:57 918

原创 sun.misc.BASE64Encoder是内部专用 API, 可能会在未来发行版中删除

maven 打包的时候如果引入了对应的类 import sun.misc.BASE64Encoder;就会报这个warning ,凡是以sun开头的jdk包都是不建议使用的 ,Classes from "sun.*" packages should not be used ,不过JDK已经给我们提供了对应的工具类 import java.util.Base64; @Test public void testBASE64Encoder(){ String s .

2021-04-19 10:28:12 8146 1

原创 FTP服务器搭建(linux)

#安装vsftp软件包yum install -y vsftpd# 进入vsftp目录cd /etc/vsftpd# 在user_list中追加一行ftpuser,ftpuser为用户名随便起。# 然后添加用户命令 useradd ftpuser ,设置密码 passwd ftpuser# 编辑vsftpd配置文件vim vsftpd.conf设置userlist_enable=NONO表示只允许user_list中的用户可以登录# 开机启动chkconfig vsftp..

2021-04-16 10:39:59 105

原创 Maven Helper 插件让人误导的地方

如下图所示:maven-test-api 模块的pom ,引入了freemarker 2.3.30版本 <dependencies> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version...

2021-04-16 10:21:51 225

原创 Spring整合POI导出100W excel数据(简单、简洁、原生POI)

excel2007格式的单sheet,最高支持1048576 条记录 约100W+条 1024*1024=1048576引入POI依赖,只要这个一个就OK了<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.0.0</version></depen..

2021-02-08 17:24:43 272

原创 设置Spring Boot 单元测试自动提交事务(不回滚)

在编写单元测试时,如下代码发现数据库更改没有成功@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.NONE)class UserMapperTest { @Autowired private UserMapper userMapper; @Test @Transactional void updateUser(){ User user = new User();

2020-09-30 18:00:11 4803

原创 Spring Boot 创建单元测试类

在spring boot 项目中我们希望快速测试一个方法,这里举例DAO层 一个 UserMapper的查询方法,希望快速测试一下在 UserMapper 类上 alt+enter 快捷键 Create Test ,生成代码,再稍微改一下@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.NONE)class UserMapperTest { @Autowired private UserMapper us

2020-09-30 17:35:07 925

原创 Java8 获取上一个月

Java8 中有丰富的时间处理API,示例:获取上一个月public class LocalDateTest { public static void main(String[] args) { LocalDate date1 = LocalDate.now().minusMonths(1); LocalDate date2 = LocalDate.of(2020, 3, 31).minusMonths(1); System.out.print

2020-09-30 16:07:44 1439

原创 java 实现LRU算法(精简)

1. 继承LinkedHashMap ,LinkedHashMap 的构造方法中 可选参数accessOrder 设置为true 即可实现LRU逻辑,2.重写removeEldestEntry 方法逻辑,实现删除逻辑。public class LinkedHashMapTest2 extends LinkedHashMap<Integer, Integer> { private final int capacity; @Override protected

2020-09-30 15:59:06 437

原创 复制Cookie 到IDEA 的 HTTP Client

想在IDEA 自带的 HTTP Client 中测试接口,可是访问接口前需要授权登录,那怎么办呢?1. 首先使用浏览器访问对应的网址,登录后访问任意一个接口,使用浏览器F12 在接口的返回信息中找到 Cookie, 并复制出来2. 把 Cookie 复制到 IDEA 中即可以了,如下:3. 即可以正常测试了。 ...

2020-08-25 21:11:47 2844

原创 java.sql.SQLException: Access denied for user ‘‘@‘localhost‘

在IDEA 中配置mysql ,结果连接报错,配置如下:spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.data-username=rootspring.datasour

2020-08-25 20:55:37 487

原创 线程的六种状态

线程一共有六种状态。就是六种,1.NEW 2.RUNNABLE 3.BLOCKED 4.WAITING 5.TIMED_WAITING 6.TERMINATED 下面分别说明下各种状态情况1.NEW 线程创建完但未调用 start方法2.RUNNABLE 可细分两种情况 1. 线程正在Java虚拟机中执行 2. 等待操作系统分配资源(例如CPU时间片)3.BLOCKED 可细分两种情况: 1. 进入synchronized修饰的代码块或方法等待...

2020-08-10 23:18:56 3062

原创 java集合体系(List Set Queue Map)

java 集合体系下分为两大类 collection 和 mapcollection 下有三大接口 list set queueList 下的实现类有ArrayList 数组结构,实现了RandomAccess随机访问, 使用上注意扩容和数据迁移LinkedList 双链表结构,实现了Deque接口Vector 线程安全的集合Stack 继承Vector, 栈(FILO)CopyOnWriteArrayList 线程安全的集合Set 下的实现类有HashSet 基于key的equals方法

2020-08-10 19:22:20 176

原创 is null 、is not null、 like '%xx%' 真的就不走索引吗?

好几年前学Oracle 的时候经常看到有这种说法,is null 不走索引 is not null 也不走索引,或者is null 走索引 is not null 不走索引 后面自己试验了一下这个结论也是看情况的。所以不能直接的就断言说走或者不走索引。后面学Mysql时发现这种说话在网上还大量存在,所以现在写一下这篇文章。下面快速建一张简单的表CREATE TABLE `user` (...

2020-04-08 12:57:00 1554

原创 RedisTemplate 实现最近浏览、最近访问,最近使用功能。

需求:例如用户浏览商品需要保存用户最近浏览的N条记录,同一个商品浏览多次只保存最近一条。实现思路:使用redis 的 zSet 有序集合,zSet.add(String k,String v,Double score),k : 为用户浏览商品在redis中的标识 例如 "recent_browse_list:" + userIdv : 为商品idscore : score为一个分...

2020-03-20 19:49:11 2893 2

原创 微信支付报错 [CDATA[body参数长度有误]]

微信支付设置 body (商品描述),官方文档上写的为 String(128), 而后台设置了一个商品中文名称 ,长度有四十多结果报错了,<return_msg><![CDATA[body参数长度有误]]></return_msg> ,没想到这个 128 的长度限制 是 字节的长度限制,估计他们一个中文字符算三个字节,把名字设置端一点后就成功了。...

2020-03-13 20:16:12 1630

原创 接入GitHub 登录报错connected refused

项目测试环境 github 登录突然报错,报错信息是 connected refused,而正式环境可以登录通过 ping www.github.com 发现 ping 不通。解决办法sudo vi /etc/hosts添加 一条记录14.215.177.39 www.github.com保存,再次github 登录 就成功了。...

2020-03-12 12:24:13 825

原创 Spring 注入静态属性

Spring 提供 @Value 注解来给属性注入值,但有时候这个值可能需要多个地方用到,希望用起来像类的静态常量一样。可以通过如下方式实现:import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpubl...

2020-01-19 11:07:04 250

原创 Spring Boot 2 处理 404 500 异常

项目可能会有各种未知异常,一旦出现异常就会把堆栈信息暴露给前端,所以有个地方统一处理所有异常情况。继承spring boot 2.0.0 才有的接口 ErrorController 。/** * @author xxx */@RestControllerpublic class SystemExceptionController implements ErrorContro...

2019-09-20 17:13:55 398

原创 微博,CSDN,知乎,豆瓣等产品的@功能的技术实现(猜想)

由于项目需要添加@功能,在评论以及发布短篇内容中@提及用户,于是参考了一些产品的@实现。记录如下:CSDN的@的实现:CSDN在客户端版本的叫做Blink的功能中引入了@功能,当你输入内容以及@用户,展示内容是 @深圳热心市民 你好!实际存储的内容是:"[at]{\"u\":\"u013107634\",\"n\":\"深圳热心市民\"}[/at]你好!"以自定义标签[at]...

2019-09-20 16:46:43 554 1

原创 多级评论单表结构设计

这里的多级,本质上其实也就二级,例如微博的评论,一级评论: 对微博的评论二级评论: 对微博下的评论的回复评论 ,这里包括二种 1. 回复的是一级评论, 2, 回复的是二级评论效果如下:表数据:查询文章评论时:SELECT * from comment where article_id = '1' and comment_level = 1 ORDER B...

2019-07-25 14:10:55 18907 78

原创 Mybatis 批量删除

一直使用MybatisPlus,好久没写Mybatis 了,都差点忘了foreach 标签怎么使用了,备忘保存下,下面是一个根据 id 的集合批量删除的方法。Mapper 中的方法定义如下:Integer batchDeleteByIds(@Param("userId")String userId,@Param("ids")List<String> ids);xml ...

2019-05-28 10:36:22 4870

原创 invalid stream header: 76616C75

java 项目操作redis ,有如下三种方式使用 原生的 Jedis 使用 StringRedisTemplate 使用 RedisTemplate<Object,Object>但是他们并不是通用的,存取操作都涉及到 key value 的序列化和反序列化规则,使用 Jedis 设置的key 再使用 StringRedisTemplate 进行get 是可以获取成...

2019-05-20 11:46:24 5483 1

原创 Spring Boot 项目 打印 SQL 日志

配置文件中添加配置logging.level.org.springframework.jdbc.datasource=debug记得生产环境去掉改配置。

2019-05-09 14:57:38 887

原创 RedisAtomicInteger 的使用

RedisAtomicInteger 从名字上来说就是 redis 的原子Integer 数据类型,由于其原子性,, 可用于秒杀活动物品数量的控制。以及保证顺序生成数字。下面示例:创建了100个线程的线程池子,submit 中的代码 相当于在一个线程的 run 方法中持续执行,外面for 循环100 次,就是往线程池提交 100 次任务 @Autowired pri...

2019-04-24 19:52:40 7011

原创 ArrayList 的初始容量多少?

List<Integer> list = new ArrayList<>(); list 的初始容量到底是多少在 JDK 8 中 查看 ArrayList 源码 /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList(...

2019-04-24 16:50:38 7011 2

原创 防止 java.lang.NullPointerException 的几条建议

假设变量 status 定义为 Integer 类型 一般在比较的时候 通常会 使用如下:if(status == 1){ // do something}但是 status 如果为 null 就会报空指针异常,可以改为 status != null && status == 1 ,或者 Objects.equals(status ,1) 建议第二种,第一种写...

2019-04-24 15:55:26 583

原创 关注/粉丝 表结构设计及查询(附带SQL)

表主要字段:id user_id focus_user_id create_time id 用户id 被关注人id 创建时间 user_id 设置索引 用于查询 我的关注 focus_user_id 设置索引 用于查询 我的粉丝 user_id ,focus_user_id 设置联合唯一索引 数据库约束控制 不会...

2019-04-24 11:31:59 6739 3

原创 第三方账号登录表设计

在项目刚开始的时候User 表结构可能是 这样的 {user_id,user_name,login_account,login_password}登录使用账号密码 {login_account,login_password}, login_account 可能是 phone 或者 email 中的一种。这里假设项目一开始 账号都是手机号。user表:user_id u...

2019-04-23 15:29:03 971

原创 微博话题正则表达式匹配 ##

import java.util.LinkedHashSet;import java.util.Set;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author XXX * Date: 2019/3/20 * Description: */public class Regexp...

2019-04-23 14:07:34 2215 1

原创 StringRedisTemplate 与 RedisTemplate 的区别

之前在项目中一直都是使用 RedisTemplate ,后面发现了一个 StringRedisTemplate , 。。。孤陋寡闻了StringRedisTemplate 就是继承了 RedisTemplate<String,String> , 而 RedisTemplate 定义为 RedisTemplate<K, V>StringRedisTemplat...

2019-04-23 11:51:39 1314

原创 OncePerRequestFilter 中直接渲染数据返回。

在Spring 项目中 有时候需要再Filter中直接返回json 数据给前端/客户端,例如继承 OncePerRequestFilter 在它的doFilterInternal 中有时候需要直接返回数据,而这个是无返回参数方法 @Override protected void doFilterInternal(HttpServletRequest request, Htt...

2019-04-23 10:03:18 3193 2

原创 实现 ResponseBodyAdvice 定制化JSON 返回字段

细粒度定制化JSON返回字段,精确控制每一个接口方法返回的字段1. 创建注解CustomReturnJson 标注在controller 的方法上。 示例: @RequestMapping("/testJson") @ResponseBody @CustomReturnJson(include = {"id","topicName","topicImg"}) ...

2019-04-22 18:35:02 3062

原创 Java 使用Base64编码

使用apache commons 下的包import org.apache.commons.codec.binary.Base64;public class Test { public static void main(String[] args){ String text= "中国"; String s = Base64.encodeBase6...

2019-03-26 14:59:04 606

原创 Java8 List 转 String

public static void main(String[] args){ List&lt;String&gt; list = new ArrayList&lt;&gt;(); list.add("abc"); list.add("df"); System.out.println(String.join(",",lis...

2019-03-18 11:44:24 3210

原创 使用微软翻译 Microsoft Azure

客户端项目需要用到翻译功能,使用微软翻译 Microsoft Azure 可以免费一年,下面是流程1.需要微软账号等等一系列注册流程( 很麻烦)2.成功后 进入 Azure https://portal.azure.com/#home 找到这个。3. 创建一个资源,并找到这个秘钥4. 去github 上 下载官方样例代码 https://github.com/Mi...

2019-03-15 20:30:00 4183

原创 阿里云OSS 使用内网地址上传文件

使用阿里云上传几十MB的文件发现很慢,还可能出现 504 错误使用OSS内网地址之前地址为oss-cn-shenzhen.aliyuncs.com这个是外网地址,上传比较慢换成oss-cn-shenzhen-internal.aliyuncs.com后上传速度立刻变快。但是返回的地址 要去掉 -internal ,不然外网不能访问另外注意开发环境基本不是在...

2019-03-14 17:59:54 17318

原创 处理IOS,Safafi浏览器 无法展示webp格式图片

前提条件:图片服务器是阿里云OSS问题原因: 安卓端上传了一张webp 格式图片,格式是webp(安卓特有的格式) , 安卓手机/ chrome 等访问都没问题,但是 IOS,Safari 确访问不了。解决办法:1. 在阿里云上传图片完成后,图片URL拼接参数 ?x-oss-process=image/info类似:http://图片路径?x-oss-process=i...

2019-03-11 19:34:02 5907

Apachehttpd-2.2.21-win32-x86-no_ssl.msi

httpd-2.2.21-win32-x86-no_ssl.msi

2014-09-09

wordpress3.9

wordpress3.9的压缩包

2014-07-28

Java编程艺术

Java编程艺术的代码.rar

2014-05-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除