- 博客(41)
- 问答 (1)
- 收藏
- 关注
原创 SpringBoot集成swagger和jwt
API 文档自动生成减少文档编写工作:通过在代码中使用注解,Swagger 可以自动生成详细的 API 文档,减少了手动编写文档的工作量。保持文档与代码同步:由于文档是直接从代码生成的,因此可以确保文档总是与实际的 API 实现保持一致。交互式 API 测试实时测试 API:Swagger UI 提供了一个基于浏览器的界面,允许开发者直接从浏览器调用 API 并查看响应结果,这有助于快速测试 API 功能。参数输入与验证。
2025-04-04 00:26:32
690
原创 java人脸识别
虹软人脸识别技术是由虹软公司开发的一系列人脸识别技术,包括人脸检测活体检测人脸识别等。这些技术基于深度学习算法,能够在复杂环境下快速准确地识别人脸,广泛应用于智能手机、DSC平板IPCamera机器人智能家居智能终端等领域。
2025-01-14 18:03:35
1607
原创 Elasticsearch快速入门
Elasticsearch是由elastic公司开发的一套搜索引擎技术,它是elastic技术栈中的一部分,提供核心的数据存储、搜索、分析功能elasticsearch之所以有如此高性能的搜索表现,正是得益于底层的倒排索引技术。那么什么是倒排索引呢?
2025-01-12 15:49:40
2174
原创 Vue3组件通讯——自定义事件(子->父)
3.子组件等待getUserInfo函数执行完毕后,调用init函数,获取父组件更新后的数据。3.子组件等待getUserInfo函数执行完毕后,调用init函数,获取父组件更新后的数据。2.数据更新成功后,子组件通知父组件getUserInfo函数,重新获取数据,同步更新。2.数据更新成功后,子组件通知父组件getUserInfo函数,重新获取数据,同步更新。1.在子组件中,当用户点击提交按钮后,更新数据库。在子组件中,当用户点击提交按钮后,更新数据库。
2025-01-09 00:13:50
348
原创 解决Vue中设置el-select的高度不生效问题
是Element UI框架中的一个选择器组件,它允许用户从多个选项中选择一个或多个项目。但这里确存在一个小坑,我们可以看到直接修改el-select的高度是无法生效的。我们使用浏览器可以看到下拉框内部有一个类el-select-wrapper,我们可以采用vue3提供的穿透样式作用域的关键字。对于采用vue2的友子们,需要采用vue2提供的/deep/关键字。其实要想修改下拉框的高度,必需要修改内部的css样式。至此el-select的高度修改成功。
2025-01-02 15:55:01
452
原创 mybatis-plus 用法总结
Test// 1.生成SQL// 2.更新,注意第一个参数可以给null,也就是不填更新字段和数据,// 而是基于UpdateWrapper中的setSQL来更新@GetterNORMAL(1, "正常"),FREEZE(2, "冻结");@EnumValue //标记枚举属性@JsonValue //标记JSON序列化时展示的字段要让处理枚举与数据库类型自动转换,我们必须告诉,枚举中的哪个字段的值作为数据库值。提供了@EnumValue。
2024-12-26 14:32:19
1506
原创 java常见API
Java API(Application Programming Interface,应用程序编程接口)是一组预先定义的类、接口和方法,为开发者提供了丰富的功能来构建 Java 应用程序。
2024-12-26 08:52:48
949
原创 RabbitMq的运用(2)—— 交换机和消息转换器的使用
abbitMQ 中的交换机(Exchange)是消息传递系统中的关键组件,它负责接收来自生产者的消息并将它们路由到一个或多个队列。交换机本身并不存储消息;它的作用更像是一个路由器,根据特定规则决定如何分发消息。:生产者,不再发送消息到队列中,而是发给交换机:交换机,一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。:消息队列也与以前一样,接收消息、缓存消息。不过队列一定要与交换机绑定。
2024-12-25 14:00:00
868
原创 java集合——Stream流的使用
Java 8 引入了StreamAPI,这是一个用于处理集合数据的强大工具。Stream不是数据结构,而是一个来自数据源(如集合、数组或 I/O channel)的元素序列,并支持各种操作来转换和处理这些元素。Stream的设计受到了函数式编程语言的影响,它使得代码更加简洁和易于理解。
2024-12-25 07:00:00
898
原创 RabbitMq的运用(1)—— 基础使用方法介绍
这样,发送消息的人和接收消息的人就完全解耦了。而相关的微服务都可以订阅消息通知,一旦消息到达Broker,则会分发给每一个订阅了的微服务,处理各自的业务。这样显然是有问题的。由于我们采用了同步调用,调用者需要等待服务提供者执行完返回结果后,才能继续向下执行,也就是说每次远程调用,调用者都是阻塞等待状态。登录后,我们可以发现,之前创建的队列,是拒绝访问的,因为这个队列是创建在虚拟主机“/”中的,而虚拟主机“/”是归guest用户管理的。另外,不管是交易服务、通知服务,还是积分服务,他们的业务与支付关联度低。
2024-12-24 15:00:00
3074
原创 SpringCloud 入门(4)—— 网关
Spring Cloud Gateway 作为 Spring Cloud 生态系统的一部分,主要在微服务架构中充当 API 网关的角色。它提供了统一的入口点来处理所有的 HTTP 请求,并将这些请求路由到不同的后端微服务。
2024-12-24 10:02:45
1147
原创 SpringCloud 运用(3)—— Nacos配置中心
Nacos是阿里巴巴开源的服务发现与配置管理基础设施,旨在帮助开发者更轻松地构建云原生应用。它提供了一组简单易用的特性集,支持动态服务发现、配置管理和服务管理,适用于微服务架构和云原生应用环境。
2024-12-23 14:34:48
438
原创 nginx负载均衡配置
Nginx(发音为 "engine-x")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3代理服务器。Nginx以其高效率、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。它最初由俄罗斯程序员伊戈尔·西索夫(Igor Sysoev)开发,首次公开发布于2004年。Nginx广泛应用于互联网,很多高流量网站如Netflix、GitHub、WordPress.com等都使用Nginx来处理其网络流量。此外,Nginx还提供了商业版本Nginx Plus,增加了更多高级特性和支持服务。
2024-12-16 20:59:19
748
原创 SpringSecurity使用教程
RBAC权限模型(Role-Based Access Control)即:基于角色的权限控制。这是目前最常被开发者使用 也是相对易用、通用权限模型。我们可以在自己定义expression包下,创建自己的权限校验方法,然后在@PreAuthorize注解中使用自己的方法。//获取当前用户的权限//判断用户权限集合中是否存在authority在SPEL表达式中使用 @ex相当于获取容器中bean的名字未ex的对象。然后再调用这个对象的 hasAuthority方法。
2024-12-15 23:52:45
1284
原创 minio 分布式文件管理
synchronized是一种悲观锁,在执行被synchronized包裹的代码时需要首先获取锁,没有拿到锁则无法执行,是总悲观的认为别的线程会去抢,所以要悲观锁。乐观锁的思想是它不认为会有线程去争抢,尽管去执行,如果没有执行成功就再去重试。为了防止多个分布式任务,执行同一个行为,需要使用分布锁进行来控制1、基于数据库实现分布锁利用数据库主键唯一性的特点,或利用数据库唯一索引、行级锁的特点,多个线程同时去更新相同的记录,谁更新成功谁就抢到锁。
2024-12-10 23:41:27
3974
原创 SpringBoot引入Log4j2日志
Log4j2 是 Apache 软件基金会的一个项目,是广受欢迎的日志框架 Log4j 的升级版本。它旨在解决原始 Log4j(现在称为 Log4j 1.x)中的一些性能和功能上的限制,并提供一个更快速、更可靠的日志记录解决方案。目前市面上最主流的日志门面就是SLF4J,虽然Log4j2 也是日志门面,因为它的日志实现功能非常强大,优越。所以大家一般还是将 Log4j2 看作是日志的实现。
2024-12-09 10:45:34
334
原创 maven多模块开发
已经为所有被 Spring Boot 管理的依赖进行了统一的版本控制,这样做的目的是确保 SecurityDemo 这个聚合工程下的所有子模块中的 Spring Boot 系列依赖版本都遵循。这种结构有助于提高项目的可维护性和模块化程度,同时简化依赖管理和构建过程,避免不同模块而导致的版本冲突问题。若子模块不是自己开发的,子模块引入的某个依赖对自己有影响,此时可以使用排除依赖(别人引用的依赖,自己不想用)部分,你可以有效地统一管理所有子模块的依赖版本,从而避免不同模块导入的版本不一致导致的依赖冲突问题。
2024-12-08 10:25:56
1124
原创 xxl-job分布式任务调度
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。xxl-job-admin:调度中心,需要在配置文件中修改数据库地址xxl-job-core:公共依赖xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用)
2024-12-05 19:49:23
1463
原创 SpringBoot引入mongdb
MongoDB 是一个开源的、基于分布式文件存储的 NoSQL 数据库。它属于文档型数据库的一种,以其灵活的数据模型和高性能而著称。MongoDB 使用 BSON(Binary JSON)格式存储数据,这种格式允许存储复杂的数据结构,如嵌套的对象和数组。MongoDB 存储的数据是文档形式的,通常使用 BSON 格式。每个文档相当于关系型数据库中的一行记录通过内存映射文件技术,内置的索引支持使得查询速度非常快。本项目采用docker进行安装。
2024-12-03 12:06:09
580
原创 SpringBoot整合redis
Redis(Remote Dictionary Server)是一个开源的、高性能的键值对存储系统,常被用作数据库、缓存和消息中间件。Redis 支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),并且提供了丰富的功能和操作。
2024-12-02 23:04:11
886
原创 Mybatis动态SQL(特殊情况的处理方案)
JDBC 默认情况下是自动提交事务的,而 MyBatis 默认情况下是手动提交事务。这给了开发者更大的灵活性来控制事务的边界。自动提交事务会导致每次执行SQL语句都会进行事务提交,可能会对性能产生影响,#{}:执行时会将其替换为?(类似与jdbc),可以防止SQL注入。${}:拼sql,会存在SQL注入问题(jdbc的传统写法)在实际应用中需要根据具体情况来选择是否开启自动提交事务。数据库名与java属性名不一致时的处理方案。
2024-11-07 21:40:48
499
原创 java文件操作(IO流-详细简介)
在Java中,IO流用于实现数据的输入和输出操作,它允许程序从不同的数据源读取数据并将数据写入不同的目标。流的设计围绕着数据的输入和输出进行组织,因此可以将IO流按数据流向划分为输入流和输出流。按照数据类型又划分为字节流和字符流。在此基础上,进一步延伸出处理流对象流转换流、和打印流等特殊类型流,以提供额外的功能。
2024-10-28 18:18:00
923
原创 SpringBoot项目常见应用的部署方法(合集)
相信很多新手后端开发人员,在项目部署时,会遇到很多难题吧本文采用Centos服务器,使用Docker技术实现前后端项目的部署,待补充....
2024-10-27 18:28:57
1360
原创 Dropdown 下拉菜单 el-dropdown-item绑定事件(native)
修饰符来绑定事件,是因为它内部已经处理了原生事件和自定义事件的绑定方式。是一个自定义的组件,它并不是一个原生的HTML元素,所以当你想在。修饰符来告诉Vue将事件绑定到根元素上。上绑定原生事件时,你需要使用。
2023-08-22 17:24:57
699
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人