- 博客(78)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 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
8562
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
128
原创 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
266
原创 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
309
原创 设置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
4924
原创 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
960
原创 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
1476
原创 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
475
原创 复制Cookie 到IDEA 的 HTTP Client
想在IDEA 自带的 HTTP Client 中测试接口,可是访问接口前需要授权登录,那怎么办呢?1. 首先使用浏览器访问对应的网址,登录后访问任意一个接口,使用浏览器F12 在接口的返回信息中找到 Cookie, 并复制出来2. 把 Cookie 复制到 IDEA 中即可以了,如下:3. 即可以正常测试了。 ...
2020-08-25 21:11:47
2968
原创 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
519
原创 线程的六种状态
线程一共有六种状态。就是六种,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
3090
原创 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
204
原创 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
1743
原创 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
3009
2
原创 微信支付报错 [CDATA[body参数长度有误]]
微信支付设置 body (商品描述),官方文档上写的为 String(128), 而后台设置了一个商品中文名称 ,长度有四十多结果报错了,<return_msg><![CDATA[body参数长度有误]]></return_msg> ,没想到这个 128 的长度限制 是 字节的长度限制,估计他们一个中文字符算三个字节,把名字设置端一点后就成功了。...
2020-03-13 20:16:12
1697
原创 接入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
890
原创 Spring 注入静态属性
Spring 提供 @Value 注解来给属性注入值,但有时候这个值可能需要多个地方用到,希望用起来像类的静态常量一样。可以通过如下方式实现:import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpubl...
2020-01-19 11:07:04
282
原创 Spring Boot 2 处理 404 500 异常
项目可能会有各种未知异常,一旦出现异常就会把堆栈信息暴露给前端,所以有个地方统一处理所有异常情况。继承spring boot 2.0.0 才有的接口 ErrorController 。/** * @author xxx */@RestControllerpublic class SystemExceptionController implements ErrorContro...
2019-09-20 17:13:55
427
原创 微博,优快云,知乎,豆瓣等产品的@功能的技术实现(猜想)
由于项目需要添加@功能,在评论以及发布短篇内容中@提及用户,于是参考了一些产品的@实现。记录如下:优快云的@的实现:优快云在客户端版本的叫做Blink的功能中引入了@功能,当你输入内容以及@用户,展示内容是 @深圳热心市民 你好!实际存储的内容是:"[at]{\"u\":\"u013107634\",\"n\":\"深圳热心市民\"}[/at]你好!"以自定义标签[at]...
2019-09-20 16:46:43
588
1
原创 多级评论单表结构设计
这里的多级,本质上其实也就二级,例如微博的评论,一级评论: 对微博的评论二级评论: 对微博下的评论的回复评论 ,这里包括二种 1. 回复的是一级评论, 2, 回复的是二级评论效果如下:表数据:查询文章评论时:SELECT * from comment where article_id = '1' and comment_level = 1 ORDER B...
2019-07-25 14:10:55
19141
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
4906
原创 invalid stream header: 76616C75
java 项目操作redis ,有如下三种方式使用 原生的 Jedis 使用 StringRedisTemplate 使用 RedisTemplate<Object,Object>但是他们并不是通用的,存取操作都涉及到 key value 的序列化和反序列化规则,使用 Jedis 设置的key 再使用 StringRedisTemplate 进行get 是可以获取成...
2019-05-20 11:46:24
5514
1
原创 Spring Boot 项目 打印 SQL 日志
配置文件中添加配置logging.level.org.springframework.jdbc.datasource=debug记得生产环境去掉改配置。
2019-05-09 14:57:38
909
原创 RedisAtomicInteger 的使用
RedisAtomicInteger 从名字上来说就是 redis 的原子Integer 数据类型,由于其原子性,, 可用于秒杀活动物品数量的控制。以及保证顺序生成数字。下面示例:创建了100个线程的线程池子,submit 中的代码 相当于在一个线程的 run 方法中持续执行,外面for 循环100 次,就是往线程池提交 100 次任务 @Autowired pri...
2019-04-24 19:52:40
7131
原创 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
7059
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
606
原创 关注/粉丝 表结构设计及查询(附带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
6889
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
1061
原创 微博话题正则表达式匹配 ##
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
2285
1
原创 StringRedisTemplate 与 RedisTemplate 的区别
之前在项目中一直都是使用 RedisTemplate ,后面发现了一个 StringRedisTemplate , 。。。孤陋寡闻了StringRedisTemplate 就是继承了 RedisTemplate<String,String> , 而 RedisTemplate 定义为 RedisTemplate<K, V>StringRedisTemplat...
2019-04-23 11:51:39
1349
原创 OncePerRequestFilter 中直接渲染数据返回。
在Spring 项目中 有时候需要再Filter中直接返回json 数据给前端/客户端,例如继承 OncePerRequestFilter 在它的doFilterInternal 中有时候需要直接返回数据,而这个是无返回参数方法 @Override protected void doFilterInternal(HttpServletRequest request, Htt...
2019-04-23 10:03:18
3324
2
原创 实现 ResponseBodyAdvice 定制化JSON 返回字段
细粒度定制化JSON返回字段,精确控制每一个接口方法返回的字段1. 创建注解CustomReturnJson 标注在controller 的方法上。 示例: @RequestMapping("/testJson") @ResponseBody @CustomReturnJson(include = {"id","topicName","topicImg"}) ...
2019-04-22 18:35:02
3129
原创 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
624
原创 Java8 List 转 String
public static void main(String[] args){ List<String> list = new ArrayList<>(); list.add("abc"); list.add("df"); System.out.println(String.join(",",lis...
2019-03-18 11:44:24
3230
原创 使用微软翻译 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
4358
原创 阿里云OSS 使用内网地址上传文件
使用阿里云上传几十MB的文件发现很慢,还可能出现 504 错误使用OSS内网地址之前地址为oss-cn-shenzhen.aliyuncs.com这个是外网地址,上传比较慢换成oss-cn-shenzhen-internal.aliyuncs.com后上传速度立刻变快。但是返回的地址 要去掉 -internal ,不然外网不能访问另外注意开发环境基本不是在...
2019-03-14 17:59:54
19295
原创 处理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
6056
阿里云控制台 后台页面切换效果怎么实现的?
2017-10-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人