自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用反射将指定的字段置空

【代码】利用反射将指定的字段置空。

2025-03-10 19:46:56 29

原创 策略模式在工作中的运用

【代码】策略模式在工作中的运用。

2025-02-25 20:17:05 195

原创 SQL查询出来的结果直接插入另一张表

例如下面SQL,功能就是将bupps_cups_serial表数据查出来插入bupps_cups_serial_his表中(Oracle数据库),类似一个表数据备份的功能。

2025-01-06 13:45:39 164

原创 Oracle清空表后如何恢复数据

有时候忘记备份数据,把数据清空了,或者删除了,这时候怎么恢复数据呢,使用下面sql即可,替换对应的table和column。更多oracle 闪回查询。

2025-01-02 12:30:30 206

原创 DockerCompose

而Docker Compose就可以帮助我们实现多个相互关联的Docker容器的快速部署。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器。

2024-09-23 16:02:10 911 1

原创 Docker容器网络互联

但是,容器的网络IP其实是一个虚拟的IP,其值并不固定与某一个容器绑定,如果我们在开发时写死某个IP,而在部署时很可能MySQL容器的IP会发生变化,连接会失败。Java项目往往需要访问其它各种中间件,例如MySQL、Redis等。现在,我们的容器之间能否互相访问呢?OK,现在无需记住IP地址也可以实现容器互联了。发现可以互联,没有问题。教学演示:自定义网络。

2024-09-23 15:23:15 571

原创 Gateway--服务网关

大家都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用 这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性认证复杂,每个服务都需要独立认证。存在跨域请求,在一定场景下处理相对复杂。上面的这些问题可以借助API网关来解决。

2024-09-20 10:43:55 762

原创 基于OpenFeign实现服务调用

Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。

2024-09-19 08:39:39 256

原创 Nacos

服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息。并在注册中心形成一张服务的清单,服务注册中心需要以心跳的方式去监测清单中的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。服务发现:服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实 例的访问。

2024-09-18 13:56:00 908

原创 JMeter压力测试

进入bin目录,修改jmeter.properties文件中的语言支持为language=zh_CN,然后点击jmeter.bat。

2024-09-14 14:35:12 123

原创 线程之间通信方式

【代码】线程之间通信方式。

2024-09-05 17:50:53 201

原创 可重入锁&公平锁&死锁(如何避免)

使用公平锁后 ReentrantLock lock = new ReentrantLock(true);上面这段代码没有使用公平锁,A线程抢到锁后,B线程基本抢不到票。释放锁后,在阻塞队列中等待的线程,都有机会能抢到锁。synchronized 实现死锁。ReentrantLock实现死锁。下面这段代码会出现死锁情况吗?B线程和A线程都能抢到锁。

2024-09-05 10:49:36 115

原创 volatile关键字作用

使用volatile关键字修饰的变量,修改是直接修改主内存的值,读也是直接从主内存读(跳过本地内存),所以其他线程能立即看到修改后的值。2、有序性:由于现代计算机体系结构中存在指令重排的优化机制来提高执行性能,使用volatile让执行顺序和Java源代码顺序一致。如果不用volatile 修饰flag,那么子线程中的while循环会一直卡着。1、可见性:当一个线程修改了共享变量后,其他线程能够立即看到修改后的值。

2024-09-04 16:59:33 192

原创 异步任务组合神器CompletableFuture

比如你需要做这种,任务B和C都执行完后,再执行任务A的情况,就可以使用。

2024-09-04 09:23:12 417

原创 Netty+WebSocket实现高并发网络编程

我们来实现一个Netty+WebSocket集成案例,由于Netty+WebSocket集成代码比较麻烦,我们可以利用目前开源的项目netty-websocket-spring-boot-starter轻松实现Netty和WebSocket的集成。WebSocket会话处理我们使用了netty-websocket-spring-boot-starter相关的注解,netty-websocket-spring-boot-starter相关的注解可以参考。"您的浏览器支持WebSocket"

2024-08-28 10:46:28 705

原创 redisson分布式锁

大部分网站使用的分布式锁是基于缓存的,有更好的性能,而缓存一般是以集群方式部署,保证了高可用性。而Redis分布式锁官方推荐使用redisson。

2024-08-28 09:17:04 119

原创 秒杀(防止超卖)

【代码】秒杀(防止超卖)

2024-08-27 15:51:32 140

原创 Apache Druid日志实时分析

介绍​ Apache Druid 是一个分布式的、支持实时多维 OLAP 分析的数据处理系统。它既支持高速的数据实时摄入,也支持实时且灵活的多维数据分析查询。因此 Druid 最常用的场景是大数据背景下、灵活快速的多维 OLAP 分析。另外,Druid 还有一个关键的特点:它支持根据时间戳对数据进行预聚合摄入和聚合分析,因此也有用户经常在有时序数据处理分析的场景中用到它。OLTP与OLAP的区别:OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理。

2024-08-27 09:42:52 389

原创 Lua收集请求日志

用户请求/web/items/1.html,进入到nginx第1个location中,在该location中向Kafka发送请求日志信息,并将请求中的/web去掉,跳转到另一个location中,并查找本地文件,这样既可以完成日志收集,也能完成文件的访问。在资料\lua中已经提供了该包lua-resty-kafka-master.zip,我们需要将该文件上传到/usr/local/openrestry目录下,并解压,再配置使用。定义好了消息格式后,创建一个生产者,往Kafka中发送详情页的访问信息。

2024-08-27 09:22:02 665

原创 elastic-job定时任务

​ 我们创建一个动态配置任务的类,任何逻辑代码需要创建定时任务,可以直接调用该类的指定方法即可。​ 参考地址:https://github.com/LuoLiangDSGA/spring-learning/tree/master/boot-elasticjob。​动态任务案例主要是讲解程序在运行时,动态添加定时任务,这种场景应用非常广泛。​ 使用elastic-job很容易,我们接下来学习下elastic-job的使用,这里的案例我们先实现静态任务案例,静态任务案例也就是执行时间事先写好。

2024-08-26 16:12:11 887

原创 ES(索引数据库)导入MySQL全量(批量导入)和增量数据&&Canal增量数据同步利器

canal主要用途是基于 MySQL 数据库增量日志解析,并能提供增量数据订阅和消费,应用场景十分丰富。github地址:https://github.com/alibaba/canal版本下载地址:https://github.com/alibaba/canal/releases文档地址:https://github.com/alibaba/canal/wiki/Docker-QuickStartCanal应用场景。

2024-08-23 15:30:22 1222

原创 使用canal增量同步ES索引库数据

canal主要用途是基于 MySQL 数据库增量日志解析,并能提供增量数据订阅和消费,应用场景十分丰富。github地址:https://github.com/alibaba/canal版本下载地址:https://github.com/alibaba/canal/releases文档地址:https://github.com/alibaba/canal/wiki/Docker-QuickStartCanal应用场景。

2024-08-23 15:28:44 1578 2

原创 高并发下Java中System.currentTimeMillis卡顿问题解决方案

【代码】高并发下Java中System.currentTimeMillis卡顿问题解决方案。

2024-08-19 16:31:03 308

原创 Java使用Modbus4j实现TCP通信

链接:https://pan.baidu.com/s/1hglcBhC7GbRjsKFVpzGcXA?modbus 4个常用功能码,仿真软件上面有F=01,F=02,F=03和F=04来显示。仿真软件ModbusSlaveSetup64Bit.exe下载地址。0x02:读离散量输入。0x03:读保持寄存器。0x04:读输入寄存器。

2024-08-13 17:16:41 998

原创 Vuex基本使用

Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享使用Vuex管理数据的好处:A.能够在vuex中集中管理共享的数据,便于开发和后期进行维护B.能够高效的实现组件之间的数据共享,提高开发效率C.存储在vuex中的数据是响应式的,当数据发生改变时,页面中的数据也会同步更新。

2024-08-12 15:57:22 906 1

原创 移动web开发_flex布局

数值越小,排列越靠前,默认为0。注意:和 z-index 不一样。.item {

2024-08-09 15:37:57 863

原创 Vue---day10角色权限管理(树形结构)

【代码】Vue---day10角色权限管理(树形结构)

2024-08-09 10:31:33 634

原创 Vue---day09增删改查(面包屑导航)

【代码】Vue---day09增删改查(面包屑导航)

2024-08-08 14:47:33 375

原创 Vue---day08侧边栏导航(双层for循环、字体图标、高亮显示)

【代码】Vue---day08侧边栏导航(双层for循环、字体图标、高亮显示)

2024-08-08 08:48:09 398

原创 Vue---day07登录页面

【代码】Vue---day07登录页面。

2024-08-07 16:12:53 379

原创 Vue---day06前端工程化

​ A.通过 package.json 进行配置 [不推荐使用]​ "vue":{​ }​ }​ B.通过单独的配置文件进行配置,创建vue.config.js​ }​ }

2024-08-06 14:31:23 1072

原创 Vue---day05路由

它是一个Vue.js官方提供的路由管理器。是一个功能更加强大的前端路由器,推荐使用。Vue Router和Vue.js非常契合,可以一起方便的实现SPA(single page web application,单页应用程序)应用程序的开发。Vue Router依赖于Vue,所以需要先引入Vue,再引入Vue RouterVue Router的特性:支持H5历史模式或者hash模式支持嵌套路由支持路由参数支持编程式路由支持命名路由支持路由导航守卫支持路由过渡动画特效。

2024-08-05 08:56:28 1106

原创 Vue---day04

我们使用new来构建一个Promise Promise的构造函数接收一个参数,是函数,并且传入两个参数: resolve,reject, 分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。// 在then方法中,你也可以直接return数据而不是Promise对象,在后面的then中就可以接收到数据了。// text()方法属于fetchAPI的一部分,它返回一个Promise实例对象,用于获取后台返回的数据。// 在这个then里面我们能拿到最终的数据。

2024-08-05 08:39:44 612

原创 Vue---day03

Vue组件

2024-08-02 16:51:22 1067

原创 Vue---day02

获取单选框中的值获取复选框中的值获取下拉框和文本框中的值表单修饰符.number 转换为数值.trim 自动过滤用户输入的首尾空白字符.lazy 将input事件切换成change事件在失去焦点 或者 按下回车键时才更新自定义指令内置指令不能满足我们特殊的需求Vue允许我们自定义指令Vue.directive 注册全局指令Vue.directive 注册全局指令 带参数自定义指令局部指令局部指令,需要定义在 directives 的选项

2024-08-02 08:54:48 484

原创 vue-day01

在Vue中可以通过自定义按键修饰符别名< div id = " app " > 预先定义了keycode 116(即F5)的别名为f5,因此在文字输入框中按下F5,会触发prompt方法 < input type = " text " v-on: keydown.f5 = " prompt() " > < script > Vue . config . keyCodes . f5 = 116;alert('我是 F5!');} } });

2024-07-31 17:34:27 338

原创 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

2024-07-30 14:55:38 265

原创 MAT(Memory Analyzer Tool)-Java内存分析入门实践

还是需要拿到Java Heap Dump文件,但是这个时候注意了,一定要保留现场的情况下去拿dump文件,否则重启了或者等Full GC了,现场就没有了。大家在使用上述命令时候一定要小心,如果服务器上的JVM heap过大,会造成应用“Stop the World”,建议使用参数的形式,在启动应用程序的时候就把参数带上,这样也会在内存溢出的时候,能够及时的保存线程dump文件。已经明确的告诉你问题嫌疑点:(a)234.6M,把配置的启动参数中分配的内存235.8M吃没了。

2024-07-25 10:42:29 869

原创 documents4j 将word转pdf文件,本地(Windows)测试没问题,部署到服务器(centos)报错

发现本地win没问题,到服务器Linux就有问题,原因是 documents4j 利用 Microsft Office 的 APIs 来进行文档转换,因此需要在Linux上安装 OpenOffice/LibreOffice 编辑器。首先要保证你的Java代码没问题,可以参考下面代码。把这装上后,再测试,发现可以完美转换。DocxToPdfUtil工具类。

2024-07-25 08:56:42 1393 8

原创 策略+工厂设计模式的应用

很明显,这代码太耦合,太多if…else现在只写了3个,实际情况可能几十个几百个if…else,每次添加一个新的品类,又需要修改原来代码添加一个if…这样优化有什么好处?现在新来一个品类,只需要加一个xxxHandler对应的处理方式,其他代码不用修改,代码完全解耦,条理清晰,易于扩展。比如有下面一段业务,一个自动售货机,根据用户选择不同的饮料,出对应的货。这段代码有什么问题?3、定义各种饮料的处理方式类。1、先定义一个策略接口。2、再定义一个饮料工厂。

2024-07-23 10:21:22 329

Java工作中的一些总结,你肯定也会遇到这些问题,能对你有一些借鉴和帮助

Java工作中的一些总结,你肯定也会遇到这些问题,能对你有一些借鉴和帮助,包括了我们常遇到的Controller层,Service层,Dao层遇到的问题和各种细节,以及各种框架的使用, 包括Mybatis-plus, redis, Hutool, xxl-job,kafka,上传下载, Excel导入导出等功能,工作中肯定能助你一臂之力.

2022-09-14

我的Java学习笔记, 记录学习Java的点点滴滴

我的Java学习笔记, 记录学习Java的点点滴滴,从入门到就业的笔记, 学完这些后开始从事Java方面的工作,包含了java基础, 面向对象, JavaEE,框架, git, svn等所有Java常用知识,比较适合零基础的小白入门Java

2022-09-14

SpringBoot整合es源码

SpringBoot整合es源码, 包括详细的批量操作 bulk, 批量导入, 查询所有, 分页, termQuery:词条查询, matchQuery:词条分词查询, 模糊查询:WildcardQuery, 模糊查询:regexpQuery, 模糊查询:perfixQuery, 范围查询:rangeQuery, 排序, 布尔查询:boolQuery, 聚合查询:桶聚合,分组查询, 高亮查询

2022-07-18

空空如也

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

TA关注的人

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