自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 redis序列化和反序列化问题

【代码】redis序列化和反序列化问题。

2023-05-12 15:18:17 586

原创 miniapp调用微信接口

使用miniapp调用微信api

2023-05-09 13:43:48 560

原创 java项目中的静态文件读取

静态文件读取

2022-09-20 20:29:56 4153

原创 批量下载文件

java批量下载文件

2022-07-27 09:51:12 357

原创 分布式 session 的4个解决方案

session共享

2022-07-25 18:34:38 315

原创 RequestContextHolder

RequestContextHolder简介

2022-07-22 10:38:29 257

原创 自定义注解处理器和lombok

如何实现的使用编译时注解的方式,在编译的时候对代码进行生成相应的方法如何使用lombok是一个开源项目,直接在pom中进行引用,然后在idea中进行插件安装功能通过添加注解的方式为我们自动生成一些方法,使得我们的代码更加简单易懂,在查看编译以后的文件会发现已经为我们生成了相应的方法@Data public class TestLombok { private String name; private Integer age; public static vo

2022-05-15 18:27:14 478

原创 事务不生效的原因

事务不生效的原因异常被捕获 没有进行抛出抛出非运行时异常(可以指定回滚类型为exception)注解在非public方法上面方法内部非事务调用事务方法(自己注入自己,在非事务方法当中通过注入的自己的对象调用事务方法)开启一个新的线程数据库本身不支持事务的传播属性设置为不支持事务(当前事务被挂起)...

2022-05-11 17:36:23 794

原创 elastic-job

框架图前端nginx负载均衡网关业务层能力层技术选型dubbo:zk+dubbo+springbootspring cloud:eureka + config + zuul + http restful + hystrix

2022-05-11 08:00:09 83

原创 mybatis相关问题

mybatis文章目录mybatismybatis分页问题#和$符号的区别mybatis分页问题采用全量查询进行list分页 // 方式一 List<String> data = new ArrayList<>(); List<List<String>> partition = Lists.partition(data, pageSize); List<String> list = parti

2022-05-10 20:45:17 331

原创 Event事件简单实现

Event事件简单实现

2022-05-08 15:21:13 191

原创 zookeeper分布式协调

业务代码将所有的配置数据配置到zk,其余服务对zk进行watch和getzk进行创建连接的时候可以进行目录创建, 创建的目录的配置是进行隔离的。创建zk的时候可以使用countDownLatch.wait进行连接等待,在监听器中进行监听,当连接成功的时候线程继续进行。zk读取可以进行同步和异步,异步的有一个回调函数,在回掉函数中进行调用读取数据代码进行异步调用的时候会反复的回调,可以创建工具类xxxCallBack对watch,statCallback,datacallback进行继承,同时实现

2022-04-21 06:37:26 177

原创 序列化date问题

在给前端返回date类型的值的时候进行格式化方式一:单属性配置@JsonSerialize(using = JsonDateSerializer.class)private Date createDate;方式二:全局配置

2022-04-11 18:50:16 595

原创 多线程高并发1

线程一个程序里面的不同的执行路径。Thread的run和start的区别run只是单纯的掉用重写的run方法,但是start方法会以多线程的方式进行启动,即会单独启动一个线程进行调用run方法创建线程继承Thread实现Runnable接口(调用的时候需要将new对象传到一个Thread类的对象中)线程池Executor.newCachedThread简单方法sleepyield返回到就绪状态,短暂让出join。t1调用t2的join方法,等待t2运行结束锁升级:偏向锁-

2022-04-11 08:45:55 77

原创 mysql调优-(二)

索引索引为什么使用b+Tree哈希表1、哈希表要进行查询需要读取到内存中进行查询,耗费内存。(在进行memory存储引擎的时候采用哈希索引)2、哈希表进行取值的时候进行的是等值判断,但是在数据库查询的时候存在范围查询二叉树:会造成层级较深,会进行多次io,查询效率低平衡树(最长大于最低1层):在保证树平衡的同时,会进行左旋或者右旋,每次插入删除的时候导致效率过低红黑树(最长不超过最低的两倍):在插入和查询性能之间进行了平衡,牺牲了一定的查询性能造就插入性能。InnoDB 和 MYISAM

2022-02-13 18:34:40 639

原创 mysql调优-性能监控&&数据类型调优

mysql调优请求流程client (向数据库发送请求)-> sever(连接器、分析器、优化器、执行器)-> 存储引擎优化目的rbu 基于规则优化cbu 基于成本优化性能监控show profileselect * from user;set profiling =1 ;## 查看执行时间show profiles;| Query_ID | Duration | Query |+----------+------------+---

2022-02-13 11:29:29 301

原创 StampedLock

StampedLockStampedLock使用必须遵循的模式private final StampedLock sl = new StampedLock();long stamp = sl.tryOptimisticRead(); // 非阻塞获取版本信息 使用乐观锁copyVaraibale2ThreadMemory(); // 拷贝变量到线程本地堆栈if(!lock.validate(stamp)){ // 校验 long stamp

2022-02-01 13:24:54 275

原创 java常见问题

java常见问题ConcurrentHashMapConcurrentHashMap的线程安全是保证单次操作的原子性,仅仅使用ConcurrentHashMap不能保证线程安全,如果在多线程的情况下进行操作依旧要对map进行加锁public String right() throws InterruptedException { ConcurrentHashMap<String, Long> concurrentHashMap = getData(ITEM_COUNT - 10

2022-01-23 08:39:53 445

原创 java深克隆

java深克隆public class People implements Serializable, Cloneable { // 属性省略 @Override protected Object clone() { return deepClone(); } public Object deepClone() { try { ByteArrayOutputStream bos = new ByteArrayO

2021-12-13 10:35:23 125

原创 使用线程池进行定时任务

#使用线程池进行定时任务 public static void main(String[] args) { List<String> list = new ArrayList<>(); ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1); AtomicInteger j = new AtomicIntege

2021-12-10 10:25:39 1209

原创 httpPost请求

#java代码进行http请求(org.springframework.http) public static void main(String[] args) { // 请求路径 String url = ""; RestTemplate restTemplate = new RestTemplate(); // 消息头 HttpHeaders headers = new HttpHeaders();

2021-12-10 10:17:31 600

原创 mac 常用快捷键

mac idea中command + option + L 代码格式化command + shift + 上下箭头 代码块上下移动mac中command + 空格 聚焦搜索

2021-12-10 10:05:30 196

原创 Stopwatch用法

获取系统时间计算System.currentTimeMillis()Stopwatch 对程序部分代码进行计时(ms级别),适用于同步单线程代码块。StopWatch实例一次只能开启一个task,不能同时start多个task,并且在该task未stop之前不能start一个新的task,必须在该task stop之后才能开启新的task,若要一次开启多个,需要new不同的StopWatch实例// 只输出运行多少秒Stopwatch stopwatch = Stopwatch.creat.

2021-09-16 17:23:35 21492

原创 ForkJoinPool 使用

ForkJoinPool 使用public class CalculateTaskTest { // 具体调用 public List<Test1> parallelGetTest1S(List<Test2> params) throws ExecutionException, InterruptedException { ForkJoinPool pool = new ForkJoinPool(10); ForkJoinTask&

2021-09-16 15:27:04 331

原创 pdfbox简单使用

pdfbox 简单使用在制定的本地路径中创建pdf文件并且添加空页删除pdf页面删除指定区间的页面判断是否下标越界在制定的本地路径中创建pdf文件并且添加空页 public static boolean createPDDocument(String pdfPath, String fileText) { try { // 新建文档 PDDocument pdDocument = new PDDocument();

2021-07-20 17:27:28 122

原创 Serializable

Serializable一般情况下,我们在定义实体类时会继承Serializable接口。并且会定义serialversionUID(如果我们没有自己声明一个serialVersionUID变量,接口会默认生成一个serialVersionUID)package com.gosuncn.entity;import java.io.Serializable;public class User implements Serializable { private static final long

2021-02-19 14:28:21 2043 2

原创 java web后端Date数据类型以Json格式返回时格式问题

遇到问题:java web后端Date数据类型以Json格式返回时格式问题 在从数据库中查出数据存入Date类型中 返回到前端格式如下,自动加时区 "createTime": "2021-02-27T00:00:00.000+00:00" 但是前端需要的json数据格式为"createTime": "2021-01-28 03:31:02" 查找原因以为数据库查出来的timestamp格式回自动加时区,结果时因为转json的时候出现问题解决办法:在定义实体类的时候在属性上面使用@JsonFor

2021-01-28 15:46:07 378

原创 sftp下载文件过程中报错:“java.io.IOException: Pipe closed” 解决:inputStream复制

背景:实现文件SFTP上传和下载功能,公司一开始实现是直接上传到服务器,生产环境权限不足不能进行新建文件,改进为sftp上传下载,在下载的过程中出现以下报错sftp下载文件过程中报错:“java.io.IOException: Pipe closed”原因:关闭SFTP连接的时候InputStream流也随着关闭改造:我从下载SFTP流里面读取字节返回,再把读取的字节放到流里面上传外部SFTP,这样问题就解决了。 public class StreamOperateUtil { pu

2021-01-20 16:12:40 9931 5

原创 前端的水印添加

1. 水印js文件(watermark.js)//ext 使用需要进行定义Ext.define("AM.ux.watermark",{});let watermark = {}function setWatermark (staffNo, date){ let id = '1.23452384164.123412416' if (document.getElementById(id) !== null) { document.body.removeChild(document.

2021-01-14 14:17:36 473

requestBase/request.js

vue基础请求封装使用utils/request.js

2021-01-21

utils/request.js

vue使用axios封装工具类utils/request.js

2021-01-21

空空如也

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

TA关注的人

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