摘要: 前言 如果后台返回的是文件地址,那么前端直接通过 window.location.href 加文件地址,就可以下载文件; 但是如果后台返回的是文件流,那么前端就需要做一些处理; 其实前端处理的核心:就是将文件流转为文件,然后再模拟点击,实现前者的效果。 步骤 1. 封装一个下载工具 这个工具的作用就 阅读全文
posted @ 2021-10-22 20:08 汤圆学Java 阅读(41) 评论(0) 推荐(2) 编辑
摘要: 前言 有时候我们在项目中,会用到一些本地 jar 包文件,比如隔壁公司自己打包的; 此时无法从maven远程仓库拉取; 那么我们可以考虑把 jar 文件安装到本地 maven 库中,然后再添加依赖。 步骤 1. 添加 jar 文件到项目中 在 resources 目录中创建一个 lib 目录,将本地 阅读全文
posted @ 2021-09-28 22:33 汤圆学Java 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 来源:https://blog.csdn.net/qq_39938758/article/details/105577370 1、缓存 String类型 例如:热点数据缓存(例如报表、明星爆料)、对象缓存、全页缓存等 2、数据共享分布式 String 类型,因为 Redis 是分布式的独立服务,可以 阅读全文
posted @ 2021-09-19 10:42 汤圆学Java 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 本文已收录至码云:https://gitee.com/jalon2015/java-book 前言 之前写过一篇,Java核心书单,里面涵盖了几本主要的Java书籍; 后来有朋友反馈说,这几本太少了,没得选; 所以最近趁着有空,整理了一份稍微多点的,同时质量也比较高的书单; 当然这肯定也是不全的,但 阅读全文
posted @ 2021-08-09 16:49 汤圆学Java 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 目前最常用的两者方法:激活码 | 插件 更新分割线:2021-08-29 最新激活码,公众号后台回复"激活码"即可获取 更新分割线:2021-04-16 2021-4-16更新:插件 我这边已经有一个电脑失效了,但是还有一个办法就是无限重置30天 办法很简单,就是在Idea的插件市场搜索"reset 阅读全文
posted @ 2021-08-03 14:27 汤圆学Java 阅读(1187) 评论(0) 推荐(0) 编辑
摘要: 目录 前言:什么是Swagger 起步:(只需简单的3步) 加载依赖 添加注解@EnableOpenApi 启动SpringBoot,访问Swagger后台界面 配置:基于Java的配置 注解:Swagger2 和 Swagger3做对比 源码:https://github.com/Jalon201 阅读全文
posted @ 2021-07-29 14:06 汤圆学Java 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 作者:汤圆 个人博客:javalover.cc 简介 悲观锁和乐观锁都属于比较抽象的概念; 我们可以用拟人的手法来想象一下: 悲观锁:像有些人,凡事都往坏的想,做最坏的打算;在java中就表现为,总是认为其他线程会去修改共享数据,所以每次操作共享数据时,都要加锁(比如我们前面介绍过的内置锁和显式锁) 阅读全文
posted @ 2021-06-17 19:12 汤圆学Java 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 作者:汤圆 个人博客:javalover.cc 前言 背景:Spring Boot + MybatisPlus 用MybatisPlus就是为了不写SQL,用起来方便; 但是如果需要多表联合查询,还是需要手写SQL(不过GitHub上也是有一些开源的库,可以不写SQL) 本节介绍的还是通用的写法,基 阅读全文
posted @ 2021-06-02 00:02 汤圆学Java 阅读(752) 评论(3) 推荐(0) 编辑
摘要: 作者:汤圆 个人博客:javalover.cc 前言 前面在线程的安全性中介绍过全局变量(成员变量)和局部变量(方法或代码块内的变量),前者在多线程中是不安全的,需要加锁等机制来确保安全,后者是线程安全的,但是多个方法之间无法共享 而今天的主角ThreadLocal,就填补了全局变量和局部变量之间的 阅读全文
posted @ 2021-05-27 19:01 汤圆学Java 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 作者:汤圆 个人博客:javalover.cc 前言 在前面并发的开篇,我们介绍过内置锁synchronized; 这节我们再介绍下显式锁Lock 显式锁包括:可重入锁ReentrantLock、读写锁ReadWriteLock 关系如下所示: 简介 显式锁和内置锁最大的区别就是:显式锁需手动获取锁 阅读全文
posted @ 2021-05-23 20:33 汤圆学Java 阅读(195) 评论(0) 推荐(0) 编辑