自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 Vue学习笔记(五)

1.一种组件间通信的方式,适用于:子组件==》父组件2.使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(事件的回调在A中)3.绑定自定义事件:(1)第一种方式,在父组件中:或(2)第二种方法,在父组件中:mounted(){(3)若想让自定义事件只能触发一次,可以使用once修饰符,或$once方法4.触发自定义事件:this.$emit('atguigu',数据)5.解绑自定义事件:this.$off('atguigu')

2023-11-28 20:54:34 139

原创 Vue基础学习笔记(四)

data函数,methods中的函数,watch中的函数,computed中的函数,它们的this均是[VueComponent实例对象]2.我们只需要写或,Vue解析时会帮我们创建school组件的实例对象,即Vue帮我们执行的:new VueComponent(options)data函数,methods中的函数,watch中的函数,computed中的函数,它们的this均是[Vue实例对象](2)vue.runtime.xxx.js是运行版的Vue,只包含:核心功能,没有模板解析器。

2023-11-20 17:02:22 126 1

原创 Vue基础学习笔记(三)

自定义指令总结:一、定义语法:(1)局部指令:new Vue({directives:{指令名:配置对象}})或new Vue({})(2)全局指令:Vue.directive(指令名,配置对象)或Vue.directive(指令名,回调函数)二、配置对象中常用的3个回调:(1)bind:指令与元素成功绑定时调用(2)inserted:指令所在元素被插入页面时调用(3)update:指令所在模板被重新时调用。三、备注:1.指令定义时不加v-,但使用时要加v-

2023-11-20 16:50:25 126

原创 Vue基础学习笔记(二)

(2)所有不被Vue所管理的函数(定时器的回调函数,ajax的回调函数,promise的回调函数),最好写成箭头函数,这样this的指向才是vm或组件实例对象。(1)所有被Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象。(1).vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以。对象写法,适用于:要绑定的样式个数确定,名字也确定,但要动态决定要不要使用。如:@keyup.ctrl.y————————>同时按下ctrl和y才触发事件。

2023-11-20 16:35:14 83

原创 Vue基础学习笔记(一)

例子:v-bind:href="xxx"或简写为:href="xxx",xxx同时要写JS表达式且可以直接读取到data中的所有属性。6.{{xxx}}中的xxx要写JS表达式,且xxx可以自动读取到data中的所有属性。由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不在是vue实例了。4.methods中配置的函数,都是被vue所管理的函数,this的指向是vue或组件实例对象。2.vm身上的所有的属性及vue原型上的所有属性,在vue模板都可以直接使用。

2023-11-20 16:27:05 31

原创 入门uniapp学习笔记

什么是uinapp?官网原话uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。DCloud公司拥有900万开发者、数百万应用、12亿手机端月活用户、数千款uni-app插件、70+微信/qq群。阿里小程序工具官方内置uni-app,腾讯课堂官方为uni-app录制培训课程,开发者可以放心选择。uni-app在手,做啥都不愁。即使不跨端,

2023-11-08 15:00:17 134 1

原创 Springboot链接Redis实现AOP防止重复提交

spring boot链接AOP实现防止重复提交

2023-06-29 11:25:35 3579

原创 doker安装RabbitMQ以及用java连接

Rabbitmq入门demo

2023-06-26 17:25:37 4735

原创 java实现布隆过滤器(手写和Guava库提供的)

在学习Reids时,关于缓存的三大问题:缓存雪崩、缓存穿透、缓存击穿,其中缓存穿透最好的解决办法就是依靠布隆过滤器,什么是布隆过滤器呢?布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。——百度百科。

2023-06-25 13:26:55 6264

原创 接收前端参数的方式

作为一名后端java开发工程师,做过很多前后端分离的项目(前后端分离是指将前端和后端代码拆分成两个独立的代码库,这种方式使得前后端代码的开发、测试和部署变得更加灵活和独立。相比于传统的网站开发方式,前后端分离能够提高开发效率、加速响应速度、提高代码可维护性和可扩展性。)如何接收前端好兄弟传过来的参数呢,这是一个问题,我总结了一下几种方式,供大家学习参考,不足请指出。

2023-06-08 16:23:45 5140

原创 认证、授权——SpringSecurity框架学习心得

Spring Security是一个开源的安全框架,它提供了全面的安全解决方案,包括用户身份认证、权限管理、攻击防护等。Spring Security建立在Spring框架之上,因此它具有良好的灵活性和可扩展性,并且易于与其他Spring组件集成。Spring Security的主要特点包括:支持多种身份认证方法:Spring Security支持多种身份认证方法,包括基于表单的身份认证、HTTP基本认证、OpenID等。

2023-06-08 11:14:39 4966

原创 HTTPS中的TLS

TLS 是一系列密码工具的框架,作为框架,它也是非常的灵活,体现在每个工具套件它都可以替换,即:客户端与服务端之间协商密码套件,从而更难的被攻破,例如使用不同方式的对称密码,或者公钥密码、数字签名生成方式、单向散列函数技术的替换等。

2023-05-01 11:02:46 4043 2

转载 计算机网络之网络演进

停止等待虽然能解决问题,但是效率太低了,A 原本可以在发完第一个数据包之后立刻开始发第二个数据包,但由于停止等待协议,A 必须等数据包到达了 B ,且 B 的 ACK 包又回到了 A,才可以继续发第二个数据包,这效率慢得可不是一点两点。拥塞窗口大小的计算有很多复杂的算法,就不在本文中展开了,假如拥塞窗口的大小为 cwnd,上一部分流量控制的滑动窗口的大小为 rwnd,那么窗口的右边界受这两个值共同的影响,需要取它俩的最小值。只能 A 单方面通过试探,不断感知网络环境的好坏,进而确定自己的拥塞窗口的大小。

2023-05-01 11:01:12 3475

原创 计算机网络常见问题

上面我们对计算机网络的五层体系结构有了初步的了解,下面附送一张七层体系结构图总结一下(图片来源于网络)。

2023-05-01 10:58:22 3976

原创 计算机网络

结点 (node):网络中的结点可以是计算机,集线器,交换机或路由器等。链路(link ): 从一个结点到另一个结点的一段物理线路。中间没有任何其他交点。主机(host):连接在因特网上的计算机。:因特网服务提供者(提供商)。: 互联网交换点 IXP 的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。​​:意思是“请求评议”,包含了关于 Internet 几乎所有的重要的文字资料。广域网 WAN(Wide Area Network):任务是通过长距离运送主机发送的数据。

2023-05-01 10:53:29 4835

原创 Spring中的设计模式

定义一个事件: 实现一个继承自,并且写相应的构造函数;定义一个事件监听者:实现接口,重写方法;使用事件发布者发布消息: 可以通过的方法发布消息。// 定义一个事件,继承自ApplicationEvent并且写相应的构造函数​​​​// 定义一个事件监听者,实现ApplicationListener接口,重写 onApplicationEvent() 方法;@Component​//使用onApplicationEvent接收消息@Override。

2023-05-01 10:51:12 3909

原创 SpringBoot+Spring常用注解总结

Hibernate Validator 是 Hibernate 团队最初的数据校验框架,Hibernate Validator 4.x 是 Bean Validation 1.0(JSR 303)的参考实现,Hibernate Validator 5.x 是 Bean Validation 1.1(JSR 349)的参考实现,目前最新版的 Hibernate Validator 6.x 是 Bean Validation 2.0(JSR 380)的参考实现。拿我们在第 5 节参数校验这块来举例子。

2023-04-24 10:08:09 4146

原创 SpringBean

所以。。。结合第一节控制台输出的内容,Spring Bean的生命周期是这样纸的:Bean容器找到配置文件中 Spring Bean 的定义。Bean容器利用Java Reflection API创建一个Bean的实例。如果涉及到一些属性值 利用set方法设置一些属性值。如果Bean实现了BeanNameAware接口,调用setBeanName()方法,传入Bean的名字。

2023-04-24 09:58:40 5267

原创 Spring事务总结

事务是逻辑上的一组操作,要么都执行,要么都不执行。我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。事务能否生效数据库引擎是否支持事务是关键。比如常用的 MySQL 数据库默认使用支持事务的innodb引擎。但是,如果把数据库引擎变为myisam,那么程序也就不再支持事务了!事务最经典也经常被拿出来说例子就是转账了。

2023-04-24 09:53:41 3805

原创 Spring常见问题总结

Spring 是一种轻量级开发框架,旨在提高开发人员的开发效率以及系统的可维护性。。我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块是:核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。比如:Core Container 中的 Core 组件是Spring 所有组件的核心,Beans 组件和 Context 组件是实现IOC和依赖注入的基础,AOP组件用来实现面向切面编程。

2023-04-24 09:45:57 4052

原创 Spring学习资料推荐

可以这样说AspectJ是目前实现AOP框架中最成熟,功能最丰富的语言,更幸运的是,AspectJ与java程序完全兼容,几乎是无缝关联,因此对于有java编程基础的工程师,上手和使用都非常容易。Spring注意到AspectJ在AOP的实现方式上依赖于特殊编译器(ajc编译器),因此Spring很机智回避了这点,转向采用动态代理技术的实现原理来构建Spring AOP的内部机制(动态织入),这是与AspectJ(静态织入)最根本的区别。,在JAVA中一 般采用JDK动态代理模式,但是我们都知道,

2023-04-24 09:40:25 3645

原创 学习Redis之如何做可靠的分布式锁

本文是对的文章部分内容的翻译和总结,上次写 Redlock 的原因就是看到了 Martin 的这篇文章,写得很好,特此翻译和总结。感兴趣的同学可以翻看原文,相信会收获良多。开篇作者认为现在 Redis 逐渐被使用到数据管理领域,这个领域需要更强的数据一致性和耐久性,这使得他感到担心,因为这不是 Redis 最初设计的初衷(事实上这也是很多业界程序员的误区,越来越把 Redis 当成数据库在使用),其中基于 Redis 的分布式锁就是令人担心的其一。

2023-04-24 09:19:32 3694

原创 学习Redis之三种缓存策略

在 Cache-Aside Pattern 下,发生读请求的时候,如果 cache 中不存在对应的数据,是由客户端自己负责把数据写入 cache,而 Read Through Pattern 则是 cache 服务自己来写入缓存的,这对客户端是透明的。可以短暂地允许数据库和缓存数据不一致的场景 :更新DB的时候同样更新cache,但是给缓存加一个比较短的过期时间,这样的话就可以保证即使数据不一致的话影响也比较小。cache 中存在,则先更新 cache,然后 cache 服务自己更新 DB(

2023-04-24 09:17:58 3661

原创 学习Redis之Redlock分布式锁

Redis 官方站这篇文章提出了一种权威的基于 Redis 实现分布式锁的方式名叫Redlock,此种方式比原先的单节点的方法更安全。它可以保证以下特性:安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 client crash 了或者出现了网络分区容错性:只要大部分 Redis 节点存活就可以正常提供服务。

2023-04-24 09:14:56 3859

原创 学习Redis之redis集群以及应用场景

主从链(拓扑结构)复制模式全量复制:Master 全部同步到 Slave部分复制:Slave 数据丢失进行备份问题点同步故障复制数据延迟(不一致)读取过期数据(Slave 不能删除数据)从节点故障主节点故障配置不一致maxmemory 不一致:丢失数据优化参数不一致:内存不一致.避免全量复制选择小主节点(分片)、低峰期间操作.如果节点运行 id 不匹配(如主节点重启、运行 id 发送变化),此时要执行全量复制,应该配合哨兵和集群解决.

2023-04-24 09:13:42 3606

原创 认识Redis之redis持久化

非常推荐大家看一下《redis实战》这本书,感觉书中的很多理论性东西还是很不错的。很多时候我们需要持久化数据也就是将内存中的数据写入到硬盘里面,大部分原因是为了之后重用数据(比如重启机器、机器故障之后回复数据),或者是为了防止系统故障而将数据备份到一个远程位置。Redis不同于Memcached的很重一点就是,Redis支持持久化,而且支持两种不同的持久化操作。Redis的一种持久化方式叫快照(snapshotting,RDB),另一种方式是只追加文件(append-only file,AOF)

2023-04-24 09:09:57 3499

原创 认识Reids

简单来说Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是Redis 的数据是存在内存中的,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。另外,Redis 除了做缓存之外,Redis 也经常用来做分布式锁,甚至是消息队列。Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。

2023-04-23 19:37:16 2215

原创 学习mysql之MVCC

MVCC(Multi-Version Concurrency Control)即多版本并发控制。

2023-04-23 19:10:17 1788

原创 学习mysql之时间存储问题

MySQL 中时间到底怎么存储才好?Datetime?Timestamp?数值保存的时间戳?好像并没有一个银弹,很多程序员会觉得数值型时间戳是真的好,效率又高还各种兼容,但是很多人又觉得它表现的不够直观。这里插一嘴,《高性能 MySQL 》这本神书的作者就是推荐 Timestamp,原因是数值表示时间不够直观。下面是原文:每种方式都有各自的优势,根据实际场景才是王道。

2023-04-23 19:08:34 1360

原创 学习mysql之数据库连接池

数据库连接本质就是一个 socket 的连接。数据库服务端还要维护一些缓存和用户权限信息之类的 所以占用了一些内存连接池是维护的数据库连接的缓存,以便将来需要对数据库的请求时可以重用这些连接。为每个用户打开和维护数据库连接,尤其是对动态数据库驱动的网站应用程序的请求,既昂贵又浪费资源。连接池还减少了用户必须等待建立与数据库的连接的时间。操作过数据库的朋友应该都知道数据库连接池这个概念,它几乎每天都在和我们打交道,但是你真的了解吗?

2023-04-23 19:00:31 736

原创 学习mysql之命令规范

索引 NULL 列需要额外的空间来保存,所以要占用更多的空间进行比较和计算时要对 NULL 值做特别的处理对于模糊查询阿里巴巴开发手册这样说到:【强制】页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。说明:索引文件具有 B-Tree 的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。

2023-04-23 10:20:52 744

原创 学习mysql之索引(2)

索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有: B 树, B+树和 Hash。索引的作用就相当于目录的作用。打个比方: 我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位置,然后直接翻到那一页就行了。

2023-04-23 10:17:07 672

原创 学习mysql之一条sql语句在mysql中如何执行的

本篇文章会分析下一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成已经这些组件的作用是什么,可以帮助我们理解和解决这些问题。1) 连接器连接器主要和身份认证和权限相关的功能相关,就好比一个级别很高的门卫一样。

2023-04-23 10:13:32 681

原创 学习mysql之事务

事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。

2023-04-23 10:10:02 677

原创 学习MYSQL之索引(1)

如果一个索引包含(或者说覆盖)所有需要查询的字段的值,我们就称之为“覆盖索引”。我们知道InnoDB存储引擎中,如果不是主键索引,叶子节点存储的是主键+列值。最终还是要“回表”,也就是要通过主键再查找一次。这样就会比较慢覆盖索引就是把要查询出的列和索引是对应的,不做回表操作!

2023-04-23 10:04:02 681

原创 学习了解MYSQL

MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。

2023-04-23 09:59:40 709

原创 JAVA并发编程——死锁

死锁不仅在个人学习中,甚至在开发中也并不常见。但是一旦出现死锁,后果将非常严重。首先什么是死锁呢?打个比方,就好像有两个人打架,互相限制住了(锁住,抱住)彼此一样,互相动弹不得,而且互相欧气,你不松手我就不松手。好了谁也动弹不得。在多线程的环境下,势必会对资源进行抢夺。当两个线程锁住了当前资源,但都需要对方的资源才能进行下一步操作,这个时候两方就会一直等待对方的资源释放。这就形成了死锁。这些永远在互相等待的进程称为死锁进程。互斥:资源的锁是排他性的,加锁期间只能有一个线程拥有该资源。

2023-03-22 14:39:02 1023

原创 JAVA并发编程——创建线程的多种方式

通过传入Callable的任务给FutureTask,直接调用其run方法或者放入线程池执行,之后可以在外部通过FutureTask的get方法异步获取执行结果,因此,FutureTask非常适合用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果。之后就会运行run中的代码。Callable位于java.util.concurrent包下,它也是一个接口,在它里面也只声明了一个方法,只不过这个方法call(),和Runnable接口中的run()方法不同的是,call()方法有返回值。

2023-03-22 14:25:05 930

原创 JAVA并发编程——volatile

Java内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程中使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。所以,就可能出现线程1改了某个变量的值,但是线程2不可见的情况。:每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置成无效状态,当处理器要对这个数据进行修改操作的时候,会强制重新从系统内存里把数据读到处理器缓存里。

2023-03-21 23:10:41 1067

原创 JAVA并发编程——synchronized关键字

Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如volatilefinalconcurren包等。关键字在需要原子性、可见性和有序性这三种特性的时候都可以作为其中一种解决方案,看起来是“万能”的。的确,大部分并发控制操作都能使用synchronized来完成。海明威在他的《午后之死》说过的:“冰山运动之雄伟壮观,是因为他只有八分之一在水面上。”对于程序员来说,只是个关键字而已,用起来很简单。

2023-03-21 23:02:02 1031

空空如也

空空如也

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

TA关注的人

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