- 博客(43)
- 收藏
- 关注
原创 vue2+3 基础
概念:Vue (读音 /vjuː/,类似于 view) 是一套 **构建用户界面 ** 的渐进式框架Vue.js基于数据渲染出用户可以看到的界面所谓渐进式就是循序渐进,不一定非得把Vue中的所有API都学完才能开发Vue,可以学一点开发一点所谓框架:就是一套完整的解决方案举个栗子如果把一个完整的项目比喻为一个装修好的房子,那么框架就是一个毛坯房。我们只需要在“毛坯房”的基础上,增加功能代码即可。提到框架,不得不提一下库。库,类似工具箱,是一堆方法的集合,比如 axios、lodash、echarts等。
2024-10-21 09:43:28
1101
原创 Docker安装Jenkins
Jenkins 是教大家做自动部署的东西。不是必须,自己对于 linux 只是如果有限的话,也剋选择跳过,不影响后面的学习前置必看机器上要有 jdk,服务器可以执行如下命令安装。
2024-06-11 22:24:17
391
原创 Apache POI
Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI 都是用于操作 Excel 文件。银行网银系统导出交易明细各种业务系统导出Excel报表批量导入业务数据。
2024-06-04 18:02:24
950
原创 Apache ECharts
2. 营业额统计2.1 需求分析和设计2.1.1 产品原型营业额统计是基于折现图来展现,并且按照天来展示的。实际上,就是某一个时间范围之内的每一天的营业额。同时,不管光标放在哪个点上,那么它就会把具体的数值展示出来。并且还需要注意日期并不是固定写死的,是由上边时间选择器来决定。比如选择是近7天、或者是近30日,或者是本周,就会把相应这个时间段之内的每一天日期通过横坐标展示。原型图:业务规则: 营业额指订单状态为已完成的订单金额合计 基于可视化报表的折线图展示营业额
2024-06-04 17:04:56
293
原创 WebSocket
WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。HTTP是短连接WebSocket是长连接HTTP通信是单向的,基于请求响应模式WebSocket支持双向通信HTTP和WebSocket底层都是TCP连接既然WebSocket支持双向通信,功能看似比HTTP强大,那么我们是不是可以基于WebSocket开发所有的业务功能?
2024-06-04 14:11:44
1598
原创 Spring Task(订单状态定时处理)
是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定时任务框架定时自动执行某段Java代码为什么要在Java程序中使用Spring Task?1). 信用卡每月还款提醒2). 银行贷款每月还款提醒3). 火车票售票系统处理未支付订单4). 入职纪念日为用户发送通知只要是需要定时处理的场景都可以使用Spring Task。
2024-06-04 13:53:13
779
原创 微信支付(可复用)
微信支付商户平台提供各类支付产品满足商家通过微信支付收款的需求;微信后台会调用到商户系统给推送支付的结果,在这里我们就会遇到一个问题,就是微信后台怎么就能调用到我们这个商户系统呢?通过JSAPI下单接口获取到发起支付的必要参数prepay_id,然后使用微信支付提供的小程序方法调起小程序支付(对应时序图的第10步)目前,商户系统它的ip地址就是当前自己电脑的ip地址,只是一个局域网内的ip地址,微信后台无法调用到。可以获得一个临时域名,而这个临时域名是一个公网ip,这样,微信后台就可以请求到商户系统了。
2024-06-03 17:20:52
1317
2
原创 java八股文
**候选人:**如果一条sql执行很慢的话,我们通常会使用mysql自动的执行计划explain来去查看这条sql的执行情况,比如在这里面可以通过key和key_len检查是否命中了索引,如果本身已经添加了索引,也可以判断索引是否有失效的情况,第二个,可以通过type字段查看sql是否有进一步的优化空间,是否存在全索引扫描或全盘扫描,第三个可以通过extra建议来判断,是否出现了回表的情况,如果出现了,可以尝试添加索引或修改返回字段来修复。>**候选人**:嗯,是可以重入的。>**候选人**:嗯!
2024-05-21 22:58:19
999
原创 Dubbo
Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。
2024-04-24 16:11:46
1084
原创 Spring Security
上面我们已经把准备工作做好了,包括搭建、代码、数据库。接下来我们会实现让security在认证的时候,根据我们数据库的用户和密码进行认证,也就是被security拦截业务接口,出现登录页面之后,我们需要通过输入数据库里的用户和密码来登录,而不是使用security默认的用户和密码进行登录思路: 只需要新建一个实现类,在这个实现类里面实现Security官方的UserDetailsService接口,然后重写里面的loadUserByUsername方法。
2024-04-23 22:37:41
1122
原创 Spring Cloud面试篇
回答: Nacos在更新实例列表时,会采用CopyOnWrite技术,首先将旧的实例列表拷贝一份,然后更新拷贝的实例列表,再用更新后的实例列表来覆盖旧的实例列表。这样在更新的过程中,就不会对读实例列表的请求产生影响,也不会出现脏读问题了。Hystix: 默认是基于线程池实现的线程隔离,每一个被隔离的业务都要创建一个独立的线程池,线程过多会带来额外的CPU开销,性能一般,但是隔离性更强。二、限流阈值(下图的红虚线)依然为3,时间窗口(有两个小窗口,共表示1秒) 内请求(绿块)超过阈值时,超出的请求被限流。
2024-04-22 20:30:36
1754
原创 Seata
到这里就把TC服务搭建好了,下面我们将学习微服务对seata的集成,来代理事务,形成TM和RM,完成对分布式事务的支持。在postman软件发送如下POST请求,我们库存现在只有8,但是发的是10,按理来说会失败,也就是库存扣除失败,从而金额扣除失败、订单增加失败,那是不是这样呢。经过查询数据库,我们发现余额表依旧是扣除了200,但是订单表和库存表没有变化,也就是此次操作出现了问题,我们莫名其妙扣除了用户200元,此时的事务并不是一致的,这就是分布式事务问题。除了单机启动模式,还有集群启动的模式。
2024-04-20 15:52:25
867
原创 Sentinel
在前面所有不符合我们在sentinel指定的规则的请求,都会在页面报错,但是报错不雅观,而且不管是什么问题都是同一个报错页面在浏览器下面我们将学习自定义异常,默认情况下,发生限流、降级、授权拦截时,都会抛出异常到调用方。如果要自定义异常时的返回结果,需要实现接口。而BlockException包含很多个子类,分别对应不同的场景异常说明限流异常热点参数限流的异常降级异常授权规则异常系统规则异常具体操作如下。
2024-04-19 18:48:17
1307
原创 SVN版本控制软件
1、为什么需要SVN版本控制软件SVN全称SubVersionSVN是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数软件公司都使用SVN作为代码版本管理软件。特点:操作简单,入门容易支持跨平台(Window/Linux/MacOS)支持版本回退功能(时间机器)有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。在实际项目开发中,如果两个人同时修改某个文件就会产生版本冲突问题。
2024-04-17 19:15:43
2198
原创 Spring AMQP消息中间件
SpringAMQP中消息的 序列化(消息发送) 和 反序列化(消息接收) 是怎么实现的1、利用MessageConverter实现的,默认是JDK的序列化2、注意发送方与接收方必须使用相同的MessageConverter。
2024-04-12 15:42:41
1186
1
原创 RabbitMQ
延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好的利用RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。
2024-04-11 23:31:49
1758
2
原创 Docker
8.1 总体步骤1搜索镜像2拉取镜像3查看镜像4启动镜像 - 服务端口映射5停止容器6移除容器8.2 安装tomcat1docker hub上面查找tomcat镜像2从docker hub上拉取tomcat镜像到本地3docker images查看是否有拉取到的tomcat4使用tomcat镜像创建容器实例(也叫运行镜像)docker exec -it 主机id /bin/bash-p 小写,主机端口:docker容器端口-P 大写,随机分配端口-i 交互。
2024-04-04 23:47:48
1964
2
原创 SpringCloud微服务技术栈
Feign可以支持很多的自定义配置,如下表所示:一般情况下,默认值就能满足我们使用,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可。下面以日志为例来演示如何自定义配置。
2024-04-03 11:40:59
1433
1
原创 Redis
目录1.初识Redis 1.1认识NoSQL 1.2认识Redis 1.3安装Redis2.Redis常见命令 2.1 5种常见数据结构 2.2通用命令 2.3不同数据结构的操作命令 2.3.1 String类型编辑 2.3.2 Hash类型 2.3.3 List类型 2.3.4 Set类型 2.3.5 SortedSet类型3.Redis的Java客户
2024-04-02 20:58:06
1637
3
原创 Nginx
授权DNS服务器:是一级一级授权的,根是由国际组织(注册局)去管理的,由它去管控所有的一级域名服务器的申请,将一级域名的管理授权给了全球各地的注册商,中国授权给了万网。用户和nginx是互通的,用户和应用服务器是不互通的,用户发送请求到nginx,nginx作为代理将请求发送给应用服务器(如tomcat等),tomcat接受nginx的请求处理好后将结果发送给nginx,nginx将结果发送给用户。寻找资源主要还是靠的是IP地址,但是ip地址不方便人们记忆,便又发明了域名方便记忆,通过域名来访问ip地址。
2024-03-23 15:10:59
815
原创 Linux下安装JDK,Mysql,Ngnix
反向代理什么意思呢,就是指代理服务器来接收Internet上的连接1请求,然后这个代理服务器他会将这个请求转发给网络上的服务器,而且他会从服务器上得到相应结果然后返回给这个internet上请求的客户端,这种情况的代理服务器就相当于一个反向代理的意思。把iptables关闭/开启 chkconfig iptables off/on。卸载命令 rpm -e --nodeps +mysql版本。查看命令 rpm -qa|grep mysql。首先查看系统上是否有MYSQL有的话先把他卸载了。
2024-03-12 16:32:13
916
1
原创 Vue.js
Vue 生命周期 和 生命周期的四个阶段思考:什么时候可以发送初始化渲染请求?(越早越好)什么时候可以开始操作dom??(至少dom得渲染出来)Vue生命周期:-个Vue实例从 创建到 销毁 的整个过程。生命周期四个阶段:① 创建 ② 挂载 ③ 更新 ④ 销毁Vue 生命周期函数(钩子函数):Vue生命周期过程中,会自动运行一些函数,被称为【生命周期钩子】→ 让开发者可以在【特定阶段】运行自己的代码 在文件中shift+右键 -> 创建 -> 导入 ->
2024-03-10 15:26:47
836
1
原创 小程序开发
小程序目前已经支持组件化开发,可以将页面中的功能模块抽取成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护。公共组件:将页面内的功能模块抽取成自定义组件,以便在不同的页面中重复使用页面组件:将复杂的页面拆分成多个低耦合的模块,有助于代码维护如果是公共组件,建议放在项目根目录的components 文件夹中如果是页面组件,建议放在对应页面的目录下建议:一个组件一个文件夹全局注册。
2024-03-04 22:06:13
837
1
原创 Ajax,Node.js,Npm, WebPack
本质上,webpack是一个用于现代 JavaScript应用程序的静态模块打包工具。当webpack处理应用它会在内部从一个或多个入口点构建一个依赖图(dependency graph),然后将你项目中所程序时,需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的内容。
2024-02-27 20:04:24
721
原创 JQuery
用户自己给元素添加的属性,我们称为自定义属性。比如给div添加index =“1“1.获取属性语法attr(属性) //类似原生 getAttributer2.设置属性语法attr(属性”"属性值") //类似原生 setAttributer。
2024-02-03 23:22:31
887
1
原创 MySQL运维篇
是指将主数据库的DDL和 DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步MySOL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服条器的主库,实现链状复制MysQL 复制的有点主要包含以下三个方面1.主库出现问题,可以快速切换到从库提供服务2.实现读写分离,降低主库的访问压力3.可以在从库中执行备份,以避免备份期间影响主库服务。
2024-02-02 16:34:47
1117
原创 算法与数据结构
将数组划分成两部分 [0 .. j] [j +1 .. a.length-1]未排序区间内,相邻的两个元素比较,如果前一个大于后一个,则交换位置。右边 [j+1 .. a.length-1] 是已排序部分。第三个月,它们能产下一对新的小兔子 (蓝色)。所有兔子遵循相同规律。青蛙要爬到楼顶,可以一次跳一阶,也可以一次跳两阶只能向上跳。第一个月,有一对未成熟的兔子 (黑色,注意图中个头较。左边[0 .. j] 是未排序部分。f(6) = f(5) + 上个月成熟的兔子。求第 n 个月的兔子数?
2024-01-22 22:20:03
386
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人