java
文章平均质量分 68
haohao_ding
联系邮箱:754124441@qq.com ||
haohao_ding@qq.com
展开
-
Java 进程保活方式
Java 进程保活方式文章目录Java 进程保活方式第一种方式:Java Service Wrapper第二种:编写Shell定时任务脚本第三种方式:使用Monit搭建监控系统第四种方式:用Supervisord管理进程第一种方式:Java Service Wrapper使用社区版本就可以了下载地址:https://wrapper.tanukisoftware.com/doc/english/download.jsp详细使用见:https://www.cnblogs.com/happyday56/转载 2022-04-14 18:14:57 · 919 阅读 · 0 评论 -
java多线程执行任务(工具升级版)
昨天写的java多线程执行任务(工具)但是不能符合顺序执行计划的场景,下面升级一下原工具[java多线程执行任务(工具)]: https://haohaoding.blog.csdn.net/article/details/123377795原创 2022-03-10 16:23:32 · 8500 阅读 · 5 评论 -
java多线程执行任务(工具)
在项目开发的过程中经常会碰到多线程执行任务,每次用线程池实现时,由于每次的需求都有所差别有时是所有任务同时执行有时是分批次执行有时还需要知道所有任务什么时候执行完。今天闲着写了一个通用的多线程执行工具。原创 2022-03-09 14:58:35 · 9779 阅读 · 0 评论 -
SpringBoot实现Mysql百万级数据量导出并避免OOM的解决方案
SpringBoot实现Mysql百万级数据量导出并避免OOM的解决方案文章目录SpringBoot实现Mysql百万级数据量导出并避免OOM的解决方案前言JPA实现百万级数据导出MyBatis实现百万级数据导出MyBatis实现百万级数据导出的具体实例前言动态数据导出是一般项目都会涉及到的功能。它的基本实现逻辑就是从mysql查询数据,加载到内存,然后从内存创建excel或者csv,以流的形式响应给前端。参考 https://grokonez.com/spring-framework/spring转载 2022-02-27 15:24:15 · 3193 阅读 · 3 评论 -
HashMap原理分析
HashMap 原理分析原创 2022-02-16 17:25:48 · 1319 阅读 · 0 评论 -
linux安装jdk8
linux安装jdk8文章目录linux安装jdk81.下载jdk8方法一:官网手动下载方法二:在线下载2.源码包解压3.配置jdk环境变量4.测试是否安装成功1.下载jdk8方法一:官网手动下载下载Linux环境下的jdk1.8Java Downloads | Oracle目前在官网下载低于jdk1.8的java jdk的时候需要登陆,这边分享一个账号,方便下载账号:913898356@qq.com密码:Oracle123.账号提供者:https://blog.csdn.net/WNss转载 2022-02-10 15:41:36 · 198 阅读 · 0 评论 -
全面搞懂java日志体系(jcl,slf4j;log4j,jul,simplelog,log4j2,logback)之间的关系
全面搞懂java日志体系(JCL,slf4j;log4j,jul,simplelog,log4j2,logback)之间的关系文章目录全面搞懂java日志体系(JCL,slf4j;log4j,jul,simplelog,log4j2,logback)之间的关系1.java 日志接口(门面)2.jcl3.slf4j1.java 日志接口(门面)目前常用的java接口有两种 jcl 和 slf4j 现在使用最多是 slf4j 这里简单介绍一下这两种日志接口的区别jclcommons-logging原创 2021-12-15 20:27:26 · 573 阅读 · 0 评论 -
mysql大数据使用limit分页查询优化
mysql大数据使用limit分页查询优化优化前我们一般是由limit做查询时的语句为:SELECT * FROM table a LIMIT 1000000, 10 ;当数据库的数量越大,查询数据越往后时候SQL语句执行的数据将会变得越慢。优化后优化后的语句为:SELECT * FROM table t1 RIGHT JOIN (SELECT id FROM table LIMIT 1000000, 1原创 2021-06-28 18:19:43 · 644 阅读 · 0 评论 -
SpringBoot2整合JavaMelody实现后台信息监控
SpringBoot2整合JavaMelody实现项目监控SpringBoot2整合JavaMelody实现项目监控什么是JavaMelody?JavaMelody是一款能够监测Java或Java EE应用程序的服务器。并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。(来源:百转载 2021-03-15 15:02:14 · 379 阅读 · 0 评论 -
vue接入下载文件接口
vue接入下载文件接口后端接口返回字节数组或者文件流返回下载的文件时,前端使用vue接入下载文件的方法如下:前端部分1.前端下载文件方法// obj:后端返回的的字节数组或者文件流;name:文件名;suffix:文件后缀downloadFile(obj, name, suffix) { const url = window.URL.createObjectURL(new Blob([obj])) const link = document.createElement('a') lin原创 2021-01-29 11:08:27 · 2732 阅读 · 0 评论 -
通过接口实现下载文件
直接上代码 /** * 通过接口下载文件 * * @param file 文件 * @return ResponseEntity */ public ResponseEntity<FileSystemResource> export(File file) { if (file == null) { return null; } HttpHeaders head原创 2020-12-30 17:10:21 · 1141 阅读 · 0 评论 -
springboot 2.x jpa 多数据源的配置
springboot2.x jpa 多数据源的配置相比1.x有一点不同,下面提供一种2.x的jpa 多数据源的配置1.配置类PrimaryConfigimport org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.autoconfigure.orm.j原创 2020-12-28 10:17:08 · 262 阅读 · 0 评论 -
通过枚举来巧妙干掉if-else
通过枚举来巧妙干掉if-else场景:当我们接收到一些数据需要对其进行处理时,由于它们来自于不同的渠道(如:腾讯,头条),不同渠道所需的处理方式不同,下面我们写一个简单Demo来实现该的场景。解决思路1、首先构建一个 GeneralChannelRule 基础规则抽象类,定义一个抽象方法process(),不同的渠道都需要实现该抽象方法。public abstract class GeneralChannelRule { public abstract void process();}2、编转载 2020-12-11 11:32:13 · 212 阅读 · 0 评论 -
3W 字的 Spring Boot 超详细总结
说明:前面有 4 个小节关于Spring的基础知识分别是:IoC 容器、JavaConfig、事件监听、SpringFactoriesLoader 详解它们占据了本文的大部分内容:虽然它们之间可能没有太多的联系,但这些知识对于理解 Spring Boot 的核心原理至关重要,如果你对 Spring 框架烂熟于心,完全可以跳过这 4 个小节。正是因为这个系列的文章是由这些看似不相关的知识点组成,因此取名知识清单。在过去两三年的 Spring 生态圈,最让人兴奋的莫过于 Spring Boot转载 2020-10-12 17:20:15 · 382 阅读 · 0 评论 -
java逐行读取超大文件
之前写了一个读取超大json文件的封装,但是有些情况需要逐行读取文件,这里提供逐行读取超大文件的封装,读取大json文件请点击传送门代码中写了详细的注释这里就不详细介绍了直接上代码(代码为参考https://www.cnblogs.com/metoy/p/4470418.html,代码上略有改动)import java.io.ByteArrayOutputStream;import j...原创 2020-01-19 10:43:38 · 3900 阅读 · 0 评论 -
Springboot 整合 quartz,使用spring-boot-starter-quartz获取jobDataMap数据遇到的坑
实现技术:项目中通过Springboot整合quartz,使用spring-boot-starter-quartz实现可配置定时任务。场景:定时任务执行需要使用到一些其他的参数,在创建定时任务时将参数设置到jobDataMap中并持久化到`QRTZ_JOB_DETAILS`表中的`JOB_DATA`字段,该字段为blob类型,前端展示定时任务信息是需要展示到参数数据这里不介绍怎么使用...原创 2020-01-09 17:45:25 · 6756 阅读 · 0 评论 -
通过nginx部署vue工程时,Springboot使用webSocket(spring-boot-starter-websocket)造成经常连接失败的问题
报错信息:failed:Errorinconnectionestablishment:net::ERR_CONNECTION_TIMED_OUT项目中需要实现实时推送,我们选择使用webSocket实现这一功能,代码写好本地测试都没有什么问题,但是当项目上到服务器上就经常发生webSocket连接不上的问题。服务端通过各种配置怎么都解决不了这个问题,之后去码云上想看其他人项目看有没有...原创 2020-01-03 16:48:44 · 3227 阅读 · 1 评论 -
一种java处理超大json文件时,解析json字符串内存溢出的解决方案
项目场景:采集设备每小时将采集的信息已json文件的形式上报到指定位置,项目服务每小时定时读取文件的内容,然后将文件中的信息解析入库,前期由于上报的文件较小,所有采用直接将json字符串转javaBean对象然后分析后入库。等上正式环境后发现每小时上报的文件高达200M~400M,此时jvm直接内存溢出。问题分析:200M的数据包含的对象信息有100w之多,所以解析json数据和解析后...原创 2019-10-25 19:28:28 · 15414 阅读 · 7 评论 -
批量插入百万数量级的数据到mysql的解决方案
项目场景:需要从上报的单个文件中解析出百万数据入库,项目中无论是使用jpa 还是 mybatis 存入数据达到10000时速度明显变慢,达到100000时就让人难以接受。所以就考虑使用存储过程或者是使用原生jdbc实现,该案例使用原生jdbc实现。单线程实现案例:import lombok.Data;import lombok.extern.slf4j.Slf4j;import...原创 2019-10-22 09:49:23 · 3320 阅读 · 1 评论 -
Springboot整合druid,日数据量超出500万频繁操作数据时数据库经常断开连接的问题
1.Springboot 整合 druid引入依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId></dependency>java config 配置:...原创 2019-09-24 17:57:02 · 21508 阅读 · 10 评论 -
使用jpa时,调用saveAll()方法报More than one row with the given identifier was found
业务场景:采集服务持续采集数据并放入容器中,每当容器的数量大于1000时,会将容器内的数据放入缓存容器,并清空容器,执行一次保存缓存容器的操作,保存结束后清空缓存数据。报错场景:在保存这1000条缓存容器的数据时候偶尔会报More than one row with the given identifier was found...的错误一般情况这个错误:More than one...原创 2019-09-16 14:23:27 · 3192 阅读 · 0 评论 -
多线程执行完某个业务时,需要等到所有线程结束后在执行后面的逻辑的实现
最近在项目中需要开启多个线程去批量分析数据,但是必须等全部数据分析结束后执行后续操作。下面记录一种简单的实现方案:在全局定义一个计数器,初始化需要执行的次数,在每一次执行完一个线程的时候进行减一操作,直到所有的线程执行完成后,计数器会变为0,这时就可以在计数器为0时执行线程结束后的逻辑了。在java中使用CountDownLatch对象可以帮助我们在每一次线程结束的时候减一,具体实现如...原创 2019-09-16 11:23:53 · 2763 阅读 · 0 评论