- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 如何优雅的创建线程池
在Java中,通过类可以方便地创建四种常见的线程池,每种线程池适用于不同的场景。特点:线程池中线程的数量不确定,可以根据需要动态创建线程,如果线程空闲时间超过60秒,则会被回收。适用于执行很多短期异步任务的场景。特点:线程池大小固定,可控制并发数,超出的任务将在队列中等待。适合执行大量同类任务,能有效控制资源消耗。特点:只创建一个工作线程,所有的任务都在这个线程中按顺序执行。适合不需要并发但希望顺序执行任务的场景。特点:可以安排任务在未来的某个时间执行,或者定期执行。
2024-04-23 14:29:37 360
原创 SLF4J对lombok类型的对象调用toString()失败--StackOverflowError
造成该问题的原因是:PackingDemand与StatusHistory之间的双向引用。方法都会无休止地相互调用导致出现java.lang.StackOverflowError。,排除PackingDemand中statusHistories这个字段。
2024-04-11 16:27:51 235
转载 Java 全栈知识体系
包含: Java 基础, Java 部分源码, JVM, Spring, Spring Boot, Spring Cloud, 数据库原理, MySQL, ElasticSearch, MongoDB, Docker, k8s, CI&CD, Linux, DevOps, 分布式, 中间件, 开发工具, Git, IDE, 源码阅读,读书笔记, 开源项目...Java 全栈知识点问题汇总(下) | Java 全栈知识体系。
2024-03-07 15:04:20 78
原创 MySQL 基于创建时间进行RANGE分区
在创建分区表之前,需要了解一下MySQL分区的基本概念。MySQL分区可以将一个大表分成多个小表,每个小表就是一个分区。常用的分区方式有:按范围分区RANGE、按列表分区LIST和按哈希分区HASH。而按照日期分区,是一种常用的按范围分区方式。在MySQL中,大量数据场景提高查询效率是非常关键的,所以,对数据表进行分区是一个很好的选择。分区的字段必须是要包含在主键当中。这时候分区的字段要么是主键,要么把分区字段加入到主键中,从而形成复合主键。首先,创建一个不分区的表。此时,会报错,含义如下。
2024-01-18 17:19:23 1185
原创 Druid 分析jpa批量插入
重代码上看似乎是一个一个的save,其实不然,查看源码(这里不细说了),jpa每次save都会先添加到action queue,在flush的时候,再通过insert action构造statement的batch操作,然后到达一个批量的时候才perform,达到一个batch的时候会调用executeBatch()。可以监控数据库访问性能,Druid 内置提供了一个功能强大的 StatFilter 插件,能够详细统计 SQL 的执行性能,这对于线上分析数据库访问性能有帮助。
2024-01-05 15:38:14 919
原创 PostgreSQL 分区
分区是指将一个大表拆分成更小的物理块,这些块可以根据其用途存储在不同的存储介质中。分区有助于提高数据库服务器的性能,因为需要读取、处理和返回的行数明显减少。涉及将不同的行放入不同的表中。例如,您将 18 岁以上学生的详细信息存储在一个分区中,将 18 岁以下的学生详细信息存储在另一个分区中。包括创建列较少的表,并使用其他表来存储剩余的列。规范化还涉及到跨表的列分割,但是垂直分区不仅限于此,甚至在已经规范化的情况下还会对列进行分区。在垂直分区中,我们按列划分,在水平分区中,我们按行划分。
2024-01-04 10:43:27 1911
原创 反射去除对象中String字符串的空格
DemoDTO(id=1, name=张三 , code= s0000001 , age=20 , sex=null, address=null, birthday=null)DemoDTO(id=1, name=张三, code=s0000001, age=20, sex=null, address=null, birthday=null)
2023-06-01 15:07:00 270
原创 可变的String字符串
String类使用char value[]来存字符数据,它的类型为:private final char value[];看上去它是不可更改的,因为是final类型。注意:final只是表示不能指向其他地址,它里边的内容是可以更改的。结论:String是可以更改的,使用反射,value.setAccessible(true),然后修改它即可。改变前:mode=1234。改变后:mode=abc。
2023-05-30 15:50:31 148
原创 RESTful API
{"error_code":41500,"message":"不允许上传的图片格式"}{"error_code":403002,"message":"用户已禁用"}{"error_code":40900,"message":"手机号已存在"}{"error_code":40000,"message":"无效的签名"}{"error_code":50300,"message":"服务维护中"}{"error_code":40301,"message":"权限不足"}该状态码表示因为请求存在冲突无法处理。
2023-05-22 11:23:05 331
原创 element cannot be mapped to a null key的解决方法
List转Map 报错element cannot be mapped to a null key的解决方法
2022-12-26 16:14:28 1649
原创 EasyExcel导出Excel指定属性列
所见即所得,动态列表导出。前端传递需要导出的字段,后端根据前端的字段导出对应字段列的值到Excel。
2022-11-18 15:51:32 3020 5
转载 UML类图学习
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】:带三角箭头的实线,箭头指向父类2.实现(Realization)【实现关系】:是一种类与接口的关系..
2022-03-20 19:55:32 222
原创 H5请求后台接口跨域问题
前端页面与后台运行在不同的服务器时,就会出现跨域这一问题此为后台处理方式:加一个拦截处理,对responsede header添加一些属性定义一个类并实现Filter接口OverridedoFilter方法,具体代码如下package com.ocp.comm.aspect;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.annotation.W..
2022-01-27 17:19:20 1598 5
原创 SpringCloud调用方式RestTemplate
一、RestTemplate简介RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法。调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求,可以通过使用ClientHttpRequestFactory指定不同的HTTP请求方式。ClientHttpRequestFactory接口主要提供了两种实现方式:(1)、 使用SimpleCl
2022-01-19 19:35:04 1140
原创 Object Json字符串转List<Map<String, Object>>方式
1.利用JDK1.8public List<Map<String, Object>> objToListMap(Object obj) throws GlobalException { //1.先转为json数组 JSONArray jsonArr = JSONObject.parseArray(JSONObject.toJSONString(obj)); List<Map<String, Object>> listMap
2022-01-15 11:30:53 2529
原创 SpringBoot 集成MyBatis
依赖包<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version></dependency>properties配置#指定xml文件的路径。*是个通配符,代表所有
2022-01-12 19:14:58 201
原创 nginx并发连接能力优化
一次压力测试,nginx服务器老是报告TIME_WAIT 告警, 检查nginx配置和系统网络配置发现现有的配置并发能力弱,无法满足现有的并发请求的需求。原始配置:worker_processes 2;events { worker_connections 2500;}改进方式:使用epoll模式,增加并发连接数,增加nginx系统并发连接能力。 后端使用长连接,提高端口利用率,减少TIME_WAIT状态比例,使系统可以允许更多的TIME_WAIT。 优化tcp..
2021-12-27 09:27:47 2075
原创 nginx 日志分片
nginx通过脚本,按照天进行自动分片1.创建脚本 touch cut_nginx.sh:#!/bin/bash#切割日志datetime=$(date -d "-1 day" "+%Y%m%d")log_path="/opt/nginx/logs" pid_path="/opt/nginx/logs/nginx.pid" [ -d $log_path/backup ] || mkdir -p $log_path/backup if [ -f $pid_path ] then mv
2021-12-13 09:33:21 2551
原创 加密算法RSA
一、获取公钥和私钥public static Map<String,String> createRsaKey() { Map<String,String> result = new HashMap<>(); try{ //获得对象 KeyPairGenerator 参数 RSA 1024个字节 KeyPairGenerator keyPairGen = KeyPairGenerator.
2021-09-29 11:17:17 416
原创 图片二维码生产与解析
所需jar包<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.0.0</version></dependency><dependency> <groupId>com.google.zxing</groupId>...
2021-09-18 11:21:14 211
原创 mysql递归查询
根据子ID查询所有父级创建表结构:CREATE TABLE `authority_resource` ( `id` int(11) NOT NULL COMMENT '权限id', `name` varchar(50) NOT NULL COMMENT '权限名称', `p_id` int(11) DEFAULT NULL COMMENT '父级权限id', `type` tinyint(4) NOT NULL COMMENT '权限类型 1 菜单权限 2 操作权限', `c
2021-09-08 15:54:18 255
原创 使用AES-256加解密
package com.fairy.fshop.util;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.Se.
2021-08-06 09:45:39 1361
原创 导出excel记录
直接上代码1.导出接口 /** * 信息导出 */ public void exportList(HttpServletResponse response) throws IOException { List<T> listData = ... //查询数据集; // 表头 字段顺序要与对象参数顺序对应 String[] headers = {"站点名称", "站点类型", "站点归属机.
2021-07-27 10:03:30 219
原创 坐标距离计算
1.球面计算public static void main(String[] args) { double x = 104.07966; double y = 30.581751; double x1 = 104.072833; double y1 = 30.58172; System.out.println(getDistance(x,y,x1,y1)); } /** * 角度弧度计算公式
2021-06-21 11:38:09 1072 2
转载 线程池的各个参数含义
本文由AnonyStar 发布,可转载但需声明原文出处。欢迎关注微信公账号 :云栖简码 获取更多优质文章更多文章关注笔者博客 :云栖简码 i-code.online
2020-12-02 09:15:08 255
原创 基于Apache正向代理搭建与应用
项目回迁部署环境不通外网,由于内网应用有上行请求,需要通过apache进行正向代理具体步骤1.上传httpd-2.2.29.tar.gz安装包到/data目录下,解压httpd-2.2.29.tar.gz 软件包tar -zvxf httpd-2.2.29.tar.gzcd httpd-2.2.292. 创建安装目录mkdir -p /usr/local/apache3. 编译./configure --prefix=/usr/local/apache --enable
2020-08-14 17:46:14 1001
原创 MYSQL主从搭建
两台数据库服务器搭建成主从,通过keepalived 实现高可用。如果master mysql 出现故障,虚拟ip 就会漂移到从服务器上,slave mysql 会升级成 master 。继续提供数据服务。1.服务器分配Mysql1 设置为主 master mysql ip:ip1Mysql2 设置为从 slave mysql ip:ip2虚拟ip 设置在主服务器上192.168.230.902.部署前准备设置/etc/selinux/co...
2020-07-17 10:54:16 113
原创 JDK&tomcat&supervisord 安装
一、JDK安装 step1 tar -zxvf jdk1.8.0_151.tar.gz step2 vi /etc/profile 在该文件下添加以下内容 export JAVA_HOME= /usr/java/jdk1.8.0_151export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:/lib/dt.jar:/lib/tools.jar step3 sourc...
2020-07-16 14:36:59 197
原创 JSON字符串转泛型对象
import com.alibaba.dubbo.config.ReferenceConfig;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.ObjectMapper; ReferenceConfig<T> ref.
2020-07-03 17:56:23 731
原创 商家信誉体系
1.日志上报格式1.用户APP日志上报格式字段类型 字段 字段名 通用字段 uuid 用户唯一标识 v_name APP版本 user_id 用户ID imei 设备IMEI号 ss 设...
2020-04-29 11:35:31 549
原创 H5关于微信二次分享实现
实现方案: 1、主要通过使用微信JS-SDK实现; 2、微信相关文档https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115相关配置: 1、调用微信的分享需要提供微信公众号的AppID和AppSecret(注意AppSecret是保密的,如果重置可能会影响以前的使...
2020-04-27 10:37:48 1001
原创 系统安全认证设计实现
1.Token生成逻辑 生成时间戳timestamp和时间戳nonce(保证每次唯一). signOriginStr= v_name + timestamp + nonce;//待签名字符串 salt=func();//例如:通过一些特定算法,计算出新的salt,例如进行128个字节,散列后...
2020-04-27 10:28:01 643
原创 日志系统框架 ELK
目前系统主要流程组件说明:Collector:单独的java进程,暴露HTTP接口,用于APP日志上传。Filebeat-6.7.1:日志收集工具。Logstash-6.7.1:作为管道,将收集的日志传输给Elasticsearch存储,同时具有日志过滤、数据转换功能。Elasticsearch-6.7.1:存储日志数据,提供数据搜索、聚合功能。Kibana-6.7.1...
2020-04-23 09:19:38 232
原创 Vector与SynchronizedList
之前面试遇到的问题vector和Collections.synchronizedList(),下来查看资料、源码后进行总结如下:1.SynchronizedList是什么2.Vector与SynchronizedList之间的区别是什么3.Vector和SynchronizedList之间的区别总结SynchronizedList是什么? Synchroniz...
2020-04-22 10:17:46 816
原创 生产问题排查
问题:多台服务其中有一台不能正常访问首先查看系统资源占用信息,通过top命令看一下发现正在运行的JAVA项目CPU占用率很高,百分之400左右了,那么问题一定出在这个程序中,第一感觉是代码有问题了,是不是某种条件下有死循环了,或者突然有什么地方出现了大量运算然后由上面TOP可知进程ID为21501再通过ps命令(Ps -mp pid -o THREAD,tid,time)查看这...
2020-04-22 09:07:02 433
原创 面向对象设计原则
1. 单一职责原则(Single Responsibility Principle) 一个类只负责一个功能领域中的相应职责。2. 里氏替换原则(Liskov Substitution Principle) 超类存在的地方,子类是可以替换的。3. 依赖倒置原则(Dependence Inversion Principle) 实现尽量依赖抽象,不依赖具体实现。...
2020-04-22 09:05:49 94
原创 Rabbitmq集群在线、离线安装
Rabbitmq在线离线安装一、安装前准备容1.1.rabbitmq需要erlang环境,所以需要先安装好erlang 1.2.机器准备3台进行集群安装 1.3.三台机器分别配置/etc/hosts文件 机器IP hostname1 机器IP hostnam...
2019-08-22 16:37:50 413
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人