- 博客(38)
- 收藏
- 关注
原创 nginx 代理 mysql 连接
Stream模块用于处理TCP和UDP流量,允许Nginx作为代理服务器处理非HTTP流量。: HTTP模块提供了处理HTTP请求的功能,包括反向代理、负载均衡、缓存、HTTP代理等。将如下配置添加到 nginx.conf 配置文件中,与 http 块同层级即可。
2024-08-05 16:13:56
296
原创 MybatisPlus 一些技巧
允许在自定义的 SQL 中使用 Wrapper 的查询条件。Since 3.0.7 版本。参数命名:在自定义 SQL 时,传递 Wrapper 对象作为参数时,参数名必须为 ew,或者使用注解 @Param(Constants.WRAPPER) 明确指定参数为 Wrapper 对象。使用 ${ew.customSqlSegment}:在 SQL 语句中,使用 ${ew.customSqlSegment} 来引用 Wrapper 对象生成的 SQL 片段。// Mapper 层编写自定义 SQL 语句。
2024-07-11 17:29:55
1003
原创 MongoDB 学习记录
MongoDB 的复制集群是一组维护相同数据集合的 mongod 进程。客户端连接到整个 Mongodb 复制集群,主节点机负责整个复制集群的写,从节点可以进行读操作,但默认还是主节点负责整个复制集群的读。主节点发生故障时,自动从从节点中选举出一个新的主节点,确保集群的正常使用,这对于客户端来说是无感知的。通常来说,一个复制集群包含 1 个主节点(Primary),多个从节点(Secondary)以及零个或 1 个仲裁节点(Arbiter)。
2024-04-08 14:50:26
634
原创 Vue下载Url图片而非直接浏览器打开
这里使用了 fetch 方法,fetch 的基本用法非常简单,只需要传递请求的 URL 作为参数,然后通过 Promise 实例的 then 方法获取响应的结果即可。res.text() :返回 URL 的文本内容。将图片转为 Blob 格式,然后再构造一个 a 标签来请求这个文件。res.formData() :返回 formData 数据。res.arrayBuffer():返回数组缓冲区数据。res.json() :返回格式化的 JSON 数据。res.blob() : 返回 blob 数据。
2024-02-03 14:54:53
953
原创 JavaScript 异步编程
2. 前一个 then 方法 return 的结果,如果前一个 then 方法返回的是 Promise 对象,则后一个 then 会到该 Promise 有了运行结果,才会进一步调用。Promise 也有一些缺点。Promise.race 方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。但是,如果 then 中返回的是一个 Promise 对象,那么下一个 then 将相当于对这个返回的 Promise 进行操作,即替换了原先的 Promise 对象。
2024-01-31 15:12:21
862
原创 Vue 组件通过 props 传值不会更新
在父组件中修改通过 props 传递到子组件的值后,通过 this.$refs 调用子组件的方法,发现子组件中取到的还是原先的值。
2024-01-20 10:32:24
1290
原创 ele-table-select 数据不回显
从其代码中可知它 updateValue 的条件是 this.value 也即 v-model 绑定的 value,与传入的 initValue 的值不相同时,才会去更新。如果既赋值了 v-model 绑定的 value,又赋值了 initValue 属性,则会出现页面第一次加载没有值回显的情况。这个组件提供了 initValue 属性,可用于后端分页的情况下,返回列表数据没有当前数据,导致组件不能回显对应名称的情况。
2024-01-03 16:21:50
457
原创 记一次 nacos 配置问题
由于从测试地址导出的配置名为 dev,而在正式环境启动的配置为 prod,故实际上 nacos 去寻找 gateway-prod.yml 是找不到的,相当于没有配置任何路由,所以找不到任何服务。配置是从测试地址导出后导入的,应该没有问题,也检查了缩进。这个问题有一个很简单的检测方法,就是重新发布一次配置,因为发布配置后服务更新配置是有日志输出的,如果没有输出日志则说明这个服务没有与配置关联上。,误以为会以这个文件完成配置,忽略了实际上服务还有自己单独的配置,而那个文件的命名是以启动环境进行拼接的。
2023-12-19 09:29:38
368
原创 学习方法积累
优先投入能尽快产生价值的基础和技术,而不要人云亦云的耗费大量的时间去学习一些用不上的东西,浪费时间,还会让自己产生一种虚幻的自己很强的感觉,既不利于自己能力提升,也会让自己心态失衡。学习不是为了一次就全部学会,学习是为了为将要出现的机会做好准备,比如说你学习redis,单纯靠看书看专栏,肯定不可能100%掌握的,但是你学了和别人没学,水平肯定有差异的。精通意味着优化,标志是创造新的经验。画出完整的领域分层图和细节分层图(画不出说明还没有建立系统的体系,对深度理解还不够,需要梳理结构,强化认知),
2023-05-02 17:18:19
117
原创 feign请求通了但还是熔断
没错,问题出在 Contorller 的注解用的是 @Controller,而不是 @RestController。返回的其实是 SpringMVC 找不到页面的404,而不是 feign 找不到接口的 404。尝试用 postman 直接请求接口,能进但还是返回 404。打上断点发现接口执行没问题,但是最后返回时返回了 404。开始以为是触发熔断了,调试 hystrix 的参数,失败,直接关闭 hystrix,还是失败 404。在一个服务中调用另一个服务,接口请求进入了,但是直接返回 404。
2023-04-25 20:33:09
459
原创 服务器(CentOS)安装SVN服务端
使用 yum 直接安装 SVN。yum -y install subversion新建一个svn目录,用于存放 Repository。mkdir /usr/local/svn使用命令创建一个 Repository。svnadmin /usr/local/svn/myRepository创建出的 Repository 中存在以下目录hooks目录:放置hook脚步文件的目录locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取..
2021-11-16 21:16:15
212
原创 vim tutor 学习记录
vim tutorh← j↓ k↑ l→:q! 放弃所有改动:wq 保存改动x 删除当前位置字符i 当前位置插入A 行尾插入 返回正常模式d表示删除操作符,we分别表示对应动作dw删除当前位置单词及空格(下一单词开头)de删除当前位置单词(当前单词)d分别表示对应动作dw 删除当前位置单词及空格(下一单词开头)de 删除当前位置单词(当前单词)d分别表示对应动作dw删除当前位置单词及空格(下一单词开头)de删除当前位置单词(当前单词)d 删除当前到行尾dd 删除整行0 移动到行首
2021-11-12 14:25:58
124
原创 记一下nginx配置Halo的问题
遇到的问题1 首页404在一开始参考官网的配置方式配置。upstream halo { server 127.0.0.1:8090;}server { listen 80; listen [::]:80; server_name www.yourdomain.com; client_max_body_size 1024m; location /halo { proxy_pass http://halo; proxy_set_header HOST $host;
2021-11-12 12:01:19
3376
原创 深入浅出Java多线程 学习记录
深入浅出Java多线程书籍地址进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。他们两个本质的区别是是否单独占有内存地址空间及其它系统资源(比如I/O)进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位(熟悉的话语)上下文是指某一时间点 CPU 寄存器和程序计数器的内容。上下文切换通常是计算密集型的,意味着此操作会消耗大量的 CPU 时间,故线程也不是越多越好。如何减少系统中上下文切换次数,是提升多线程性能的一个重点课题。我们可以使用线程组对线程进行批量
2021-08-04 19:45:49
143
原创 FreeMarker 学习记录
FreeMarker简介FreeMarker是一款模板引擎,可以基于模板和要改变的数据来生成输出文本,因为不需要知道数据从哪里来,所以可以专注于如何展现数据。核心概念:模板+数据模型=输出 。模板文件放在Web服务器上,就像静态HTML一样,当有人来访问时,FreeMarker介入执行,动态转换模板,将最新的数据内容替换模板中的${…}部分。注意:FreeMarker并不是去查找数据库,只是将后端传来的参数与页面中的标记进行替换。为模板准备的数据整体叫 数据模型。数据模型是树形的,目录是hashe
2021-08-04 19:43:17
151
原创 vim简单操作手册
依据 vim tutorh← j↓ k↑ l→:q! 放弃所有改动:wq 保存改动x 删除当前位置字符i 当前位置插入A 行尾插入 返回正常模式d表示删除操作符,we分别表示对应动作dw删除当前位置单词及空格(下一单词开头)de删除当前位置单词(当前单词)d分别表示对应动作dw 删除当前位置单词及空格(下一单词开头)de 删除当前位置单词(当前单词)d分别表示对应动作dw删除当前位置单词及空格(下一单词开头)de删除当前位置单词(当前单词)d 删除当前到行尾dd 删除整行0 移动到
2021-08-04 19:39:45
154
原创 Spring 缓存
缓存简介什么是缓存缓存是存储在内存中的数据,相比硬盘读写更快。缓存能做什么主要就是减轻数据库压力,加快响应速度。预读取:在系统对外提供服务之前,提前将一部分热点数据从硬盘加载到内存,减少上线时服务器的压力。延迟写:数据库写入为了保证准确性所以很慢。可以将写入请求先堆积在缓存,之后一次批量写入数据库,可以缓解对数据库频繁修改的压力。只能用于对数据精度要求不高的场景,存在数据丢失的可能。什么时候使用缓存**1)业务流量量级以及应用规模:**对于低并发低流量的应用而言,引入缓存并不会带
2021-08-04 19:35:19
122
原创 java8 新特性
java8 新特性注:此为复习笔记,查缺补漏,并非全部知识点讲解。Lambda表达式lambda表达式允许把函数作为一个方法的参数。使得代码结构更加紧凑。通过函数描述符能描述lambda表达式的参数。如:int example(Apple a1, Apple a2)就可以表示为(Apple, Apple)->int。传递行为正是Lambda的拿手好戏。lambda主要用来定义行内执行的方法类型接口。lambda表达式支持三种使用方式。直接使用,定义一个方法后,使用
2021-08-04 19:34:08
71
原创 Java线程池
Java线程池并发编程的一种编程方式是把任务拆分为一系列的小任务,即Runnable,然后在提交给一个Executor执行,Executor.execute(Runnalbe)。Executor在执行时使用内部的线程池完成操作。1. 为什么要使用线程池每个线程可用重复利用,能够减少创建和销毁线程的次数,减少系统开销。可以根据系统承载力,调整线程池中工作线程的数目,防止过多消耗内存。2. Java中的线程池框架顶级接口:Executor,严格说Executor并不是一个线程池,而是执行线程的
2021-08-04 19:30:33
110
原创 zTree
使用引入资源将需要使用的 zTree v3.x 相关的 js、css、img 文件分别放置到相应目录。Demo<%--z树HTML代码--%><div id="ztree"> <div> <ul id="treeDemo" class="ztree"></ul> </div></div><%--z树JS代码--%><script type="text/java
2021-04-10 19:47:01
365
原创 数据库锁的知识
数据库锁锁主要是在多用户情况下保证数据库数据完整性和一致性。锁的分类分类属性具体类型锁模式分类乐观锁、悲观锁范围锁行锁、表锁算法锁临间锁、间隙锁、记录锁属性锁共享锁、排他锁状态锁意向共享锁、意向排他锁update时会锁,delete时会锁,insert时不会锁。条件命中索引锁行,未命中索引锁全表。行锁行锁的触发是命中索引,条件命中几条就会锁几条。特征:锁冲突概率低,并发性高,但是可能出现死锁。-------------窗口A--
2021-04-10 19:46:09
71
原创 Java日志
Java中的几类日志接口型:只定义规范,不提供具体实现,面向接口编程的思想。J.C.LSLF4J实现型:提供了具体的日志收集/管理功能。Log4jJ.U.LLogbackLog4j2桥接类:多种日志框架混用时,需要桥接类完成转换,统一成一种进行输出。slf4j-jdk14slf4j-log4j12log4j-slf4j-implslf4j-jcl…发展历史最早是Log4j。而后jdk1.4之后提供了J.U.L。但是两种框架混用出现混乱,Apache
2021-04-10 19:24:11
71
原创 DataQL
简介DataQL(Data Query Language)DataQL 是一种查询语言。旨在通过提供直观、灵活的语法来描述客户端应用程序的数据需求和交互。数据的存储根据其业务形式通常是较为简单的,并不适合直接在页面上进行展示。因此开发页面的前端工程师需要为此做大量的工作,这就是 DataQL 极力解决的问题。请注意 DataQL 不是一门编程语言,它是查询语言。它对逻辑的处理仅限于简单场景。DataQL 的解决问题的重点集中在:数据的聚合和转换以及过程中的简单加工处理。特性层次结构:多数产品都涉
2021-04-10 19:19:14
2372
原创 JS回调函数
学习了JS的回调函数,有助于理解前端框架。记住一点:作为参数的函数就是回调函数,这个函数的参数来自于主函数的处理后传给他的。回调函数的定义:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。翻译一下:回调函数就是传递一个参数化的函数,就是将这个函数作为一个参数传到另一个主函数里面,
2021-03-22 20:15:14
85
原创 layer 弹窗
简介layer 是layui的一个弹出层组件,但是可以作为独立组件使用。单独使用去layer官网下载独立组件包,并且需引入jQuery1.8以上版本。引入好layer.js后,直接用即可<script src="layer.js"></script><script>layer.msg('hello'); </script>基础参数type:类型Number,0(信息框,默认),1(页面层),2(iframe层),3(加载层),4(tips
2021-03-22 19:51:12
5752
原创 从mySSMProject项目中积累的经验
项目中静态资源的导出问题遇到问题:Mybatis报错 Invalid bound statement (not found)原因:Maven没有将静态资源导出,target目录下不存在mapper.xml映射文件。处理方法:在pom.xml中配置<resouirces>进行静态资源导出,代码如下。总结:当存在静态资源却找不到的时候,想想是不是没有在maven中进行配置过滤。<resources> <resource> <direct
2021-03-21 18:20:09
89
原创 学习Shiro
简介Shiro是Java的安全框架,不如Spring Security强大,但是小而简单,能够解决问题。能应用于JavaSE、JavaEE,能够完成:认证、授权、加密、会话管理、与Web集成、缓存等。基本功能点Authentication:身份认证/登录,验证用户是不是拥有相应的身份。Authorization:授权,即权限验证,验证某个已认证用户是否拥有某种权限,能进行某种操作。Session Management:会话管理,用户登录后,在退出前的所有信息都在会话里。Crypt
2021-03-21 18:06:49
157
原创 JS表格插件DataTables
简介DateTables是一款jQuery表格插件,可以将任何HTML表格添加交互功能。分页,即时搜索和排序几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation各式各样的扩展: Editor, TableTools, FixedColumns ……丰富多样的option和强大的API支持国际化超过2900+个单元测试学习文档 官网手册如何使用
2021-03-21 17:32:17
2572
原创 JS时间插件WdatePicker
JS时间插件WdatePicker官网:http://www.my97.net/demo/index.htm常用链接:自定义格式动态变量表使用WdatePicker需要下载一个My97DatePicker包,并且包中的目录结构不能破坏,也不能改名。WdatePicker.js 是主要配置文件,在调用的地方使用该文件。常规功能支持多种元素:<input><img><div>等,可通过onclick来触发函数。<!--直接由in
2021-03-21 17:25:20
9446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人