- 博客(62)
- 收藏
- 关注
原创 修改vue-element-admin,如何连接我们的后端
main.js,屏蔽这个或者删除。改哪几个文件就可以连接我们后端。最后两个文件改下端口即可。
2024-12-26 16:59:48
503
原创 provide,inject父传子
说下大概思路,导入privode,然后使用privode方法,有点像redis,key value形式存值,子组件可以通过key来获取你要传的值。你传过去是对象,那么它就是对象,如果你传过去的是数组,那么它就是数组,如果你传过去的是响应式对象,那么它就是响应式对象。这里有可能我理解有错,因为我就尝试传过去个对象或者一个响应式对象,我主要意思就是可以传响应式对象。导入inject,然后inject方法去key,value取值即可。这个方法传递子参数,可以让所有的子组件获取到。
2024-09-19 16:04:23
646
2
原创 关于导出我遇到的问题和理解
这种打开地址栏的方式去触发后端导出,但是后来我觉得,如果项目上线的话,岂不是很麻烦,还是要前端代理后再转发给后端。第二个坑,要有返回类型,上面我也没写,突然找不到代码了,返回类型要是blob,不然还是要出错。`${import.meta.env.VITE_API_URL} 这是取代理的地址。然后 关于cookie相关的取值,我这是取了一个token出来,因为我要访问后端。关于前端文件部分踩的坑,一开始我用。
2024-09-19 11:53:18
592
原创 前端vue3打印,多页打印,不使用插件(工作中让我写一个打印功能)
getTableData().tableData,其实就是去后端获取参数去了,因为这是公司的前端框架,基于vxe的,包装的方法,获取了一个表格信息,相当于获取参数。说下总体思路,创建一个组件,里面放多个span字段,然后根据父组件传入的参数,生成子组件,最好我们打印子组件的信息即可。这里也很关键,中间我遇到一个问题,那就是经常第一次点击按钮,dom元素没有加载完,就弹出打印框了,所以我加了一个异步事件,还有记得把抽屉关了。
2024-09-17 11:42:54
1223
原创 springboot+rabbitmq+死信队列,实际使用(完成了更新功能)
这个咋解决的我也搞忘了,但是为了防止它一直在刷新,你可以try,catch下,这样你可以看到报错。好像是传输的参数有问题,这个我弄了半天,后面解决的。一种方法是序列化,但是带我的人不推荐我使用,使用了另外一种,发过去的还是string类型,不过是json字符串,然后把json字符串再转换为对象。工作第一天,让我完成用rabbitmq完成对某个信息的修改功能,由于我是新人,太久没使用rabbitmq,所以我花费了 大量时间,同时遇到了些bug,我也会在中间分享,然后再分享下我的代码。
2024-08-13 15:22:24
597
原创 spring导入bean的多种方式
ClasspathXmlApplicationContext也是IOC容器工厂中的一员,默认 从classpath中获取XML配置,使用 XmlBeanDefinitionReader 进行解析配置,这是一个简单的、一站式便利的ApplicationContext。你可以指定包路径,也可以不指定包路径,你不指定包路径的话,他会默认扫描本层和子目录下带有controller,service,等,然后把bean注入到spring容器中管理。它是核心,是 Spring 注册及加载Bean 的默认实现。
2024-07-26 15:23:30
711
原创 手写spring简易版本,让你更好理解spring源码
根据class获取bean,先用class获取bean的名字,然后我们去beandefitonmap中去找bean,然后判断是不是单例bean,这里我没咋搞懂,从beandftionmap中已经获取了bean,然后还要去单例map中获取,这不是多此一举吗?创建我们需要的类,beandefito,这个类是用来装解析后的bean,主要三个字段,id,class,scop,对应xml配置的属性。关于我通过class,获取bean,我感觉我写的很混乱,写的不是很好,如果错了,不要怪我哈,以供借鉴提醒。
2024-07-25 19:48:48
483
原创 es切片和集群
2.Node 节点:集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要(在执行运维管理操作的时候),默认节点会去加入一个名称为"elasticsearch"的集群,如果直接启动一堆节点,那么它们会自动组成一个elasticsearch集群,当然一个节点也可以组成一个elasticsearch集群。ES默认就是分布式存储,Es的数据存储都是分片进行存储,一个索引库下有多个主shard,当然为了解决主shard单点故障问题,每个主shard还可以有多个从shard,来做数据冗余。
2024-07-22 18:50:40
639
原创 数据库优化-单机优化
要不然在测试的时候,开启慢查询,要把所有的功能跑一遍。或者是在项目上线的时候,短暂开启一段时间慢查询,在这段时间内,让测试人员把所有功能都执行一遍。mysql 2000个请求并发过来,性能就要有问题,可以通过最大链接指令,查看当前连接数是多少,那就设置my.ini中的最大连接数值。默认你慢查询阈值是10s,修改时间阈值,修改慢查询阈值。mysql可以集群,oracle不能集群,大小公司用mysql,oracle用中型公司。添加慢sql,性能会变低,什么时候开启慢查询,所以不能一直开启慢查询。
2024-07-20 11:16:45
324
原创 单机优化(常规优化)
比如name是辅助索引,你要查name,就不用回主键索引树去,直接返回name,把辅助索引树的key值返回了。在myisam中,它的叶子节点值,不是具体的数据,而是当前数据在磁盘 文件中的位置,再去磁盘获取数据。因为有辅助索引,有多棵树,数据放主键索引树,辅助索引树就放主键索引的key值,不可能多个索引叶子节点放数据。叶子节点放的是主键索引,通过辅助索引进行查询,通过辅助索引树找到id,再通过主键索引去查询数据。查询快就innodb,对事务要求高,innodb,安全度高,比如钱。
2024-07-17 17:37:38
348
原创 jvm优化
什么是jvm,java是跨平台语言,对不同的平台(windos,linux),有不同的jvm版本。full gc 一般是老年代的回收,伴随至少一次的minor GC ,新生代和老年代都回收,老年代,暂停时间比较长,因为是标记回收法,通常是minor gc的时间十倍以上。7.3 复制算法,把内存分为大小相等的两块,每次存储只用其中一块,当这一块用完了,就把存活的对象全部复制到另一块上,同时把使用过的这块内存空间全部清理掉,往复循环。如字面意思,每次垃圾回收的时候,都会将整个JVM暂停,回收完成后再继续。
2024-07-16 20:31:01
888
原创 数据结构复习
红黑树,查的较慢,因为多一次比较,插入和删除优与avl树,,AVL树每次插入删除会进行大量的平衡度计算,而红黑树为了维持红黑性质所做的红黑变换和旋转的开销,相较于AVL树为了维持平衡的开销要小得多。线性结构:数组,栈(先进后出),队列(先进先出),这三个都有顺序结构和链表结构形态,串,一对一的逻辑关系,比如String StringBuilder StringBuffer。平衡二叉树:在二叉查找树进行了优化,进行了平衡度计算,但是每次插入删除会进行大量平衡度计算,插入比较耗时,所以又出现了红黑树。
2024-07-16 19:39:26
437
原创 集合相关知识
有值,对hash值是否一样,key是否一样,一样覆盖就行,然后我们就要判断key和value不相等,,else if 是不是树结构,instanceof,我也没咋懂啥意思,我猜是用来判断是不是TreeNode种类,进行一种种类判断,我觉得这个方法的意思就是这样,不然后面解释不通。hash计算,hashcode的计算,异或向右16位,右移16位,是为了避免hash冲突,且和原本的hash值。把tablehash表的值赋给tap,判断是不是空,说明链表是空的,创建长度,给hash表,默认16。
2024-07-15 20:12:48
735
原创 鸿蒙瀑布流和欢迎页(1)
在80的时候就已经增加数据,因为80+20等于一百,初始生产一百条数据,this.datasourse.addLastItem(),datasourse就是我们初始new的对象。因为开始的时候,我们newdatasours时,已经初始好了一百条,所以这里判断是,在80+20==100 的时候,提前预加载好数据。我不知道为什么这里要报错,我把image,用余数来搞地址,明明也没报错系统,但是那里有红点?datasourse,里面干了啥事,就是我们刚开始的工具类。往下滑动过程中,实时监控划到哪了,实时增加。
2024-07-13 11:38:37
681
原创 购买华为云38一年服务器worpress进行个人博客(1)
由于域名注册要一定时间,今天暂时更新到这里,等周六更新,我买了个我名字加生日的域名,9元一年,感觉还行。应该没有域名也可以弄自己的个人博客,但是都已经花了几十元了,不弄完美点,总感觉可惜。重置完后,xshell连接,账户密码就不显示了,因为我已经装好宝塔linux了。https由于是安全协议,打开的时候,可能会报错,看下面连接。进入自己私网ip,进入了宝塔界面,也可以去软件商城自己安装。搜索安全组,我直接放行全部了,我才不管安不安全。你要重置密码,因为我已经重置看,我就不展示了。购买成功后进入,个人中心。
2024-07-11 20:21:36
536
原创 hash冲突解决方案
开发寻址法:通过计算hash值hash(key)=p,已经有值,对hash再一次hash。再散列法:提前准备好若干个hash函数,换一种hash函数,再换种函数。建立公共溢出区:把hash表分为基本表和溢出表,冲突了放到溢出表中。hash算法应用:文件校验,数字签名,计算存储位置,登录加密。
2024-07-11 17:14:18
116
原创 树的结构(b,b+树)
大规模数据存储,二叉树树的深度过深,导致查询效率低下,磁盘io读写过于频繁,导致查询效率低下,多叉树能够解决这个问题。插入的数据总是比已有的数据大,子树会向一边切斜,树的层次变深,形成链表结构,出现了平衡二叉树。根节点和叶子节点是黑色,内部节点是红色和黑色较低,叶子节点必须是黑色,根节点只能是黑色。无论线性表,栈还是队列,都是一对一,查询的时候,效率较低,数据量比较的大的情况。二叉排序树,平衡二叉树,赫夫曼树,红黑树,都是属于二叉树。B树比较矮,分叉越多,树越矮,io次数较少,搜索性能较高。
2024-07-11 16:02:11
335
原创 线程安全(有点乱哈)
失败,将计数器从0设置为1失败,当前持有锁的线程==当前线程,将计数器加1,如果等于,则是返回失败。强引入用在tl,map都被回收了,但是强引用没有被回收,这时导致内存泄漏,value成为一个永远无法被访问,无法被回收的对象。sys锁机制,1.5以前,通过cas指令,默认sys是重量级锁,1.6以后,对锁进行了升级,sys锁优化。entry是一个弱引用,有四种引用类型,强引用,软引用,和虚引用,关联到垃圾回收机制。lock是java代码实现的,api是显示锁,sys是jvm管理的,就是隐形锁。
2024-07-10 20:11:42
1781
原创 线程并发库复习
什么是进程:进程是内存分配的基本单位,它是程序执行时的一个实例,会被放到进程就绪队列,等进程调度器选择它,给它时间片,它才会运行。什么是线程:线程是程序执行时的最小单位,进程由多个线程组成,线程间共享进程所有资源,每个线程有自己的栈和变量。让出cpu,会放弃锁资源。线程池中的数,有一个大概算法,cpu密集型应用,线程池大小设置为N+1,如果是io密集型:操作文件,线程池大小设置为2N+1.new新建状态,Rybbavl就绪状态,等待时间片,running运行中状态,run方法结束,线程销毁(死亡状态)。
2024-07-09 19:21:02
744
原创 鸿蒙小练习
只能有一个根标签,所以我们要用个column,把轮播和页面跳转,包起来。轮播图我遍历了下一个对象的数组,类似于java数组。带有参数跳转页面,模仿广告跳转。
2024-07-08 18:55:27
439
原创 新人买电脑组件,组装心得。
cpu和主板一般都是一起卖的,反正我都是直接买的套装,拿到的时候,cpu都给你装好了。5.组装,组装我是看网上视频加询问客服组装成功的,一般的话,我都是问主板的客服,他们都会帮你解答,反正我连windos的问题都问了的,他们都会回答,而且他们的商品一般都说了包售后服务,我组装显卡配件哪些,一遍买配件,一边问客服。1.cpu+显卡+100是你要的电源,但是可以往高一点买,但至少消耗电源百分之四十的电源,我买了额外600w,想得买多不买少,实际配的话,额外500w,实际400w就行了,个人感悟电源买多不买少。
2024-07-08 11:35:30
298
原创 鸿蒙笔记导航栏,路由,还有axios
这源码说了,tarbar可以给的参数有string,resource,customerbuild(这个是个回调函数),或者{。栈底,栈顶,相当于有一个栈,里面可以存多个页面,可以回滚页面,初始的页面就放栈底?比如登录成功,push回去。是JavaScript中用于表示异步操作结果的对象,若操作成功,其中会包含具体结果,若操作失败,其会包含错误的原因。,会直接销毁当前页面并释放资源,然后用目标页替换当前页,因此使用该方法跳转到目标页面后,不能返回。服了,它又不给提示,只有靠自己猜,这点差评,错误提示不明显。
2024-07-05 14:48:26
1785
原创 鸿蒙组件级状态管理
在@Prop,@Link,@Provide与@Consume这几个装饰器仅能观察到第一层的变化,在实际应用开发中,应用会根据开发需要,封装自己的数据模型。基本数据类型可以观察到(必须赋值),object和class直接属性没有问题,比如this.num++,但是类嵌套就不行比如两层类嵌套,this.p.num,好像现在可以监听到了,api5就可以监控到。修饰符除了@State还有@Prop,@Link,@Provide和@Consume,@ObjectLink和@Observed。
2024-07-04 11:41:23
446
原创 鸿蒙应用笔记
中间各个组件学习就跳过了,没什么意思,纯纯浪费时间,明明可以看文档就可以懂,到时候用再看就行了,水了那么久视频。css相当于定义成方法,自己传参就可以了,该加哪些属性,直接看方法就可以了,记不住,鼠标放上去。有点像注解的这种东西,是装饰器,用来装饰类结构,方法,变量。下面遍历函数当时听,看的时候有些懵逼,自己实际使用就懂了。代码,遍历的东西,一定要放在ListItem中,不然报错。基础组件:自带样式的组件,text,button之类的。号什么意思,好像是可要可不要的意思,可以省略。
2024-07-03 15:32:11
827
1
原创 缓存双写一致性(笔记向)
一个查一个写,查的时候读老数据,另外一个又在写,数据就不一致了。刚好请求b将新值写入数据,请求b删除缓存后,刚好请求a写入缓存。一次都没操作,又更新了,比如更新了缓存,10分钟没有人用,但是又修改数据,又要改缓存。反正就是容易读到老数据,改数据的时候,读比较快,容易读到老数据。睡眠再删除第二次,使用线程池单开线程。延迟一段时间后,再删除缓存,在第一次删除缓存后,延迟一段时间后,再删除一次缓存。在第一次缓存删除之后,另开一个线程,执行第二次缓存删除。同步延迟:第一次删除缓存,睡眠一会儿,再删除一次缓存。
2024-07-01 20:30:45
343
原创 Es结合springboot(笔记回忆)
其余操作就很简单了,简单的增删改查没意思,直接快进到聚合查询,我就是为了回忆聚合查询,才开始又慢慢看es的。创建实现增删改查的ES工厂,这个接口估计是模仿mybatis那个mapper,东施效颦罢了。这个方法可以放入一个boolQuery,这个boolQuery我们可以弄很多的聚合查询在其中。对了,这个方法要的是接口,所以我们要找接口的实现类。指明了在es中的位置和地址,text分词查询,keyword不分词哈。bool中有must关键查询和filter范围查询和过滤查询。
2024-07-01 15:26:48
436
原创 ES(笔记)
如:城市搜索 New York"city":"city":{ "type": "text", "analyzer": "ik_smart", "fields": { "raw": { "type": "keyword" } } } 解释:相当于给 city取了一个别名 city.raw,city的类型为text , city.raw的类型keyword 搜索 city分词;must,should 做模糊查询的,里面都是match,根据查询内容进行匹配,filter过滤,term词元查询,就是等值查询。
2024-06-28 15:45:58
698
原创 mongodb(笔记向,有点乱哈)
db.表名.update({条件},{$set:{修改后的字段值}}) # 更新id=1的数据,age=35,如果age字段不存在,会默认新增该字段 $set似乎有点关键。基于分布式文件存储的数据库,c++语言,介于关系与非关系数据库之间的产品。语法有点类似于面向对象的查询语言,几乎可以实现类似数据库单表查询的绝大部分功能,支持建索引提高查询效率。db.表名.update({条件},{修改后的字段值}) 但是其他字段都会删除掉。新增:获取要操作的数据库表,构造新增对象,然后插入数据。
2024-06-27 16:22:53
445
原创 缓存双写一致性(笔记)
读穿透和旁路很相似,程序不需要关注从哪里读取数据,它只需要从缓存查询数据。缓存内部判断有没有该数据,然后去数据库拿,放入缓存,返回前端。写操作必须经过缓存,缓存会自动持久化到数据库中,缓存自己连接数据库,更新数据库。写穿透和异步写差不多,写穿透是立即,异步缓存写入,就是隔一会儿,因为它是异步。旁路缓存模式:缓存有就返回,没有数据库查询,放入缓存返回。就是去数据库拿那部分不是代码部分,是缓存部分的了。读穿透就是读数据,缓存没有数据,去数据库拿嘛。写穿透就是写数据,缓存,数据库都写。一般需要读穿透配合使用。
2024-06-25 17:31:32
363
原创 使用AES,前端加密,后端解密,spring工具类了
先生成我们要的秘钥,然后把我们前端改了就行,我是在spring环境中,记得要在上面文件修改下,因为他好像不是spring环境下的配置。学习python的时候,看到很多会对参数进行加密,于是好奇心驱使下,让我去了解了下AES加密如何在java中实现。成功了哈,我根据大佬文件改了改放在spring框架下也能用了,那么大致思路就有了,前端加密,后端解密就行了。然后在你的方法中,给你们前端源码看看,因为我用的ruoyi框架做的实验,请求可能不是axios发送的请求。后端我是参照这个文章写的,自己自定义的key。
2024-06-25 16:58:46
583
2
原创 TypeScript(笔记版)
默认导入导出,一个文件最多有一个默认导出项,类似于vue那个default export,可以无需关注导入项的名称。本地搭建环境,vscode,安装插件Code Runner,这个插件可以运行很多语言,还要安装ts-node。继承,extend那不是和java一样吗,supper调用父类,this关键字访问继承自父类的属性和方法。子类构造要子类调用父类的构造方法,supper是不能访问属性,用this访问,父类赋予子类的变量?还有几种,太无聊了,走神了,TS太像java了,很难集中注意力,没有新意。
2024-06-24 16:07:55
374
原创 ruoyi添加自己的菜单
我发现一个问题,路由地址可以填index2或者scooldemo/index2都可以(这个包含了文件夹路径),反正组件路径一定要填对就可以了。因为我已经新增过,所以就看看我填的啥就行了。先把自己自定义的view填写好。
2024-06-22 16:19:22
450
原创 若以框架学习(3),echarts结合后端数据展示,暂时完结。
前三天,参加毕业典礼,领毕业证,顿时感到空落落的失去感,没有工作,啥也没有,总感觉一辈子白活了。因为数据太多了,有1000条,其实可以限制下不查那么多。由于自己前端技术问题,迟迟不能完成,所以我又网上搜了下。调整了下代码,终于完成了前后端echars数据。前端当初没搞懂,后端就太简单了,返回一个map。修改后的代码如下,大家可以参考下。然后在main.js中配置。自己的界面先用一个案例。导入echartss。//导入echats。
2024-06-22 15:10:18
949
原创 随心而遇,跟着感觉走
博主专科学的嵌入式,当时嵌入并不火,冷门专业,大专毕业甚至很多机会去干嵌入式,甚至是java,现在我都记得到,当初大专毕业时,去面试java仅仅只是简单的java笔试题。本人体验来说,电子,工地,计科,数学,工科相关的专业,都可以跨领域进入java行业,我的建议是,你的学校越好,其实很多专业的门槛都可以没有。所以,选择好学校真的特别重要,如果你是985,211,在java行业可以说是乱杀,在java中,你的专业屁用没有。就业季时,企业来到我们专科可谓是人山人海,热闹非凡,简历一给,过几天就去面试。
2024-06-18 19:16:39
382
原创 支付宝支付
异步回调地址:post请求发起的,后端的接口地址,这个最关键,后面还要内网穿透,他是发送不到你的124.0.0.1的,必须是对外开发的地址。选择支付方式,支付密码,都是支付宝在做,后续我们都做不了。我们只需要把参数配好,比如同步通知和异步通知地址给好。用我们的公钥换支付宝的公钥,把工具里的私钥保存在数据库。我们可以主动调这个接口,看是否成功,这个也可以为准。保存公钥和私钥到数据库,可以使用默认的,或者自定义。把同步,异步地址放进数据库,把相关数据存入数据库。支付成功就根据同步通知地址和异步通知地址,返回。
2024-06-18 17:21:27
140
原创 数据传输安全(为支付宝第三方做铺垫)
支付宝就要:利用对方公钥验签,解密成功,是对方发过来的,所谓验签,使用对方公钥进行解密,没报错,是对方发过来的请求。解决方案:在自己的服务对自己的私钥进行加签,再使用对方的公钥进行加密。客户端 HTTPS的服务器必须要有一套数字证书,花点钱申请,或者自己制作,证书就是公钥。只能加密不能解密,常见算法md5,用户注册加密不能解密,使用场景对密码比对。支付宝返数据加密也是用自己服务的公钥进行加密,我们用自己的私钥进行解密。双方交换对方的公钥,私钥不会交换,都自己保存。加密和解密分开,公钥加密,私钥解密。
2024-06-18 14:30:36
419
原创 支付模块:支付宝
阿里账号信息表:阿里的账户信息表,商户的私钥,阿里的公钥。协议,网关地址,签名,都是阿里给的。异步回调地址,同步回调地址。支付流水表:调用三方接口的流水表,金额,交易状态码是否交易成功,结果描述。按照支付宝开发文档 操作即可,最重要的两个,异步回调地址,同步回调地址。支付服务判断支付方式,余额还是第三方,第三方就调用第三方接口。支付成功后,修改支付单,修改订单。异步通知:是后端得知是否支付成功。支付单表:就是自己的支付单表。还有的话,微信,银联的表。用户表:余额支付用的表。租户表:余额支付用的表。
2024-06-18 11:22:20
179
原创 ruoyi框架第二天,自定义接口,在若依框架显示数据
今天,我们就要自定义接口,模仿ruoyi框架收发数据模式,来创建自己的模块。我们创建好自己想要的接口,我这个是无参的查询所有接口。书接上文,搭建好若依,并且创建自己想要的模块。然后我们在car.js自定义自己想要的接口。自定义好自己想要的接口发现要在这里引入。让ruoyi框架显示自己想要的模块。我们点击listCar发现跳到了。发现跳到我们自己创建的apis中。找到我们自定义页面的地方。模仿ruoyi的接口写的。我们修改vue前端代码。
2024-06-17 18:57:28
551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人