自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于netty实现redis服务(解析redis协议密码验证)

最近使用redis缓存,但是不允许客户端直接连接redis服务器,需要模拟redis的服务器,实现redis的get\set\del\auth基础功能。网上该场景的解决方案不多,文章如有问题,请指正以备完善。使用netty来实现,Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议(redis协议)的客户、服务端应用

2021-02-26 16:52:27 2426 5

原创 【快速入门】JVM之类加载机制与Native

类加载相关、Native相关、PC寄存器(概念)、堆、栈、GC相关。

2023-10-09 11:12:10 344

原创 记录一次LiteFlow使用实战及原理分析

LiteFlow,动态编排创建组件及流程

2023-09-13 17:23:52 2858

原创 ArrayList、LinkedList、Collections.singletonList、Arrays.asList与ImmutableList.of

List ArrayList LinkedList 快速构造

2023-09-01 09:04:53 899

原创 spring注册bean方式总结

spring注册bean的方式

2023-05-16 16:06:24 1514

原创 @Autowired与@Resource原理知识点详解

@Autowired与@Resource原理知识点使用

2023-04-28 15:31:07 1318

原创 Spring Aop原理全面详解汇总

springaop详情知识点

2023-04-22 11:35:19 1005 2

原创 总结下Spring boot异步执行逻辑的几种方式

Future及FutureTask就不说了,直接说完美形态:CompletableFuture,JDK8中新增加了一个包含50个方法左右的类CompletableFuture,提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,提供了函数式编程的能力,可以通过回调的方式处理计算结果,并且提供了转换和组合CompletableFuture的方法。优势是:(不用记知道即可)可以在代码里面显式的创建线程,比如第一种方式,但是如果线程多的话会消耗系统资源,效率。低下并且还会降低系统稳定性。

2023-04-18 16:54:52 1349

原创 Java面试知识点

Java基础的面试知识

2023-02-09 15:05:09 2332

原创 spring boot启动自动执行代码方式汇总(Java spring bean)

spring bean

2022-11-12 11:32:49 3318

原创 Oracle drop删表后的数据恢复

Oracle drop删表数据恢复

2022-06-30 09:51:16 3287

原创 Java实现excel动态表头及动态sheet

Java 动态表头 多sheet

2022-06-11 10:37:14 4410 3

原创 java spark-streaming Kryo序列化缓冲区太小报错

错误信息:KryoException: Buffer overflow. Available: 0, required:XXXSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/data/hadoop/yarn/local/filecache/185/spark2-hdp-yarn-archive.tar.gz/slf4j-log4j12-1.7.16.jar!/org/slf4j/

2022-05-20 16:11:17 607

原创 记录大数据量写入Hive慢的解决过程

最近在做一个大数据类项目,用到了Hadoop Hive SparkStreaming kafka等技术,整体面很广,本片仅介绍在开发过程中遇到的大数据量写入遇到的写入特别慢的解决过程。说明: 我之前没接触过Hive相关,所以可能有些地方不是很准确,或者是还有其它解决方案,欢迎大家指出以备完善。场景: 现在有个场景:50W数据写入hive库,会使用哪种方案。我之前没接触过Hive相关知识,最开始的方法是将数据转换为SQL,使用jdbc直接insert到Hive里面。我做了个测试一晚上跑了不到30W,速度太

2022-05-17 11:17:30 4321

原创 fastJson map的value为NULL的丢失缺失问题

1.现象:fastJson的JSON.toJSONString中序列化map中的空字符串会出现空对象问题可以看到key为def的丢掉了。2.解决:然后就解决了。3.如果是json转object的话,使用:KafkaMessage message = JSON.parseObject(kafkaMessage, new TypeReference<KafkaMessage>(){});...

2022-03-31 15:36:42 1662 2

原创 cookie与session分别是什么

我们web网站常用的http协议是一种无状态协议,他无法保存用户的信息,假如说有几个不同的用户登录后进行购物,http协议是无法判断出是谁进行了购物,是谁购买了哪些东西。为了解决这种问题我们常用的方法是使用cookie和session。什么是状态管理:将浏览器和web服务器之间多次交互当成一个整体来处理,并且将多次交互所涉及的数据保存起来。状态管理分类:客户端状态管理:将状态保存在客户端。代表性技术就是cookie技术。服务端状态管理:将状态保存在服务端,代表性技术就是session技术。1.

2022-02-16 15:31:34 152 2

原创 记录一次Centos Oracle12C静默安装的详细过程

实际开发过程中,如果项目不是非得用Oracle及Centos的话,还是建议可以使用MySQL或者是数据库申请Windows服务器,因为在centos上面安装Oracle比MySQL要复杂的多。之前用过图形化安装Oracle,我感觉还是有些复杂,所以本篇介绍Oracle的静默安装步骤(我以后反正是能不用centos安装Oracle就不用)。1. 安装前准备关闭防火墙,禁止防火墙开机自启systemctl stop firewalld.service --关闭防火墙systemctl disable

2022-01-14 10:56:41 1267 1

原创 Linux 环境搭建 jdk Redis Nginx Minio Oracle12C Docker等安装

之前在北京工作的时候,技术开发与运维的工作是分开的,有专门的DBA、搞网络的、做服务器的等,而现在回到老家这边工作,没有单独专门做运维的,开发运维都是开发来做,其实我所说的运维也就限于部署层面的运维,真正的运维工作是很复杂繁琐的。话不多说,操作系统Centos7,spring boot jar包单体应用部署(jdk1.8),MInio文件存储,Redis5.0,Nginx1.20、Oracle12C(Linux部署Oracle真的有些恶心,如果可以建议将Oracle数据库安装在Windows上面,本文介绍

2021-12-27 11:24:17 2320 2

原创 记录一次通过Navicat迁移MySQL到Oracle数据库过程中的问题

工作中遇到的很多问题,记录下来以后再次遇到不至于再耗费很多事件在百度上面,也可以大家一起分享,这也是我写下来的原因之一。虽然他人遇到的问题可能与我遇到的问题并不完全相同,但是有一部分相同并能解决这一部分问题就也足够了。最近项目都用到了ArcGIS,而ArcGIS只能使用Oracle数据库,数据库最开始选用的是MySQL,为了部署统一数据库,所以需要从MySQL迁移到Oracle上面,过程中遇到了一些问题,记录如下:1. Oracle数据库表空间 用户创建授权创建表空间:create tablespa

2021-12-16 11:17:17 2804 2

原创 阿里云实现人脸登录(人脸库 OSS)

我自认为不想做curd程序员,但是免不了的会对数据基本原子操作进行处理,项目开发过程中的增删改查少不了的,但是又不甘心于curd下去,所以想要在掌握现有知识的基础上,甚至逼迫自己去学习一些东西,去接触新的技术,足够的深度做不到,最起码广度要有所保证,每天进步一点点。开篇写的算是自己的程序员生涯的一丢丢想法,言归正传,本篇介绍通过阿里云实现人脸登录功能(百度云原理类似,不过百度云的人脸不是免费的了,so果断阿里云了)。说实话本篇的说明思路我自己感觉有点乱,只好边写便梳理。。前提:系统中已经开户成功,us

2021-11-26 17:33:26 2089 1

原创 windows上部署后台运行jar包

看标题是很简单的一个jar包部署,但是对我而说因为一直是在Centos上面部署应用,Windows用的很少,所以很多Windows操作不清楚,所以想本篇记录一下,做一下相关知识储备(这么简单,还储备呢…惭愧)windows部署jar包,并使其在后台运行,简便的方法有批处理,我之前看到批处理就不知道是咋回事儿了,百度了下,放到本篇:批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。批处理是一种简单的程序,可以用 if 和 goto

2021-11-26 14:56:20 8358 1

原创 @Async不生效原因

开发过程中使用了@Async注解,但是没有生效,查找定位了好久,现将该注解失效的场景罗列总结下,以后有类似问题可以从下面场景解决,不排除有其他场景会造成该注解失效,欢迎补充。@Async注解使用有几个限制:两个方法都在同一个类里面,只是一个方法调用另一个异步方法,不生效。解决方法:拆分两个方法,将异步方法单独放在一个类里面,然后再去调用就解决了。有接口方法的实现类里的注解不生效。例子:@Controller类:DemoController接口:DemoService接口的实现@Ser

2021-11-26 11:23:55 21879 9

原创 confluence修改数据源

我是通过docker安装的confluence,修改过程基本一致,不过docker安装要先进入容器内。一、找到confluence的安装目录,我的安装目录在 /opt/atlassian/;二、由于confluence把tomcat给改造了,所以confluence的应用并没有在workapps下,而是在confluence下面;我们的工程的配置文件在classes文件夹,于是我找到了/opt/atlassian/confluence/confluence/WEB-INF/classes这个目

2021-09-02 15:17:08 630

原创 Java Web中对过滤器、拦截器、AOP的理解

java web三大器:过滤器、拦截器、监听器 (spring框架)spring、springMVC与springBoot的关系详见:https://www.cnblogs.com/liyuanhong/articles/14634620.html一、启动顺序监听器—>过滤器—>拦截器案例理解:接到上级命令,要求对电话进去监听,过滤出恐怖分子,然后,拦截他们的恐怖袭击行动。配置位置:监听器、过滤器一般配置在web.xml中,拦截器一般配置在springmvc.xml配置文件中二、

2021-06-24 11:18:30 227

原创 spring data jpa manyTomany懒加载无效问题

近期做了个用户权限的通用功能模块,包括用户管理、角色管理、菜单管理、日志及字段管理、运维监控与基于Minio的附件上传管理功能,在处理角色与菜单的关联关系的时候用到了@ManyToMany。角色role实体:CascadeType.ALL级联操作,FetchType.LAZY懒加载。ROLE与MENU为多对多关系,关联中间表为sys_role_menu。为了验证懒加载是否生效,在debug模式下发现懒加载并没有生效。在正常模式下,返回到页面也是有menus的数据。于是开始各种查找定位问题,...

2021-06-23 17:03:15 1205

原创 springboot整合minio8实现文件存储服务(最新版)

近期在构建公司技术服务平台,在搭建完一些基础技术服务之后,考虑到项目过程中使用到很多文件存储功能,所以在平台上面提供统一的文件存储服务。一开始计划直接使用阿里云OSS服务(想法简单了),后来与CTO讨论后,决定使用MinIO来完成该服务。然后开始学习MinIO相关知识,各种查看中英文版文档,现在最新的中文文档版本还是MinIO7的,所以查看了官网的英文版文档:[https://docs.min.io/docs]梳理下过程,将基础功能整理如下:1. MinIO安装(docker单机)前提需要了解do

2021-03-31 16:01:37 6102 5

转载 HTTPS原理及流程

整个过程分为以下几步:1、浏览器发起往服务器的 443 端口发起请求,请求携带了浏览器支持的加密算法和哈希算法。2、服务器收到请求,选择浏览器支持的加密算法和哈希算法。3、服务器下将数字证书返回给浏览器,这里的数字证书可以是向某个可靠机构申请的,也可以是自制的。(注释:证书包括以下这些内容:1. 证书序列号。2. 证书过期时间。3. 站点组织名。4. 站点DNS主机名。5. 站点公钥。6. 证书颁发者名。7. 证书签名。因为证书就是要给大家用的,所以不需要加密传输)4、浏览器进入数字证书认证环节,.

2021-02-26 15:59:28 275

原创 vue使用socketIoClient连接socketIo服务端反复重连问题

最近在项目中使用到了socketIo,spring boot集成socketIo作为服务端,需要前端页面vue使用socketIoClient连接服务端并监听消息,结果在连接socketIo服务端的时候出现了反复连接的情况,当时这个问题卡住了一天时间,网上面关于这个的问题特别少,就问题描述及解决过程记录如下,以供参考。简单介绍spring boot后端集成socketIo步骤:添加依赖:<dependency> <groupId>com.corundumstudio.so

2021-01-28 14:23:34 10961 12

原创 全局异常add-mappings配置false请求swagger-ui页面后台报错问题

项目中处理全局异常,配置了throw-exception-if-no-handler-found:true及resources:add-mappings:false,用于处理404异常。add-mappings:false会导致swagger无法访问,需要配置swagger:这样swagger就可以访问。但是在访问swagger-ui.html的时候后台日志报错,doc.html无此信息,错误如下:经测试,add-mappings为false导致的改错误信息。这个还没解决,请大佬指正如何处理。

2021-01-07 10:06:04 969 3

原创 spring boot admin监控管理的使用

近期通过spring boot集成了redis、rabbitMQ及websocket服务,并对外提供相应的技术服务,整合完成之后,需要对这几个服务进行spring boot应用运行健康状况监控。之前了解过spring boot admin,但是没有系统的学习使用过,借着本次实践,记录下spring boot admin的配置及使用过程。概述Spring Boot Admin是一个Web应用,用于管理和监视Spring Boot应用程序的运行状态。每个Spring Boot应用程序都被视为客户端并注册

2021-01-04 14:43:22 456 1

原创 springboot 2.3.0搭建spring boot admin启动报错

Spring Boot 有一个非常好用的监控和管理的源软件,这个软件就是 Spring Boot Admin。该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。所以计划使用spring boot admin对spring boot应用进行监控,在spring boot admin搭建启动的时候报错,找了好久都没有定位到问题,最后发现是版本问题导致的。错误如下:at de.codecentric.boot.admin.ser

2020-12-31 14:54:39 1741 1

原创 spring boot定义全局异常导致swagger无法访问

spring.resources.add-mappings=false 为静态资源设置默认处理。spring.mvc.throw-exception-if-no-handler-found=true,这样可以将自定义全局404异常方便Restful使用但是spring.resources.add-mappings=false会导致swagger也不能访问。处理办法:在实现WebMvcConfigurer这个接口的类中加入下面的方法实现:通过addResourceHandlers指定swagger

2020-12-30 09:19:35 544

原创 SpringBoot配置ThreadPoolExecutor多线程

我们常用ThreadPoolExecutor提供的线程池服务,SpringBoot框架提供了@Async注解,帮助我们更方便的将业务逻辑提交到线程池中异步执行,今天我们就来实战体验这个线程池服务。编写多线程配置类 @EnableAsync@Configurationpublic class ThreadExecutorConfig { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Bean

2020-12-28 15:05:30 2701

原创 springboot使用aop记录接口操作日志

国际管理,添加依赖我们先自定义一个注解,有关自定义注解的说明可自行百度。@Target({ ElementType.PARAMETER, ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Log { /** * 模块 */ String title() default ""; /** * 功能 */ .

2020-12-23 08:56:55 484

原创 spring boot整合rabbitMq(AmqpAdmin的使用)

开发过程中遇到的场景:需要spring boot整合rabbitMQ,并且对外提供rabbitMQ的服务,包括:rabbitMq的创建与配置、消息的发布publish,网上搜了很多都没找到这种场景相关的记录,整体过程记录如下:国际惯例,添加依赖application.yml(property)配置rabbitConfig配置类@Configurationpublic class RabbitConfig { private Logger logger = LoggerFactory

2020-12-23 08:40:10 1130

原创 springboot集成redis(Jedis)

添加Jedis依赖配置redis信息,在application.yml(application.properties)内添加redis配置信息参数说明代码实现实例化redis配置@Component@Data@ConfigurationProperties(prefix = "redis")public class RedisConfig { private String host; private int port; /**秒*/ priv.

2020-12-18 14:42:53 425

原创 spring boot拦截器内使用redisTemplate空指针

最近在做项目的过程中需要在拦截器中注入RedisTemplate对象,结果发现一只空指针。拦截器代码如下:@Configurationpublic class WebConfig implements WebMvcConfigurer { /** * 注册自定义拦截器 * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry) {

2020-12-18 14:23:33 580

原创 springboot集成socketIo,实现webSocket

之前都是使用http接口请求,最近有用到WebSocket的场景,客户端之间长连接通讯,记录一下spring boot整合socketIO的过程。国际惯例,引入依赖application.yml(或者是application.properties)配置文件添加socketIo配置添加socketIoConfig配置类@Configurationpublic class SocketConfig { private static final Logger logger = Logge

2020-12-18 14:12:52 2986 1

转载 netty socketIo使用api

netty-socketio是基于netty的socket.io服务实现,可以无缝对接前端使用的socketio-client.js。相对于javaee的原生websocket支持(@serverEndpoint)和spring-boot的MessageBroker(@messageMapping),netty-socketio绝对是最好用的websocket后台实现。因为netty-socketio完整的实现了socket.io提供的监听前台事件、向指定客户端发送事件、将指定客户端加入指定房间、向指定房

2020-12-18 13:32:52 943

转载 redis缓存雪崩和穿透的解决办法

https://blog.csdn.net/qq_35433716/article/details/86375506感谢大佬分享。

2020-11-13 10:39:57 83

屏幕取色器,前端必备

屏幕取色器,前端必备

2020-12-23

空空如也

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

TA关注的人

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