- 博客(33)
- 收藏
- 关注
原创 SQL-触发器(trigger)的详解以及代码演示
触发器是一种特殊的存储过程,但是触发器不存在输入和输出参数,所以不能被显式的去调用,而是与特定的表相关联,当表中的数据发生变化时,触发器被激活并执行其定义的SQL代码。触发器可以是行级触发器(针对每一行数据变化)或语句级触发器(针对整个SQL语句的变化),行级触发器允许对每一行单独处理,而语句级触发器则在整个操作完成后执行一次。
2024-10-12 14:45:09 336
原创 Vue事件总线(EventBus)的概念、使用以及注意事项
在Vue开发中,组件间的通信是不可避免的需求。对于父子组件间的通信,Vue提供了props和$emit/$on等内置机制。然而,当需要在非父子关系的组件间进行通信时,这些内置机制就显得力不从心了。这时,Vue事件总线(EventBus)作为一种灵活的解决方案应运而生啦。本篇文章将详细讲解Vue事件总线的原理、安装、使用及最佳实践,帮助大家更好地去理解和应用这一技术。
2024-07-23 16:37:55 1109
原创 JWT权限验证
JWT,全称JSON Web Tokens,是一种开放标准(RFC 7519)定义的方式,用于在双方之间安全地传输信息。这些信息可以包括用户的身份信息、角色、权限等。JWT通过编码、签名等方式保证传输的信息的安全性和可验证性。JWT不是一种只能做权限验证的工具,而是一种标准化的数据传输规范,所以只要是在系统之间进行简短而又需要一定安全保护的数据传输都可以使用JWT规范来传输。而规范是不受平台限制的,所以JWT是可以跨平台使用的。在JWT中,Claim(生称)的用途主要是存储和传递用户身份信息和其他相关数据。
2024-06-29 15:15:38 1026
原创 Elasticsearch (1):ES基本概念和原理简单介绍
Elasticsearch(简称 ES)是一款基于 Apache Lucene 的分布式搜索和分析引擎。随着业务的发展,系统中的数据量不断增长,传统的关系型数据库在处理大量模糊查询时效率低下。因此,ES 作为一种高效、灵活和可扩展的全文检索解决方案,逐渐成为了企业的首选。本篇博客将深入探讨 Elasticsearch 的核心概念、使用方法以及优化技巧。
2024-06-29 09:40:51 1282
原创 SQL优化
SQL优化是每个开发人员在日常工作中都要面对的任务。一个性能优良的SQL语句可以非常有效的提高数据库的响应速度,减少系统资源消耗。本篇文章将分享一些SQL优化的小技巧,帮助你轻松应对各种SQL性能问题。
2024-06-28 10:41:32 767
原创 MySQL如何定位慢查询以及使用EXPLAIN对SQL进行性能分析
EXPLAIN是MySQL提供的一个分析查询的工具,它可以帮助我们分析SQL查询语句的性能瓶颈,以便我们进行针对性的优化。通过在查询语句前加上EXPLAIN关键字,MySQL会返回查询的执行计划,包括查询的每一步是如何进行的,以及是否使用了索引等信息。
2024-06-27 17:59:53 1176
原创 jiebaNET中文分词器
ieba.NET分词器是一款基于.NET平台的中文分词工具,它借鉴了jieba分词器的算法和思路,为.NET开发者提供了高效、准确的中文分词功能。中文分词:jieba.NET分词器能够将中文文本按照词语进行切分,使得文本更易于被处理和分析。分词是中文文本处理的基础步骤,对于词频统计、文本分类、情感分析等任务具有重要意义。多种分词模式:jieba.NET分词器支持多种分词模式,包括精确模式、全模式和搜索引擎模式。精确模式会将句子最精确地切分开,适合在文本分析时使用;
2024-05-15 20:05:25 1852
原创 跨域问题解决方案
在Web开发中,跨域问题通常指的是浏览器出于安全考虑,限制了从一个源(domain, protocol, port)的网页去请求另一个源的资源。在前后端不分离的情况下,虽然前端可以通过JavaScript调用后端接口,但一旦后端接口是跨域的,浏览器就会阻止这个请求。因为标签不受同源策略的限制,所以就可以通过动态创建标签啦,在它的src属性中指定跨域URL来实现跨域数据请求。tips:前后端不分离的情况下,我们常用的方法就是前端js去调用后端接口,然后后端去调取跨域接口。
2024-05-09 11:46:33 554
原创 Quartz.Net技术教学:构建高效的任务调度系统
对于定时任务、后台数据处理等相信也是大家经常遇到的需求啦。为了满足这些需求,Quartz.Net作为一款功能强大的任务调度框架,受到了广大开发者的青睐。本文就从Quartz.Net的基本概念、核心组件、使用方法以及最佳实践入手,帮助大家快速上手并构建高效的任务调度系统吧。
2024-04-28 12:05:52 2622
原创 EF6(Entity Framework 6)基础知识
Entity Framework (EF) 是 Microsoft 提供的一个对象关系映射器 (ORM),它使得 .NET 开发人员能够使用 .NET 对象来处理数据库,从而无需经常编写大部分数据访问代码。EF 提供了许多功能,包括更改跟踪、查询构建、视图生成和映射存储过程等。Entity Framework 6 (EF6) 是 Entity Framework 的一个版本,它在 Entity Framework 5 的基础上进行了许多改进和优化,提供了更高效的查询性能、更灵活的配置选项以及更好的可扩展
2024-04-18 14:13:27 2490
原创 SQL存储过程
在数据库的世界里,存储过程是一个强大而灵活的工具,它允许我们封装复杂的SQL逻辑,并通过简单的调用执行这些逻辑。今天,我将带领大家深入探索存储过程的世界,从基础知识到高级应用,并结合一些代码示例,让大家更加直观地感受它的魅力。
2024-04-17 17:25:59 578
原创 Pinia基本使用
pina是Vue的专属最新状态管理库,是Vuex管理工具的替代品,所谓的状态管理简单来说就是存储数据的地方,存放在里面的数据可以在Vue项目的各个地方访问到,允许跨组件/跨页面共享状态。pinia中抛弃了Vuex里面的mutation提供了更加简单的API去掉了modules的概念,每一个store都是一个独立的模块pinia中支持同步和异步,这是Vuex中不支持的良好的TypeScript支持,提供符合组合式的API(和Vue3新语法统一)
2024-04-10 17:48:14 426
原创 VUE3组合式API
Vue 3引入了组合式API(Composition API),这是一套全新的API,旨在解决大型组件逻辑复杂难以维护的问题,同时提供更灵活和可重用的代码组织方式。默认情况下在语法糖下组件内部的属性和方法是不开放给父组件访问的,可以通过defineExpose编译宏指定哪些属性和方法允许访问。2.在中执行reactive函数并且传入类型为对象的参数,并使用变量接受响应式对象返回值。作用:侦听一个或者多个数据的变化,数据变化的时候立刻执行回调函数。
2024-04-09 14:37:35 1014 1
原创 MVCC的实现
MVCC(Multi Version Concurrency Control)中文名是多版本并发控制器,简单来说就是通过维护数据的历史版本,从而去解决并发访问下的读写一致性问题,它的实现主要依赖于几个关键点:隐式字段,undoLog,Read View,快照读和当前读
2024-03-20 23:25:30 272 1
原创 ReentrantReadWriteLock——读写锁原理
使用一个案例带大家了解一下读写锁——ReentrantReadWriteLock的原理:
2023-12-04 17:01:34 890
原创 详解AQS以及ReentrantLock原理
本文将针对AQS原理进行讲解,通过自定义一个不可重入锁的例子以及队ReentrantLock源码的剖析加深对AQS的理解
2023-12-03 15:47:22 941 1
原创 使用volatile解决多线程中的可见性和有序性
happens-before规定了对共享变量的写操作对其他线程的读操作可见,它是可见性和有序性的一套规则总结,跑开以下happens-before规则,JMM并不能保证一个线程对共享变量的写,对于其他线程对该共享变量的读可见。注意:synchronized里代码块的指令仍然是可以被重排序的,volatile才能阻止重排序,但是如果共享变量是完全被synchronized保护的,那么这个共享变量在使用的过程中是不会有原子性和可见性以及有序性问题的。
2023-11-23 23:34:31 1053
原创 JUC——Join的原理和异步模式之生产者/消费者模式
join(0)方法首先会做参数检查,判断如果参数(最大等待时间),如果值小于0则抛出异常,如果传值等于0则让线程一直等待,循环检查如果线程还有存货就一直调用wait(0),如果大于0则计算出经过时间,计算出最大等待时间与经过实践的差值作为下一回合wait的等待时间参数。首先我们调用无参的join方法时实际上时调用了join(0)方法。
2023-11-20 17:13:05 68 2
原创 ES-基本使用
tips:默认情况下,ES搜索字段必须要和高亮字段一致才能显示高亮,如果想要不一致,可以再"pre_tags"配置标签前添加"request_fileId_match:"fasle"缺点:深度分页问题,默认查询上限 (from+size)是10000场景:百度、京东、谷歌、淘宝这样的随机翻页搜索。缺点:只能向后逐页查询,不支持随机翻页场景:没有随机翻页需求的搜索,例如手机向下滚动翻页。因为es底层采用的是倒排索引,所以其实是不利于做分页查询的,所以它这里采用的是。布尔查询是一个或多个查询子句的组合。
2023-11-13 00:02:34 87 4
原创 ES快速入门
根据课前资料提供的酒店数据创建索引库,索引库名为hotel,mapping属性根据数据库结构定义。基本步骤如下:1.导入课前资料Demo2.分析数据结构,定义mapping属性3.初始化JavaRestClient4.利用JavaRestClient创建索引库5.利用JavaRestClient删除索引库6.利用JavaRestClient判断索引库是否存在分析出的索引定义语句如下#酒店的mapping"id": {},"name": {},},"price": {},
2023-11-11 23:37:42 139 3
原创 SpringAMQP
AMQP全称Advanced Message Queuing Protocol:是用于在应用程序或之间传递业务消息的开放标准。该协议与语言和平台无关,更符合微服务中独立性的要求。Spring AMQP:是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amqp是基础抽象,是底层的默认实现。
2023-11-10 11:30:43 63 1
原创 Docker
数据卷是存在于一个或者多个容器中的虚拟目录,这个目录以独立于联合文件系统的形式在宿主机中存在(指向宿主机系统的某一个目录),为数据的共享和持久化提供便利。比如我们创建了一个数据卷,那么docker就会在宿主主机下创建一个目录,它们之间进行映射,让容器内部的目录和数据卷进行关联,docker就可以管理这个容器了,对容器的一切操作都会作用在宿主机目录了。
2023-11-09 00:30:57 63 1
原创 统一网关Gateway
判断参数中是否由authorization,以及authorization参数值是否为admin//@Order是一个顺序注解,要给一个Int值,就是靠order定义有多个过滤器时的优先级@Order(-1)@Component@Override//1.获取请求参数//2.获取参数中的authorization参数//3.判断参数值是否为admin//4.是,放行//这里其实是获取到责任链的下一个拦截器调用和他的filter方法//5.否,拦截//5.1.设置状态码。
2023-11-08 00:02:13 71 1
原创 Nacos配置管理
1.[spring.application.name]-[spring.profiles.active].yaml,例如: userservice-2.dev.yaml[spring.application.name].yaml,例: userservice.yaml无论profile如何变化,[spring.application.namel.yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件。nacos中实现了配置的热更新,可以集中管理配置,再配置变更的时候及时通知微服务,实现配置的。
2023-11-06 17:49:03 87 1
原创 Ribbon负载均衡的原理&Nacos和Eureka的区别
它是Ribbon默认的负载均衡规则,将请求顺序轮流分配到服务器上,均衡的对待每一台服务器,而不关心实际的连接数和当前系统的负载,轮询法适用于机器性能相同的服务,如果有些机器性能不好,可能会出现木桶效应。3.Weighted Random Ronbin(加权轮询):在轮询算法的基础上增加了权值概念,配置较高,负载低的机器分配更高的权重,而配置低,负载高的机器分配较低的权重,权重越高被选中的概率就越大。2.RandomRule(随机法):随机选择一个可用的服务器,也不适用于机器性能差异较大的分布式系统。
2023-11-06 02:41:31 78 2
原创 Spring之RestTemplate
Spring的restTemplate对httpClient进行了封装,而httpClient是支持池化的,通过http连接池可以减少连接的建立和释放时间,提高http请求的性能。-主要createRequest方法,每次都会创建一个新的连接,每次创建连接都会造成极大的资源浪费,而且如果连接不能及时释放资源,会因为无法建立新的连接而导致后面的请求阻塞。WebClient是异步阻塞的,在等待响应返回的时候不会阻塞正在执行的线程,只有当响应就绪的时候,才会产生通知。1.RestTemplate是。
2023-11-02 21:59:15 127 1
原创 sleep和yieId区别
1.sleep方法在给其他线程运行机会的时候不考虑线程优先级,而yieId在给其他线程运行机会的时候会考虑线程优先级,只会给相同优先级或者更高优先级的线程执行机会,方法会临时暂停当前运行的线程,给相同优先级且正在等待的其他线程有执行的机会,而如果没有等待的线程,或者正在等待的其他线程优先级都当前线程优先级低,那么就会继续执行当前线程,执行了yieId方法的线程什么时候继续执行由线程调度器决定,执行yieId方法不保证当前线程能够立即停止或者休眠,但是可以保证会立刻把当前cpu执行权交出去。
2023-10-10 14:52:49 36 1
原创 SpringBoot的自动装配原理
然后会排除通过@EnableAutoConfiguration设置的excluede属性的相关配置类,以及根据@Conditional注解来判断是否需要排除某些自动配置类,如果Conditional条件成立,则使用@EnableConfigurationProperties把XXXProperities文件装载到IOC容器中,使用@ConfigurationProperties注解将yml配置中所自己配置的属性填充到对应bean上,覆盖默认属性。下面以RedisAutoConfiguration为例。
2023-08-22 23:16:29 34 2
原创 WebSocket
WebSocket是基于TCP协议的一种新的,它实现了浏览器和服务器的——浏览器只需要和服务器完成一次握手,就可以相互发送请求,且这个连接是的连接,常见应用场景为视频弹幕,外卖催单,网页聊天。
2023-08-18 23:50:31 45 1
基于Vue的商城后台管理系统
2024-04-04
安卓移动应用开发-音乐播放器-课程设计+文档
2024-04-04
JAVA课程程序设计(文档+ppt+演示视频)-基于JavaWeb的图书管理系统
2024-04-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人