- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 自定义注解处理器和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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人