- 博客(72)
- 收藏
- 关注
原创 乐观锁和悲观锁
悲观锁(Pessimistic Locking): 悲观锁的思想是,在对数据进行操作之前,先假设会有其他线程同时对数据进行操作,因此在操作过程中会对数据进行加锁,以避免其他线程的并发操作。乐观锁是一种并发控制的策略,它认为并发操作冲突的可能性很小,所以在进行操作时不加锁,而是在提交操作时检查是否有其他线程对数据进行了修改。互斥锁(Mutex):互斥锁是在编程语言中常用的悲观锁实现方式之一,通过互斥锁能够确保同一时间只有一个线程可以访问被保护的资源,其他线程需要等待锁释放后才能进行访问。
2024-02-22 17:27:35 601
原创 mysql索引
单值索引(Single-Column Index)是指只有一个列作为索引键的索引。单值索引可以加速等值查询、范围查询和排序操作。在InnoDB中,B-tree索引是单值索引的常见类型。复合索引(Composite Index)是指使用多个列作为索引键的索引。复合索引可以包含多个列,并按照指定的列顺序建立索引。复合索引的列顺序非常重要,因为查询只能从最左边的列开始并逐列往右匹配索引。复合索引可以提高多列查询的效率,但也会增加索引的大小和维护开销。为了更好地理解单值索引和复合索引的区别,我们来看一个简单的例子。
2024-02-22 17:19:00 800
原创 ApplicationEvent(事件驱动)
当创建自定义事件时,需要扩展ApplicationEvent类,并提供必要的构造方法和自定义的属性。在触发事件时,可以通过传递事件源对象和其他相关的数据来创建事件对象,并调用ApplicationContext的publishEvent()方法来发布事件。当事件被发布时,注册的监听器将自动接收到该事件,并执行相应的逻辑处理。当某个特定的条件或场景发生时,可以触发一个事件,并将该事件发布到应用程序中的其他组件。ApplicationEvent是Spring框架中的一个核心类,用于在应用程序中发布和监听事件。
2024-01-25 11:06:43 923
原创 kafka主题分区副本集群的概念
在Kafka中,消息生产者Producer向指定主题的分区发送消息,消息消费者Consumer从指定主题的分区消费消息。由于Kafka的分布式架构和高可用性设计,即使某个节点发生故障,也不会影响整个集群的正常运行。Kafka是一个高性能、分布式的消息系统,用于处理大规模的实时数据流。
2023-12-08 10:13:53 716
原创 Es条件查询
查询使用的是OR逻辑,即如果查询字符串中的任何一个词项匹配文档中的一个或多个词项,则该文档就会被匹配成功。来指定匹配条件为AND逻辑,即只有查询字符串中的所有词项全部匹配文档中的词项时,才会将该文档匹配成功。查询没有进行分词处理,因此查询字符串应该是一个完整的单词或短语,而不能是一个词项的一部分。其中,第一个参数表示要查询的字段名称,第二个参数表示要查询的字符串。其中,第一个参数表示要查询的字段名称,第二个参数表示要查询的前缀字符串。其中,第一个参数表示要查询的字段名称,第二个参数表示要查询的值。
2023-12-05 14:34:34 2202
原创 商城系统通过Kafka消息队列,实现订单的处理和状态更新
createOrder方法中,我们首先将订单信息发送到“order”主题中,然后更新订单状态为“待支付”,并将订单状态更新消息发送到“order-status-update”主题中。在该方法中,我们获取订单状态更新消息,更新订单状态,并将订单信息更新到数据库中。当有新的下单请求到达时,我们会调用OrderService的createOrder方法,将订单信息发送到Kafka中,并返回一个成功响应。在这里,我们指定了Kafka的地址和消费者组ID,并设置了生产者消息的序列化器和默认主题为“order”。
2023-11-28 17:00:24 1097
原创 商城系统通过Kafka消息队列,实现订单的处理和状态更新springboot例子解决并发处理、数据一致性等问题
在订单状态更新时,需要更新订单状态表中的数据,并向Kafka中发送订单消息。为了解决这个问题,我们可以使用Kafka的事务机制,将订单状态表的数据更新和订单消息的发送放在同一个事务中,保证数据的一致性。在这里,我们在updateOrderStatus方法上使用@Transactional注解开启事务,将订单状态表的数据更新和订单消息的发送放在同一个事务中,并使用KafkaTemplate的executeInTransaction方法执行Kafka操作,以保证数据的一致性。// 更新订单状态表。
2023-11-28 17:00:09 1161
原创 vue之vuex
为了更好地组织项目代码,我们通常将 Vuex 的不同概念(如 state、mutations、actions、getters)写在不同的文件中,以便于维护和管理。Vuex 是 Vue.js 的一个状态管理模式和库,为应用中的所有组件提供了一个集中式的存储管理,并提供了一种强大的方式来管理应用的状态。在上面的例子中,我们将不同概念分别写在了不同的文件中。mutations 映射为组件中的 methods 中的。State:定义了应用的状态,类似于组件中的 data。计算属性中,以便在模板中使用。
2023-09-27 11:18:25 155
原创 mongodb语法以及springboot中操作mongodb数据库(query update Criteria的使用)
findUsersByName 方法用来根据用户名查询符合条件的用户列表,使用 mongoTemplate.find 方法查询对象列表。findUserById 方法用来根据用户 ID 查询用户信息,使用 mongoTemplate.findOne 方法查询单个对象。findUserById 方法用来根据用户 ID 查询用户信息,使用 @GetMapping 注解标记 HTTP GET 请求。以上就是 Query 和 Update 中常用的方法,借助这些方法,可以构建出复杂的查询和更新操作。
2023-09-14 10:29:27 1055
原创 springboot打印操作日志
在上面的例子中,我们使用了logback框架打印日志。在doSomething方法中,我们分别使用了debug和error级别打印日志,分别用来记录方法的开始和结束信息,以及方法执行过程中出现的异常信息。通过打印这些日志,我们可以更好地了解方法的执行情况,以及定位和解决问题。在此示例中,我们使用了每天一个日志文件,并最多保留了7天的历史日志记录。在程序中需要进行性能分析时,用来记录程序的执行时间和资源消耗情况,方便进行优化和改进。在程序出现异常或错误时,用来记录错误信息和堆栈信息,方便定位和解决问题。
2023-09-13 16:49:53 280
原创 vue脚手架创建,ref、双向绑定,axios请求。。
Vue CLI 是 Vue.js 官方提供的一个脚手架工具,可以快速搭建 Vue.js 项目,并提供了一些常见的工程化功能,如代码打包、热重载、单元测试等。首先需要在本地安装 Node.js,可以到官网 https://nodejs.org/ 下载并安装最新版的 Node.js。其中,"my-project" 是你要创建的项目名称,可以自己修改。这样就可以在浏览器中访问 http://localhost:8080 查看项目效果了。
2023-09-11 12:02:32 267
原创 springboot中操作mongodb数据库(query update Criteria的使用方法)
目录引入依赖首先创建一个实体类 User:创建一个 UserDao 类,用来进行 MongoDB 的增删改查操作:最后创建一个 UserController 类,用来测试 MongoDB 的增删改查操作:Query Update Criteria的用法Query中的方法addCriteria(Criteria criteria)with(Sort sort)with(Pageable pageable)fields()include(String... fields)exclude(String... fi
2023-09-07 14:33:24 1296
原创 shiro在springboot中的使用以及权限管理的实现
方法中,可以根据用户的角色、权限等信息,将其拥有的权限字符串添加到授权信息中。在Shiro中,权限通常使用字符串表示,可以根据应用场景自行定义权限字符串。用于存储系统角色的基本信息,包括角色名称、描述等。用于存储系统权限的基本信息,包括权限名称、描述等。用于存储系统用户的基本信息,包括用户名、密码等。路径下的不同HTTP方法所需要的权限,例如。注解,指定需要的权限。如果用户没有足够的权限,将会抛出。用于存储系统角色与权限的关联信息。在需要进行权限控制的方法上,使用。3.实现自定义Realm。
2023-09-04 10:04:33 422
原创 前后端分离不存在会话,sessionid不一致问题
在上面的代码中,我们使用fetch函数向后端发送了一个GET请求,并设置了请求头中的Content-Type为application/json;后端代码:在上面的拦截器中,我们设置了Access-Control-Allow-Credentials等跨域请求头。在上面的配置类中,我们创建了一个CorsInterceptor对象,并将其注册到InterceptorRegistry中,从而实现了使用拦截器解决跨域问题。
2023-08-30 10:55:03 1946
原创 给计算机专业准大学生的一些建议
准大学生可以多考取一些证书,比如微软认证、思科认证等,这些证书不仅能够证明自己的专业知识水平,还能够提高自己的就业竞争力。学习计划可以包括自己的学习目标、学习方法、学习资料等方面,同时也需要考虑到自己的时间和能力,制定合理的学习计划。通过实习,准大学生不仅可以了解实际工作中的技术和流程,还可以积累实际工作经验,进一步提高自己的技能和能力。准大学生要注重掌握基础知识,学习互联网技术,积极参加社区活动,注重实践,多考取证书等,全面提高自己的能力和水平,从而更好地适应未来的职场。三、积极参加社区活动。
2023-08-25 18:01:36 212
原创 移动端实现微信支付功能
在Vue项目中添加一个支付页面,用户可选择支付金额,点击支付按钮后调用后端接口获取微信支付参数,并使用WeixinJSBridge调起微信支付。在Spring Boot项目中添加一个支付接口,用户传递支付金额,后端使用微信官方提供的统一下单API生成预支付订单,返回给前端支付参数。全天候服务:微信支付支持24小时不间断的支付服务,用户可以随时随地进行付款。方便快捷:用户只需要打开微信,扫码或输入商家提供的支付金额,即可完成支付。总之,移动端微信支付方便快捷、安全可靠,是一种用户体验良好的支付方式。
2023-08-25 17:18:28 518
原创 Spring AOP详解+例子
Spring AOP是Spring Framework中的一个重要模块,它实现了面向切面编程(AOP)的概念。在本文中,我们将探讨Spring AOP的工作原理以及如何在您的应用程序中使用它。在使用Spring AOP时,可以通过切面来拦截连接点,并在特定时刻执行通知来实现对程序的控制。在上面的切面中,我们使用@Before注解定义了一个前置通知,并通过execution表达式指定了切点,表示所有调用UserService.saveUser()方法的连接点都会被匹配。它将切面作为代理提供给目标对象。
2023-08-25 14:53:49 183
原创 java爬虫爬取网络资源
该示例会从指定的网站上爬取所有压缩包文件的链接,并将它们分别解压缩到本地文件系统中指定的目录。使用Java中的URLConnection类中的InputStream从网络中下载每个资源压缩包,并使用ZipInputStream解压缩每个文件并保存到本地目录中。使用Java中的网络爬取库(如Jsoup)访问要爬取的网站并解析其内容以获取所有资源压缩包的链接。使用Java中的ZipInputStream类打开每个下载的压缩包,并使用它来解压所有资源文件。创建一个本地目录,用于保存下载的压缩包。
2023-08-24 11:46:52 1259
原创 通过浏览器控制台使用js脚本进行浏览器操作(定时点击等)
可以搞一个抢购活动,比如准点开启某个活动那么我们可以计算目标时间到现在的时间差计算毫秒数设置到定时器中
2023-08-22 11:49:36 3767 17
原创 Spring AOP详解
Spring AOP是Spring框架中的一个模块,它允许开发人员使用面向切面编程(AOP)的思想来解耦系统的不同层次。Spring AOP的核心概念是切面(aspect)、连接点(join point)、通知(advice)、切点(pointcut)和引入(introduction)。Spring AOP底层使用动态代理和字节码生成来实现。切面由通知和切点组成,连接点是程序执行的某个时间点,切点根据表达式匹配连接点,通知是在连接点上执行的代码片段,在方法调用前或调用后执行某些操作。
2023-08-21 17:57:21 1190 11
原创 一个积分系统数据库创建
审核状态 Audit_status (审核通过1 审核不通过2 未审核0) varchar(1)积分编码 Integral_code_id varchar(32)状态 prizes_status(已上架1 未上0 2已删除)varchar(1)收货地址id Receive_address_id varchar(32)背景:某软件,当用户进行登录、观看。详细地址 Receive_detailed varchar(255)
2023-08-21 16:25:53 425
原创 js实现滚轮滑动到底部自动加载(完整版)
/let scrollHeight=document.querySelector("JL").scrollHeight //js中使用。// let innerHeight=document.querySelector("JL").clientHeight //js中使用。//let scrollTop=document.querySelector("JL").scrollTop //js中使用。//此时的data传递的就是正常查询需要的参数,以及分页的页码和数量。//判断是否还有数据。
2023-08-18 23:40:12 1039
原创 js中的常见事件(鼠标事件,键盘事件,表单事件......)
通过注册事件监听器(Event Listener),可以为网页元素(例如按钮、链接等)添加事件处理器(Event Handler),当事件发生时,事件处理器会被调用执行相应的代码。鼠标事件:单击(click)、双击(dblclick)、鼠标移动(mousemove)、鼠标悬停(mouseover)、鼠标离开(mouseout)等。表单事件:提交表单(submit)、重置表单(reset)、输入(input),改变(change)、获得焦点(focus)、失去焦点(blur)等。我们说一下load事件;
2023-08-16 14:54:34 806
原创 在Spring Boot和Vue中实现请求过滤器以验证请求头中的Token
这样,每次向后端发送请求时,都会在请求头中添加一个Authorization字段,该字段的值是通过getToken()函数获取的。在AuthenticationFilter中,就可以通过获取该请求头中的Token来进行验证。如果Token无效,则返回401错误。getToken()是一个自定义的函数,用于获取存放在前端的Token。在实际开发中,Token通常会在用户登录成功后由后端返回,并存储在前端的localStorage或sessionStorage中。
2023-08-14 18:01:30 1692
原创 Spring Security自定义登陆界面和密码验证逻辑(手敲版,可运行)
然后security的configure(AuthenticationManagerBuilder auth)进行密码对比,注意这里只是比较密码,因为你既然返回user类了就说明你的username是存在的,(小问题,一般来说不会有问题因为我是固定返回的一个类,我在前端只要是密码输入正确就能登陆~)上面就实现了一个自定义登陆界面以及密码验证的基本功能的(由于公司电脑不让本地装数据库,就用静态类代替了,如果要链接数据库也就是添加一个查询数据库方法而已)。创建配置文件处理跳转拦截等功能以及密码比对功能。
2023-08-14 16:52:23 1021
原创 网页登录实现qq和微信扫码登录
使用openid判断用户是否已经在系统中注册,如果没有,则根据获取的用户信息创建新用户,并生成本地用户凭证token。在后台创建接口,用于前端发送请求获取qq或微信登陆二维码。前端在后续请求中发送token,后台验证token是否有效,并通过token获取用户信息。获取qq或微信开放平台的APPID和APPSECRET,创建应用,并获取授权域名。以上就是基于springboot和vue实现网页登录实现qq和微信扫码登录的示例。用户使用qq或微信扫描二维码,授权登陆并获取登陆凭证code。
2023-08-11 15:25:20 2003
原创 使用分布式锁实现的商品秒杀功能
使用分布式锁可以确保多个节点同时操作同一个商品时,只有一个节点能够成功秒杀,其他节点需要等待。同时在每个节点上都需要进行秒杀操作的校验和库存的更新等。// 如果商品库存充足,扣减库存,默认每次购买一个物品。这里我们使用的是redis的setIfAbsent方法,该方法为。return "购买失败";//通过productId查询商品。//通过mapper更新商品库存。return "购买成功";数据库事务,该方法涉及多个数据库表的更新。service层购买方法。
2023-08-10 18:02:36 464
原创 一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)
平时我们在实现多条件查询时也许会写多个sql写多个方法来实现,掌握本文的这种方法之后只需要一个方法即可实习多条件查询,简单易懂
2023-08-09 16:08:41 1653
原创 mysql之连表查询
select e.name '姓名',d.name '部门名称' form dept d inner join emp e on d.deptno=e.deptno。select e.name '姓名',d.name '部门名称' form dept d,emp e where d.deptno=e.deptno。(1)左外连接:是A与B的交集,然后连接A的所有数据。(2)右外连接:是A与B的交集,然后连接B的所有数据。例子:查询一个部门下的员工信息。(3)全外连接:就是A与B的并集。
2023-08-09 14:44:06 453
原创 mysql日期函数(查询最近n(天/月/年)、计算日期之间的天数等)
整理了一下mysql的函数,包括但不限与查询本天,n(天/月/年)之内的数据,两个日期之间的天数差
2023-08-09 11:51:41 1110
原创 mybatis代码生成器
- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 enableSelectByPrimaryKey相应的配置表示是否生成相应的接口 -->-- 自定义service与controller插件 //额外添加的service和controller配置,配合下面的类用,如果启动不了可以把这个plugin删除掉-->--controller的父类接口-->
2023-08-07 17:51:01 260
STM32扫地机器人开源资料分享
2023-09-01
图染色局部搜索算法python
2023-09-01
基于python代码的人脸识别实例
2023-09-01
C语言程序设计之个人账簿管理系统
2023-09-01
C语言程序设计之图书管理系统
2023-09-01
C语言程序设计之超市商品信息管理系统
2023-09-01
C语言程序设计之商品信息管理
2023-09-01
构建自己的alexa控制的圣诞树
2023-08-31
基于stm32f103rct6开发板的光敏信号传递实验
2023-08-31
基于STC15W4K32S4单片机的智能浇花器设计
2023-08-31
校园智慧灯杆大样图-基础CAD图纸-系统架构图下载
2023-08-31
基于机械视觉控制的板球控制装置
2023-08-31
远程温度控制资料123
2023-08-31
智能漏水传感器解决方案
2023-08-31
C++的框架、库和资源资料汇总大全.zip
2023-09-18
最全自动驾驶数据集分享系列一-目标检测数据集.zip
2023-09-18
STM32扫地机器人开源资料分享.zip
2023-09-18
建立自由空间光学系统.docx
2023-09-18
51单片机与电脑之间的互相传送字符串通信的程序源代码.zip
2023-09-18
【嵌入式AI入门日记】将 AI 模型移植到 RT-Thread 上(1).zip
2023-09-15
mysql-redis在MySQL中操作Redis.zip
2023-09-13
2019美赛常用算法程序包的详细资料免费下载.zip
2023-09-13
python代码示例之基于Python的日历api调用代码实例.zip
2023-09-13
C语言程序设计之个人账簿管理系统.zip
2023-09-13
软考中级怎么复习学习
2023-08-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人