- 博客(62)
- 收藏
- 关注
原创 spring boot项目中Lombok注解失效问题
但是我发现明明已经在pom文件中引入了lombok的坐标,并且在项目代码中也能正常的使用Lombok的注解。然后一直没有往pom文件的Build插件方面考虑,当时反反复复的看了我的依赖项,发现是由Lombek坐标的,然后可以只用@Data注解,就是get、set方法都不能被扫描到的时候。我找了一大圈,发现是新版的spring boot项目,如果你在创建项目的时候,直接顺手勾选了Lombek的注解时,spring boot官方会自动引入一个maven插件,然后这个maven插件会自动把Lombek给排除掉。
2025-03-20 21:52:50
439
原创 flyway的校验原理
机制来检测脚本内容的变化,接下来我们来了解一下具体的判断逻辑和操作方法。脚本的校验和变化会被 Flyway 识别,但不会报错。我们经常使用flyway的都知道,Flyway 通过。Flyway 会对每个迁移脚本的内容计算一个唯一的。(包括空格、注释、字符大小写等),其校验和会发生变化。通过校验和机制,Flyway 确保了数据库迁移的。:回滚代码到原始版本,或创建新版本脚本修复问题。计算每个脚本的校验和(基于文件内容)。脚本,并更新元数据表中的校验和记录。脚本的本地校验和与数据库记录不一致。
2025-03-02 17:35:07
997
原创 spring boot整合flyway实现数据的动态维护
以上,就是我们使用spring boot整合flyway来进行数据库的版本管理。总体来说是非常简单的,我们只需要一些简单的配置和遵守一些flyway的命名规定就可以直接使用flyway了。这也是spring官方一直在努力推行的约定大于配置,配置大于编码当然,flyway的功能还有很多,这篇文章也只是初步帮你认识一下flyway。spring:flyway:# 基础配置enabled: true # 是否启用 Flyway,默认 true。
2025-03-02 16:26:40
975
原创 唯一字段的修改
我们要根据这个编码值去数据库中进行查询,如果能查询到,就说明编码值已经存在,这边数据就不能修改。当原编码值没有改变时,这就是一次普通的修改,我们直接执行SQL语句就好了。那么我们怎样判断原编码值有没有改变呢,我们可以根据ID来查询数据库中的数据信息与我们要修改数据信息进行比较。在我们进行开发中,有一个很常见的功能就是,我们要实现一张数据表中一个字段的唯一性。我们要实现的是,在这张表中这个字段是唯一的。我们修改数据一般是根据数据额度ID来进行数据的修改。这个是我们比较容易想到的,那么我们修改的时候呢;
2025-02-27 17:37:21
207
原创 本地电脑部署deepseek大模型
要说现在最火的AI大模型,deepseek说第二就没人敢说第一。本次教大家怎样在本地自己的电脑上部署一个独属自己的AI大模型。本次我们使用Ollama进行部署大模型。Ollama 是一个开源项目,旨在简化和优化大规模语言模型的部署和使用。它提供了一个框架,帮助开发者和研究人员更高效地训练、微调和部署大型语言模型。需要提前说明的一点是,由于我们本地电脑的局限性,所以我们是几乎是不可能部署到与官网功能相同的大模型的。我们部署在本地的都是阉割版的大模型。
2025-02-11 10:00:00
1115
原创 三种加密方式的比较
摘要加密,也称为消息摘要或哈希算法,是一种将任意长度的输入数据转换为固定长度的输出字符串的算法。这个输出字符串通常称为摘要值或哈希值。不可逆性:一旦生成了摘要值,就无法从摘要值反推出原始数据。这意味着摘要算法是不可逆的,只能用于验证数据的完整性和唯一性,而不能用于解密数据。确定性:对于相同的输入数据,摘要算法总是会产生相同的输出结果。这意味着摘要值可以用于验证数据的真实性和完整性,因为相同的输入数据总是会产生相同的输出结果。雪崩效应:当输入数据发生微小变化时,摘要值会产生极大的差异。
2025-01-14 17:30:49
563
原创 spring boot项目启动时自定义logo
在使用spring boot框架来进行web开发时,每次启动项目都会有一个默认的logo。这个是spring官方的logo标识,但是,我们也可以把这个标识换成自己想要的标识。的文件(注意文件的名字一定要叫banner.txt,这样spring框架才能识别到),并将你的文本内容放入其中。我们想要替换掉这个logo也很简单,我们只要在项目的resources资源目录下放置一个文件就可以了。Spring Boot 会在启动时自动读取这个文件并显示其内容。这些网站可以生成你想要的艺术字。
2025-01-03 16:13:11
768
原创 工作中问题
maven的依赖具有传递性,当你项目中依赖了A坐标,A坐标中可能依赖了B坐标。所以,当你刷新maven时,显示,找不到某一个坐标C,但是你的项目中,没有依赖坐标C,那么可能坐标C在你依赖的依赖里面,进行仔细的查找。总结来说,如果你没有遇到JavaScript中的精度问题,或者前端没有特别要求以字符串形式接收。本人是一个刚工作的后端工程师,这篇文章记录工作中遇到的问题。如果你有上述提到的任何需求,那么使用这个注解将。我这次就有一个Long类型的ID,由于没有使用。同样是@Param注解,相应的。
2024-11-05 17:11:30
513
原创 使用docker进行前后端分离的微服务项目部署上线
对于我们个人开发者而言,开发完一个项目之后,总会有一个问题就是这个项目要不要部署上线。本次就使用docker将我开发好的一个前后端分离的微服务项目部署上线。本次部署项目用到了宝塔面板来进行实时的监控,如果你没有安装宝塔面板,可以参考一下这篇文章。注意宝塔面板的放行,下载完宝塔之后,我们直接使用可视化页面进行项目的部署。点击docker,直接使用可视化页面的方式进行下载。下载完docker之后,进行docker加速镜像的配置;如果不存在如果已经存在现在,我们已经可以开始进行docker容器化的部署了。
2024-09-12 13:40:18
848
原创 启动spring boot项目时,第三方jar包扫描不到的问题
在这个启动类中,我们加上了@ComponentScan注解,并在这个注解上指定了一个路径,那么现在spring boot项目启动时就只会扫描com.zq.testspringboot包下的内容。为启动类所在包和子包。如果我们需要扫描其他模块的包或者第三方的jar包,我们就要单独使用@ComponentScan注解扫描,或者直接在@SpringbootApplication注解中指定扫描的第三方路径。,也就是说不能够扫描启动类所在包以及子包了,因为它被@ComponentScan注解中指定的包扫描覆盖了。
2024-09-05 20:53:43
1139
1
原创 解决使用uniapp时,uni.switchTab跳转标签页面不刷新的问题
我们在使用uni.switchTab跳转到标签页面时,并不会触发这个标签页面的onLoad方法。这是因为,所以使用 uni.switchTab跳转时,并不会重新创建页面实例,因此不会触发 onLoad生命周期方法。但是我们又会有这样的场景,在进入到标签页时,要调用一些方法来进行数据的展示,那么这时候,我们有三种常见的解决方案。
2024-08-18 16:07:34
4203
1
原创 uniapp连接手机调试App,并最终打包成apk文件,并最终上传到应用商店
对于一些刚开始使用uniapp开发app的同学来说,有时候仅仅是第一步连接手机进行开发测试都很难进行。这篇文章就来向大家介绍一些怎样连接手机进行调试我们开发中的项目,并最终将开发好的项目打成apk包进行安装,和将开发好的App应用上传到应用商店的一系列问题。
2024-08-06 22:40:47
2590
原创 uniapp创建一个新项目并导入uview-plus框架
但是由于硬件设施的不同,我们往往对于同一款应用的两个不同端要编写两次代码,而这些代码中有很多都是可以复用的,那么有没有一张可能,我们只编写一次代码就能满足不同的设施需求呢。,是全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水,基于uView2.0初步修改,后续会陆续修复vue3兼容性,以及组合式API改造等。现在,我们要在项目中引入uview-plus框架,这个框架的作用是帮我们写出一些符合大众审美的样式,避免我们自己再进行复杂的样式编写。接下来,我们言归正传。
2024-08-05 23:28:50
1844
原创 使用git命令行的方式,将本地项目上传到远程仓库
在国内的开发环境中,git的使用是必不可少的。Git 是一款分布式版本控制系统,用于有效管理和追踪文件的变更历史及协作开发。本片文章就来介绍一下怎样使用git命令行的方式,将本地项目上传到远程仓库,虽然现在的IDE中基本都配置了git的可视化操作,但我们还是应该掌握使用命令行的形式上传文件。1、。2、git initgit add .注意这个命令的前提是在项目的根路径下才可以。add后面的“.”表示当前目录下的所有文件;
2024-07-28 23:03:56
2875
原创 快速上手,spring boot3整合task实现定时任务
当然,使用fixedRate参数只能实现简单的定时任务,假如我们的定时任务比较复杂呢。比如,我们要自定义任务的开始时间和执行间隔,这时fixedRate已经不能满足我们的需求了,我们需要使用另一种方法,cron表达式。1、创建一个spring boot项目,并在项目的启动类(也不一定非要是启动类,只要@Configuration注解标识过的配置类就行)上加@EnableScheduling注解。在已经上线的项目中,定时任务是必不可少的。我们需要的时候,直接使用图形化的界面点击生成相应的cron表示式即可。
2024-07-22 22:03:11
1594
原创 前后端分离的后台管理系统开发模板(带你从零开发一套自己的若依框架)上
目前,前后端分离开发已经成为当前web开发的主流。目前最流行的技术选型是前端vue3+后端的spring boot3,本次。就基于这两个市面上主流的框架来开发出一套基本的后台管理系统的模板,以便于我们今后的开发。前端使用vue3+element-plus开发。后端使用spring boot3+spring security作为项目的支撑,使用MySQL8.0.30作数据存储,使用redis作缓存,使用minio作为项目的存储机构。后台管理系统是非常的,本项目使用市面上最流行的RBAC模型。
2024-06-29 21:58:19
1055
原创 购买服务器,并安装宝塔
我们在开发项目时,总会遇到一个问题,就是将我们开发好的项目上传的公网中。对于中小型的项目,我们可以通过购买服务器进行项目的上线。我们的项目一般是部署在Linux环境中。如果你不是专业的运维人员,可能对于一些组件的环境搭建就显得很烦躁。那么现在宝塔的出现就可以解决这个问题。它提供了可视化的界面。能够帮我们更加快速地部署项目上线所需要的环境。宝塔面板(BT Panel)是由北京宝塔网络技术有限公司开发和维护的。它是一款国内知名的服务器管理控制面板,于2014年首次发布。
2024-06-22 22:05:26
1029
原创 javaSSM整合的一个小项目(员工管理系统)
一个使用SSM开发的一套员工管理系统,用来完成《Java的企业级应用开发》期末结课的一个小项目。。。。
2024-06-12 21:59:23
874
原创 SSM框架整合,内嵌Tomcat。基于注解的方式集成
SSM相信大家都不陌生,在spring boot出现之前,SSM一直是Java在web开发中的老大哥。现在虽说有了spring boot能自动整合第三方框架了,但是现在市面上任然有很多老项目是基于SSM技术的。因此,能熟练掌握SSM进行开发也是非常重要的。对于新的项目,我当然是推荐直接用spring boot,但是对于像SSM技术的项目,我们必须也能够熟练上手。(虽说现在电动车很方便,但我们也要会骑自行车)SSM(Spring+SpringMVC+MyBatis)是一种经典的Java Web开发框架组合。
2024-06-06 09:14:42
943
原创 springboot3的自动装配原理
都说spring boot是约定大于配置的,那么为什么要这样设置,本篇文章就来了解一下spring boot的自动配置原理。让你了解一下spring boot是如何启动工作的。
2024-05-17 19:11:07
1178
原创 springboot3整合pageHelper实现分页功能
PageHelper是一个开源的Java分页插件,它提供了方便的分页查询功能,适用于大多数基于Java的持久层框架(如MyBatis、Hibernate等)。在一个程序中难免会使用到查询操作,在查询操作中如果数据量太大则需要进行分页查询,分页操作的实现方法有很多,比如:在 mybatis 中 xml 文件中通过 limit 关键字进行分页查询,该插件就是为了简化在 xml 中进行分页操作的工具;
2024-05-16 13:54:04
3947
原创 在vue3项目中设置错误路径的统一跳转
在我们前端开发过程中,如果,访问到了错误的或者不存在的路径,那么会直接出现空白。在一个完整的项目中,应该给用户一些友好的提示,显示他访问到了错误的页面。我们可以专门的创建一个错误界面的.vue文件,并在创建路由时,指定所有错误的路径都直接显示这个错误界面,这样就对我们的使用人员非常友好了。当然,我这个错误页面就显得非常粗糙了,如果,你可以自己设置一个错误页面的组件。这样,当用户访问项目中不存在的路径时,就会自动跳转到 404 页面,并显示相应的错误信息。可以看到正确的显示出了,我们想要的结果。
2024-04-29 13:34:02
733
原创 前后端分离,使用sa-token作为安全框架快速搭建一个微服务项目
之前的项目是一个基于B2C的单体商城项目。使用到的技术栈有spring boot3.1.5、MySQL8.0.30、redis7.0.10,使用minio作为项目的文件上传,使用spring security作为项目的安全框架;使用vue3+element-plus开发前端,并最终将整个项目部署到nginx上。本次重新拆分这个单体项目,使之成为一个微服务项目。
2024-04-29 08:25:19
1950
7
原创 springboot3整合redis
可以看到,我们选择自定义redis的实现之后。使用起来就方便了很多,如果是比较简单的项目,那么使用StringRedisTemplate就可以解决相应的业务问题,但是在复杂的项目中,建议还是自定义一个RedisTemplate的实现类,使用自己的实现类会更方便一些,也更利于项目的扩展。(注意使用的时候,要注入相应的泛型,不然会提示找不到相应的依赖)在spring boot3版本之前,如果不注入泛型也可以,但是在3.0版本之后,如果不指定相应的泛型,那么在启动的时候就会报错,显示找不到相应的类型。
2024-04-27 15:09:08
1984
原创 Windows电脑中护眼(夜间)模式的开启异常
询问了微软的客服之后,发现了问题的所在。当更新版本之后,显示适配器的驱动程序可能过时、损坏或不兼容,这可能导致适配器无法正常工作。当”显示适配器出现异常之后,可能会导致屏幕闪烁、分辨率异常、色彩失真或者显示器无法正常工作等显示问题。之前一直可以正常使用夜间模式,但是经过一次电脑的版本更新之后,我重启电脑发现我的夜间模式不能使用了。卸载驱动后,重启电脑,计算机将自动安装默认的驱动程序。之后就可以正常的使用夜间模式了(注意要将显示适配器下的所有驱动删除)”,点击显示适配器下方所有点驱动右击卸载。
2024-04-25 20:15:19
4341
原创 阿里云OSS对象存储的使用和快速入门
云存储是一种通过互联网连接的服务,允许用户将数据存储在远程的云服务器上,而不是存储在本地设备上。这些数据可以包括文件、数据库、备份等各种类型的信息。云存储服务提供商通常会管理和维护这些存储设施,并提供用户可以访问、管理和共享数据的工具和接口。国内有名的大公司都有提供专门的存储服务,我们自需要进行购买就可以使用了。
2024-04-21 18:25:44
2619
2
原创 redis的主从复制(docker方式快速入门和实战)
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。从 Redis 2.6 开始, 从服务器支持只读模式, 并且该模式为从服务器的默认模式。只读模式由 redis.conf 文件中的 slave-read-only 选项控制, 也可以通过 CONFIG SET parameter value (opens new window)命令来开启或关闭这个模式。
2024-04-13 15:55:57
1154
原创 springboot3整合consul实现服务注册和配置管理快速入门
在微服务的世界中,服务注册是必不可少的。现在比较流行的也就是Consul和Nacos,Zookeeper没有管理界面,一般不建议使用,而Eureka已经处于停更,并且本身就存在很多bug,一般不建议使用!现在,就在介绍以下使用consul实现服务注册和配配管理。先简单介绍一下Consul:Consul 是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。
2024-04-09 21:55:36
1658
原创 Spring boot Actuator监控管理的快速入门和实战
Spring Boot Actuator是Spring Boot提供的一个用于Spring Boot应用程序的功能模块。你可以选择通过使用HTTP端点或使用JMX来管理和监控你的应用程序。审计、健康和指标收集也可以自动应用于你的应用程序。Actuator的定义:actuator(执行器) 是一个制造术语,指的是用于移动或控制某物的机械装置。actuator 可以从一个小的变化中产生大量的运动。
2024-04-09 16:45:45
1698
原创 微服务项目中,内部服务的外网隔离
说白了就是检查一下这个请求有没有携带相应的请求头,如果是从网关转发而来的请求肯定会携带这个“gateway-config”的请求头,如果不是从网关转发而来的请求就不会携带这个请求头。当然,这种方法是非常粗糙的,专业的人员如果知道了你后端判定的依据,是非常容易伪造的,只不够是在请求中加上一个特殊的请求头而已。之前的方法很好的解决了外部请求直接访问子服务的问题,但如果是我们自己内部的服务进行相应的调度呢,我们可以OpenFeign的拦截器来实现;我的网关使用的使gateway,所以不会在网关模块生效)
2024-03-27 20:27:07
611
原创 OpenFeign的高级用法
之前写过一篇使用spring boot来整合OpenFeign来实现微服务模块之间的相互调用,但那只是OpenFeign最基本的使用方式了,今天我们就来讲点高级货;
2024-03-19 20:44:52
822
原创 seata的快速入门和实战
Seata是阿里巴巴旗下的产品,是一款开源的分布式事务解决方案,旨在解决分布式事务问题。我们有必要先了解一下分布式事务:在微服务体系中,每一个模块都有链接一个数据库,那么如果有多个模块之间相互调用,怎样保证各个模块之间的事务一致性,由此引出了分布式事务。在同一个数据库中,我们要保证事物的一致性是很简单的。因为MySQL是基于单机事物的,所以一旦遇到跨库的场景,那么MySQL数据库就无能为力了。在这种情景下,seata蕴育而生。我们之前的步骤都是建立在seata的AT模式上;
2024-03-17 21:41:35
1516
原创 前后端分离,使用vue3整合SpringSecurity加JWT实现权限校验
我所实现的是标准的RBAC(基于用户、角色、权限的访问控制模型)。所以,在得到用户id的情况下、先根据用户角色表查出角色id(如果角色id的集合为空,说明用户没有分配任何角色,直接返回用户信息)、在根据角色权限表查询权限id,在根据权限表查出具体权限名称。3、在JwtAuthenticationTokenFilter拦截器中,在查询到用户信息时,将用户的标识和用户拥有的权限一起放到SecurityContextHolder中,这样后面的过滤器在获取到用户信息的同时也能获取到用户所拥有的权限;
2024-02-27 20:57:02
2461
3
原创 springboot整合Sa-Token实现登录认证和权限校验(万字长文)
我本来是想写一篇介绍spring boot项目中整合Sa-Token来实现最常用的登录校验和权限认证的,但是写着写着就变成官网的复制机了。我在本篇文章中大量复制了官网上的内容,原本只是想复制一些官方介绍就行了。但是这也从侧面说明了Sa-Token官网制作的确实是比较好的,基本上不需要额外的学习,只要你有做过登录和权限方面的项目经验,再看一遍官网的介绍就能直接上手了。我之前写过一个B2C模式的购物商台,分为用户端和管理端。管理端的登录和权限校验是用spring security写的。
2024-02-03 21:33:07
8778
3
原创 前后端分离,使用vue3整合SpringSecurity加JWT实现登录认证
前段时间写了一篇spring security的详细入门,但是没有联系实际。所以这次在真实的项目中来演示一下怎样使用springsecurity来实现我们最常用的登录校验。本次演示使用现在市面上最常见的开发方式,前后端分离开发。前端使用vue3进行构建,用到了element-plus组件库、axios封装、pinia状态管理、Router路由跳转等技术。后端还是spring boot整合springsecurity+JWT来实现登录校验。
2024-01-22 17:02:58
5982
16
原创 前后端分离项目中实现图形验证码
图形验证码在我们的日常生活中时经常用到的,一般用于用户的登录、注册等。图形验证码在互联网应用中的作用是提高安全性、防止滥用和保护用户隐私。它是一种简单而有效的人机验证技术,帮助保护系统和用户免受自动化攻击的影响。本次我们通过spring boot后端项目生成图形验证码,通过vue3前端项目来展示验证码;在vue3前端项目中新建一个Captcha.vue文件,用来展示图形验证码。新建一个spring boot后端项目,并引入hutool依赖,来提供图形验证码。
2024-01-22 14:03:18
2353
原创 vue3中路由守卫的快速上手
路由守卫或者说路由拦截,在我们实际开发前端项目中是经常用到的操作;通过路由守卫,可以在用户访问某个路由之前进行权限验证。(全局前置守卫)例如,可以检查用户是否登录,是否具有访问该路由的权限,如果不满足条件,则可以将用户重定向到其他页面或显示相应的提示信息。
2024-01-09 22:56:05
1980
原创 vue3中路由的使用(详细讲解)
在前端或者vue3项目中路由主要用于构建单页面应用程序(SPA),其中所有的页面都在同一个HTML文件中加载,通过JavaScript动态地切换显示不同的内容。路由器(Router):路由器是负责管理路由的组件或模块。它定义了路由的规则、路径和对应的处理函数或组件。请着重注意,路由器(Router)与路由(Route)的区别。路由器是用来管理路由的,你也可以理解为路由的集合。如果将一个一个的路由比作学生,那么路由器就是老师,负责管理所有的路由。
2024-01-08 10:32:01
12440
5
原创 vue3项目中axios的常见用法和封装拦截(详细解释)
Axios是一个基于Promise的HTTP客户端库,用于浏览器和Node.js环境中发送HTTP请求。它提供了一种简单、易用且功能丰富的方式来与后端服务器进行通信。能够发送常见的HTTP请求,并获得服务端返回的数据。此外,Axios还提供了许多其他功能,例如设置请求头、处理并发请求、拦截请求和响应等。你可以在Axios的官方文档中了解更多详细信息:注意:在发送真实的HTTP请求时,请使用适当的URL,并根据需要进行错误处理和数据处理。Axios的官网:Axios。
2024-01-05 17:16:19
2693
原创 vue3中pinia的使用及持久化(详细解释)
Pinia的核心思想是将所有状态存储在单个store中,并且将store的行为和数据暴露为可响应的API。新建一个counter.ts文件,在这个文件中定义一个变量count,使这个count变量能被所有的组件共享,并修改其值;引入了pinia的持久化插件之后,我们再刷新页面,那么piniade的store函数中的数据也就持久的保存了。:是pinia使用中必须要引入的一个函数,它是用于定义一个新的store的函数。函数进行定义,并传入一个配置对象来描述store的行为和数据。
2023-12-31 15:43:44
2316
springboot自定义starter
2023-11-09
spring boot自定义starter
2023-10-27
spring boot自定义starter
2023-10-26
关于spring boot整合knife4j过程遇到的问题
2023-10-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人