自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 vue多层级无限递归组件深层次获取ref

问题我的页面结构是这样的。根据组件循环布局组件,布局组件循环自身,直到遇到渲染组件为止。我需要拿到最终所有的渲染组件的ref而触发其动作。但在实际过程中却遇到因为递归层次太深。拿不到所有的ref。而且因为布局组件比如标签页布局的特殊性只能拿到当前所在的标签页,而不能触发其他标签页的方法。我当时用的方式是这样// 地图渲染事件if (Array.isArray(this.$refs.nestedComponents)) { this.$refs.nestedComponents.forEach

2021-08-19 15:33:43 2264

原创 异步请求工具类支持CompletableFuture

AsyncHttpClient(AHC)库允许Java应用程序轻松执行HTTP请求并异步处理HTTP响应。 该库还支持WebSocket协议。它的请求处理机制基于netty。作者@TomGranot 基于AsyncHttpClient和CompletableFuture,我编写了一个工具类。AsyncHttpClient:异步执行请求CompletableFuture:异步处理结果,并可聚合多个请求结果完整代码已上传httpAsync引入<dependencyManagement>

2021-05-06 18:41:27 771 1

原创 HashMap原理深入分析

引言    哈希表是基于Map接口实现的实现类。 这个实现类提供所有可选的Map操作,并允许空值和空键。HashMap大致相当于Hashtable,区别之处在于它不是线程安全的,并且允许空值和空键。这个类不保证Map的顺序,特别是,随着时间的推移,Map的顺序也会改变。    ...

2019-10-16 16:32:33 222

原创 【译】SEDA: An Architecture for Well-Conditioned, Scalable Internet Services

概述&amp;amp;amp;amp;amp;nbsp;我们为高度并发的Internet服务提出了一种新设计,我们将其称为分阶段事件驱动架构(SEDA)。SEDA旨在支持大规模并发需求并简化良好服务的构建。在SEDA中,应用程序由通过显式队列连接的阶段事件驱动网络组成。这种架构使服务具有良好的负载,在需求超过服务容量时防止资源过度使用。尽管负载波动很大,但SEDA利用一组动态资源控制器将各阶段保持在其运行状态。我们描述了几种用于自动...

2018-08-12 09:22:08 1905

原创 ThreadLocal源码与设计思想深入分析

最近突然想到ThreadLocal虽然能够为每个线程提供一个变量的副本,实现线程之间变量操作的隔离性、互不影响。但是它却不能保证状态变量的线程安全性,也就是说如果ThreadLocal为每个线程保存的变量原本就是线程不安全的,那么在多线程环境下,对此变量的操作依然存在并发安全问题。并且ThreadLocal并不能实现父子线程之间变量的传递【它的子类InheritableThreadLocal能够实...

2018-07-28 14:53:13 314

原创 JAVA内部类详解

最近在看hystrix源码的时候,发现Netflix的牛人们,使用了大量的匿名内部类。于是又回头翻了翻《java编程思想》。书中所讲、与自己理解,记录于瓷片文章。内部类的定义:&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;将一个类的定义放在另一个类定义的内部,这就是内部类。为什么需要内部类&amp;amp;amp;nbsp;&amp;amp;a

2018-06-05 21:47:25 853

原创 OpenEuler_22.03升级mongdb到7.0.4

OpenEuler_22.03升级mongdb到最新7.0.4

2023-12-07 20:35:59 449

原创 openEuler 22.03 升级openssh9.5

原文链接:https://blog.csdn.net/rzhidong/article/details/134512216。校验配置文件,注释掉过期选项。如果升级成功,无需以下操作。编译最后无报错即编译成功。

2023-12-05 18:43:35 800

原创 mysql优化总结

创建全文索引的字段必须是CHAR、VARCHAR或者TEXT类型,且表的存储引擎必须是InnoDB或者MyISAM。如果想对分区的表创建全文检索,可以将表进行copy。创建分区的存储过程如下(每次执行先校验当前分区是否存在,如果存在则不处理;Mysql不能自动创建分区,需要使用mysql event事件的方式自动创建分区。创建全文索引,必须用ngram分词器,不指定ngrm,分词效果很差。尽量使用联合索引,没有必要的索引不要创建,会影响联合索引命中。将表中的数据进行分区,以月份为分区单位。

2023-06-14 00:00:42 544

原创 Less变量动态修改

这里写自定义目录标题引入less文件动态改变less变量引入less文件需要将less.js和需要动态改变变量的的less文件复制到public目录下。在index.html文件中引入<link rel="stylesheet/less" href="<%= BASE_URL %>ant-form.less"><script src="<%= BASE_URL %>less.min.js"></script>需要注意的是styleshe

2021-11-29 14:08:55 10242 5

原创 Leaflet问题

地图二次加载残缺重新渲染地图this.map._onResize()marker添加文字标记 L.marker([32.28343201224245, 119.11634445190431]).bindTooltip(item.address, { permanent: true, direction: 'right' }).addTo(map);})

2021-11-17 21:09:46 1188

原创 centos7 mysql8安装 更改默认目录

解压安装cd /apps/toolstar xf mysql-8.0.19-linux-glibc2.12-x86_64.tarmv mysql-8.0.19-linux-glibc2.12-x86_64 /apps/mv /apps/mysql-8.0.19-linux-glibc2.12-x86_64/ /apps/mysql创建数据目录mkdir -p /apps/mysql/datamkdir -p /apps/mysql/logs设置用户groupadd mysqlu

2021-07-03 22:16:07 1329 2

原创 elemnt-ui动态生成多个表单数据绑定

因为左侧除了基本条件,其它三个card根据不同的表单会有不同的结果。右侧因此也会动态改变。解决数据绑定问题尝试了多次,最后发现却是因为一个细节问题,特此记录!原因就是因为动态绑定的对象要提前生成。因为我绑定的对象格式是这样batchQueryFormData: {‘batch_table’: {‘payNum’: ‘’,‘payMethod’: ‘’},‘payList_batch’: {},‘buyInfo_batch’: {}}切记内层的batch_table,payList_.

2021-06-29 12:16:44 654

原创 elment-ui table固定列el-popover出现多个

table固定列el-popover出现多个解决办法:ref="popover-${data.id}" 触发popover时设置document.getElementById(this.refs[key].refs[key].refs[key].refs.popper.id).style.display = ‘none’<el-popover v-model="data.popShow" v-permission="permission.del"

2021-06-27 18:06:57 2787 4

原创 JS语法归纳

判断json对象是否包含某个keyObject.prototype.hasOwnProperty.call(obj, ‘key’)

2021-06-27 18:04:05 62

原创 雪花算法前台精度丢失解决方案

前言雪花算法生成的Long型ID,传到前台时末尾精度丢失。后台数据1402848130449276928传到前台变为1402848130449277000。为了兼容先前代码。方案为:后台类型保持不变。jackson序列化数据到前台时,将Long转为String。前台使用String类型ID,既不影响前后台数据交互,也不影响前台大部分代码,我的前台系统代码也只是修改了分页插件的Total变量,将其再次转为Number类型。后台序列化第一种方案:此种方案仅在系统中没有使用@EnableWebMvc注解时

2021-06-12 11:49:47 669

原创 jpa+AbstractRoutingDataSource+Transactional数据源切换失效

当一个请求内进行了多个dao层操作,且使用了Transactional事务,除了第一次会通过AbstractRoutingDataSource的getConnection方法切换数据源。后续CRUD操作,会包含在上一个事务中。不会进行数据源切换。通过跟踪事务拦截链为:类方法TransactionAspectSupportcreateTransactionIfNecessaryAbstractPlatformTransactionManagergetTransaction

2021-05-31 01:08:28 1461

原创 java8 Option操作归纳

判断map中元素不为空HashMap<String,Object> map = new HashMap<>();map.put("test",null);StringUtils.isNotEmpty(Optional.ofNullable(map.get("test")).orElse("").toString())

2021-05-28 18:04:05 374

原创 vue created和mounted的区别

created官方 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),property和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el property 目前尚不可用created阶段已完成了数据的初始化。比如对象的实例化,变量赋值和方法运算。此阶段DOM并未渲染,你无法获得任何DOM元素。当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 propert

2021-05-28 14:16:20 3283 4

原创 maven问题归纳

maven编译时没有替换掉@占位符问题:org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next tokenfound character ‘@’ that cannot start any token. (Do not use @ for indentation)in ‘reader’, line 5, column 11:name: @artifactId@^解决:<build>

2021-05-26 18:17:34 180

原创 ant-design-vue 问题归纳

子组件不允许改变父组件的值,也不允许通知父组件更改报错vue.runtime.esm.js?2b0e:619 [Vue warn]: Avoid mutating a prop directlysince the value will be overwritten whenever the parent componentre-renders. Instead, use a data or computed property based on theprop’s value. Prop bein

2021-05-20 18:55:08 526

原创 java8 Stream 操作归纳

前言返回一个{Collector},它对类型为T的输入元素执行分组操作,然后将结果返回到{Map}中。public static <T, K> Collector<T, ?, Map<K, List<T>>> groupingBy(Function<? super T, ? extends K> classifier) { return groupingBy(classifier, toList()); }根

2021-05-17 19:54:14 562

原创 海康视频 iframe layui 弹窗 偏移

最近升级老系统的海康视频到v1.4,遇到layui的弹窗弹出的iframe视频框,不能随拖拽而变换位置。问题是因为海康视频插件不支持随屏幕变化而自适应。需要手动控制。文档中已明确指出。修改后的代码已上传github需要在插件初始化和拖拽时,设置偏移位置自适应。在弹窗的sucess、moveEnd(拖拽)方法中自动刷新偏移量。var offsetLeft=layero.find('iframe')["prevObject"][0].offsetLeftoffsetLeft为弹窗的最上层ifram

2021-05-11 11:00:11 1615

原创 layui tree取消父子联动

最近改动一个老系统,发现原始layui tree当点击子级时,父级也会选中。因业务需要,需要将父子联动取消掉。因老版本的源代码未找到。索性将layui最新版本的tree.js源代码才gitee上copy下来进行修改。tree.js变更点setCheckbox方法变更位置:getChecked方法变更位置:不加此处逻辑,当获取选中状态时,无法获取子级修改后的代码已上传到github使用前台:var tree = layui.tree;window.orgTreeList = function

2021-04-22 18:10:15 1690 1

原创 MySQL5.7安装server_audit审计

下载server_audit.so可以从MARIADB官网下载https://downloads.mariadb.org/mariadb/mariadb-10.5.9-linux-x86_64.tar.gz查看插件安装目录mysql -uroot -pmysql> show global variables like 'plugin_dir';+---------------+--------------------------+| Variable_name | Value

2021-04-12 15:11:26 2049 5

原创 mysql dump定时任务

检查是否安装了crontabrpm -qa|grep crontab如果没有安装,则执行yum -y install vixie-cron查看crond状态service crond status如果没有运行,则执行service crond start创建备份目录mkdir -p /data/rollbackmkdir -p /data/rollback/scriptschmod 600 /data/rollback/scripts备份脚本vim /data/rollb

2021-04-08 21:15:07 268

原创 mysql5.7.28 密码、登录失败策略插件安装

修改密码配置/etc/my.cnf文件skip-grant-tables重启服务service mysqld restartmysql -uroot -p直接回车use mysql;ALTER USER 'root'@'localhost' identified by 'yourpassword';查看用户是否有远程连接权限如果没有%则需要赋予远程连接权限GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourp

2021-04-07 16:36:30 799

原创 centos6.5 opessl openssl升级

centos6.5 opessl openssl升级安装 telnet 避免 ssh 无法登录允许 root 账号登陆设置开机启动重启xinetd服务添加防火墙端口升级openssl openssh前置安装openssl升级编译安装openssl编译安装openssh备份原sshd卸载openssh旧版本,拷贝新版本openssh相关程序与配置文件若出现输入了正确的root密码也连不上的情况查看版本安装 telnet 避免 ssh 无法登录yum install xinetd telnet telnet

2021-03-31 00:33:42 249 1

原创 webuploader上传、回显、预览、删除

因为webuploader不支持已上传文件回显,尤其是选择文件之后,旋转、删除功能,原有代码是隐藏的。修改这些功能花费了不少时间、特此记录下。以下只展示关键代码,完整代码在github上upload.jshtml部分<% String path = request.getContextPath(); String basePath = request.getScheme() + ":...

2019-10-15 13:55:29 2155 2

原创 初识netty

Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 Netty是一个NIO客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。 它极大地简化了TCP和UDP套接字服务器等网络编程。 “快速简便”并不意味着最终的应用程序会受到可维护性或性能问题的影响。Netty经过精心设计,具有丰富的协议,如FTP,SMTP,HTTP以及各种二进制和...

2018-08-18 22:04:21 278

原创 macbook maven编译版本与实际环境变量不符问题解决(mavenrc)

最近在编译netty源码的时候,因为源码要依赖jdk1.8以上,可是我本地有三个java版本。 所以我手动把.bash_profile里的JAVA_HOME路径设置成了jdk1.8.0_181的路径。 但是编译代码后,一直报错,显示maven编译所用jdk为1.7。可以想象当时的绝望心情,心中岂止十万个草泥马飞过。经过周六上午坚持不懈的笨方法,经过这篇文章的启发这里写链接内容,终于解决。我...

2018-08-04 12:21:03 1756

原创 java操作两个stack实现一个queue(并发下)

面试被问到了如何用两个stack实现一个queue,当时只是想到了一种情况,也只说了个大概思想,并没有阐述到其中的具体细节,可想而知,迎来的是面试官的叹息啊,语重声长的对我说:“考虑问题要全面嘛!”。其实这个问题实现很简单,主要是其中的具体细节难把握。情急之下、除聪慧之人,的确很难想完整。此篇文章只阐述两种思路。 具体思路这篇博客已经写的很详细了,此篇文章只是实现思想,并指明在并发下情况下,该注意

2017-07-26 00:29:35 2612

原创 java实现单链表反转

实现单链表反转应该有两种思路,第一种是从首节点开始反转,一直到尾节点结束,一种是从尾节点开始反转,一直到首节点结束。 一、由首节点开始 如上图所示,首先节点1与节点2发生发反转,也就是节点2的next指向节点1,节点1因为最终会变为尾节点,所以其next置换为null,此时节点3赋值于临时变量。然后节点2与存储了节点3的临时变量发生反转。然后节点3与储存了节点4的临时变量发生发转。实现代码如

2017-07-25 01:30:11 454

原创 基于Zookeeper的路由和负载均衡实现思想

一)服务注册中心思想 如上图所示,Zookeeper上的服务配置中心分成三层结构,最上面一层为根节点,用来聚集服务节点,通过他可以查询到所有的服务,而服务名称下挂载的是服务提供者的服务器地址。根节点和服务名称采用的是Zookeeper的持久节点(persistent),服务提供者的地址节点,采用的是非持久节点(ephemeral)。服务提供者在启动时,将其提供的服务名称、服务器地址,以节点(Z

2017-07-24 00:03:53 3205 1

原创 ZooKeeper之zkClient使用

一、zkClient使用的原因 1)zookeeper原生API使用中,经常会遇到session expire这类异常,异常发生后需要进行重新连接,重新建立session,会比较麻烦 2)zookeeper的watcher机制是一次性的,如果你想订阅节点的状态变化、子节点变化等,每次在处理完变化事件之后,需要重新注册watcher。可想而知这是一件令人绝望的事情。这个特性使得在处

2017-07-23 18:36:53 2568

原创 负载均衡算法思想

1)轮训(Round Robin)法 此算法将请求按顺序轮流的分配到后端服务器,他均衡的对待后台每一台服务器,而不关心服务器实际的连接数和当前的系统负载public class RoundRobin { private static Map<String,Integer> serverWeightMap=new HashMap<String,Integer>(); priv

2017-07-20 16:33:06 388

转载 解决fastjson循环引用问题(死循环)

在双向映射的一方向中添加“@JSONField(serialize=false)”。@JSONField(serialize = false)public java.util.Set<CmsDocReceiveFile> getCmsDocReceiveFiles() { return cmsDocReceiveFiles; }

2016-06-17 19:55:52 6179 1

转载 Cron 表达式详解和案例

原文 1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常 “*” 代表每隔1秒钟触发; “,” 代表在指定的秒数触发,比如”0,15,45”代表0秒、15秒和45秒时触发任务 “-

2016-01-04 17:00:48 609

转载 servlet监听器Listener

原文地址 Listener采用了观察者模式(24种模式之一),Listener是servlet的监听器,他可以监听客户端的请求、服务器端的操作等, 通过监听器,可以自动激发一些操作。比如:监听在线用户数量当增加一个HttpSession时,就会激发sessinCreated(HttpSessionEvent sce)方法,这样就可以给在线人数+1了。常见的监听器接口:ServletContextA

2016-01-04 15:58:43 338

转载 ScheduledExecutorService定时周期执行指定的任务

原文地址 一:简单说明 ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。 下面是该接口的原型定义 java.util.concurrent.ScheduleExecutorService extends ExecutorService extends Exe

2016-01-04 15:21:10 359

server_audit.so

server_audit.so

2021-04-12

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

TA关注的人

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