自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速上手,spring boot3整合task实现定时任务

当然,使用fixedRate参数只能实现简单的定时任务,假如我们的定时任务比较复杂呢。比如,我们要自定义任务的开始时间和执行间隔,这时fixedRate已经不能满足我们的需求了,我们需要使用另一种方法,cron表达式。1、创建一个spring boot项目,并在项目的启动类(也不一定非要是启动类,只要@Configuration注解标识过的配置类就行)上加@EnableScheduling注解。在已经上线的项目中,定时任务是必不可少的。我们需要的时候,直接使用图形化的界面点击生成相应的cron表示式即可。

2024-07-22 22:03:11 605

原创 前后端分离的后台管理系统开发模板(带你从零开发一套自己的若依框架)上

目前,前后端分离开发已经成为当前web开发的主流。目前最流行的技术选型是前端vue3+后端的spring boot3,本次。就基于这两个市面上主流的框架来开发出一套基本的后台管理系统的模板,以便于我们今后的开发。前端使用vue3+element-plus开发。后端使用spring boot3+spring security作为项目的支撑,使用MySQL8.0.30作数据存储,使用redis作缓存,使用minio作为项目的存储机构。后台管理系统是比较注重权限的,本项目使用市面上最流行的RBAC模型。

2024-06-29 21:58:19 742

原创 购买服务器,并安装宝塔

我们在开发项目时,总会遇到一个问题,就是将我们开发好的项目上传的公网中。对于中小型的项目,我们可以通过购买服务器进行项目的上线。我们的项目一般是部署在Linux环境中。如果你不是专业的运维人员,可能对于一些组件的环境搭建就显得很烦躁。那么现在宝塔的出现就可以解决这个问题。它提供了可视化的界面。能够帮我们更加快速地部署项目上线所需要的环境。宝塔面板(BT Panel)是由北京宝塔网络技术有限公司开发和维护的。它是一款国内知名的服务器管理控制面板,于2014年首次发布。

2024-06-22 22:05:26 763

原创 javaSSM整合的一个小项目(员工管理系统)

一个使用SSM开发的一套员工管理系统,用来完成《Java的企业级应用开发》期末结课的一个小项目。。。。

2024-06-12 21:59:23 727

原创 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 664

原创 springboot3的自动装配原理

都说spring boot是约定大于配置的,那么为什么要这样设置,本篇文章就来了解一下spring boot的自动配置原理。让你了解一下spring boot是如何启动工作的。

2024-05-17 19:11:07 788

原创 springboot3整合pageHelper实现分页功能

PageHelper是一个开源的Java分页插件,它提供了方便的分页查询功能,适用于大多数基于Java的持久层框架(如MyBatis、Hibernate等)。在一个程序中难免会使用到查询操作,在查询操作中如果数据量太大则需要进行分页查询,分页操作的实现方法有很多,比如:在 mybatis 中 xml 文件中通过 limit 关键字进行分页查询,该插件就是为了简化在 xml 中进行分页操作的工具;

2024-05-16 13:54:04 1456

原创 在vue3项目中设置错误路径的统一跳转

在我们前端开发过程中,如果,访问到了错误的或者不存在的路径,那么会直接出现空白。在一个完整的项目中,应该给用户一些友好的提示,显示他访问到了错误的页面。我们可以专门的创建一个错误界面的.vue文件,并在创建路由时,指定所有错误的路径都直接显示这个错误界面,这样就对我们的使用人员非常友好了。当然,我这个错误页面就显得非常粗糙了,如果,你可以自己设置一个错误页面的组件。这样,当用户访问项目中不存在的路径时,就会自动跳转到 404 页面,并显示相应的错误信息。可以看到正确的显示出了,我们想要的结果。

2024-04-29 13:34:02 309

原创 前后端分离,使用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 1083 4

原创 springboot3整合redis

可以看到,我们选择自定义redis的实现之后。使用起来就方便了很多,如果是比较简单的项目,那么使用StringRedisTemplate就可以解决相应的业务问题,但是在复杂的项目中,建议还是自定义一个RedisTemplate的实现类,使用自己的实现类会更方便一些,也更利于项目的扩展。(注意使用的时候,要注入相应的泛型,不然会提示找不到相应的依赖)在spring boot3版本之前,如果不注入泛型也可以,但是在3.0版本之后,如果不指定相应的泛型,那么在启动的时候就会报错,显示找不到相应的类型。

2024-04-27 15:09:08 837

原创 Windows电脑中护眼(夜间)模式的开启异常

询问了微软的客服之后,发现了问题的所在。当更新版本之后,显示适配器的驱动程序可能过时、损坏或不兼容,这可能导致适配器无法正常工作。当”显示适配器出现异常之后,可能会导致屏幕闪烁、分辨率异常、色彩失真或者显示器无法正常工作等显示问题。之前一直可以正常使用夜间模式,但是经过一次电脑的版本更新之后,我重启电脑发现我的夜间模式不能使用了。卸载驱动后,重启电脑,计算机将自动安装默认的驱动程序。之后就可以正常的使用夜间模式了(注意要将显示适配器下的所有驱动删除)”,点击显示适配器下方所有点驱动右击卸载。

2024-04-25 20:15:19 610

原创 阿里云OSS对象存储的使用和快速入门

云存储是一种通过互联网连接的服务,允许用户将数据存储在远程的云服务器上,而不是存储在本地设备上。这些数据可以包括文件、数据库、备份等各种类型的信息。云存储服务提供商通常会管理和维护这些存储设施,并提供用户可以访问、管理和共享数据的工具和接口。国内有名的大公司都有提供专门的存储服务,我们自需要进行购买就可以使用了。

2024-04-21 18:25:44 1689 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 1078

原创 springboot3整合consul实现服务注册和配置管理快速入门

在微服务的世界中,服务注册是必不可少的。现在比较流行的也就是Consul和Nacos,Zookeeper没有管理界面,一般不建议使用,而Eureka已经处于停更,并且本身就存在很多bug,一般不建议使用!现在,就在介绍以下使用consul实现服务注册和配配管理。先简单介绍一下Consul:Consul 是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。

2024-04-09 21:55:36 1121

原创 Spring boot Actuator监控管理的快速入门和实战

Spring Boot Actuator是Spring Boot提供的一个用于Spring Boot应用程序的功能模块。你可以选择通过使用HTTP端点或使用JMX来管理和监控你的应用程序。审计、健康和指标收集也可以自动应用于你的应用程序。Actuator的定义:actuator(执行器) 是一个制造术语,指的是用于移动或控制某物的机械装置。actuator 可以从一个小的变化中产生大量的运动。

2024-04-09 16:45:45 1425

原创 微服务项目中,内部服务的外网隔离

说白了就是检查一下这个请求有没有携带相应的请求头,如果是从网关转发而来的请求肯定会携带这个“gateway-config”的请求头,如果不是从网关转发而来的请求就不会携带这个请求头。当然,这种方法是非常粗糙的,专业的人员如果知道了你后端判定的依据,是非常容易伪造的,只不够是在请求中加上一个特殊的请求头而已。之前的方法很好的解决了外部请求直接访问子服务的问题,但如果是我们自己内部的服务进行相应的调度呢,我们可以OpenFeign的拦截器来实现;我的网关使用的使gateway,所以不会在网关模块生效)

2024-03-27 20:27:07 394

原创 OpenFeign的高级用法

之前写过一篇使用spring boot来整合OpenFeign来实现微服务模块之间的相互调用,但那只是OpenFeign最基本的使用方式了,今天我们就来讲点高级货;

2024-03-19 20:44:52 689

原创 seata的快速入门和实战

Seata是阿里巴巴旗下的产品,是一款开源的分布式事务解决方案,旨在解决分布式事务问题。我们有必要先了解一下分布式事务:在微服务体系中,每一个模块都有链接一个数据库,那么如果有多个模块之间相互调用,怎样保证各个模块之间的事务一致性,由此引出了分布式事务。在同一个数据库中,我们要保证事物的一致性是很简单的。因为MySQL是基于单机事物的,所以一旦遇到跨库的场景,那么MySQL数据库就无能为力了。在这种情景下,seata蕴育而生。我们之前的步骤都是建立在seata的AT模式上;

2024-03-17 21:41:35 1272

原创 docker部署Java项目

可以下载一个镜像(也可以是其他的jdk版本,都可以,甚至是jre都行,毕竟我们只是要运行Java项目)Dockerfile文件在同一个文件夹下,我才这么写的,也可以不在同一个文件夹下,用相对路径和绝对路径来指明位置)注意最后这个 . 很重要,它表示在当前目录中查找,如果你的文件不在当前目录,也可以用绝对或相对路径来指明;我本次演示将一个打包好的jar包部署到docker中,将这个jar包创建为一个容器,方便我们之后的部署;: 这是 Docker 命令行工具的一个子命令,用于构建 Docker 镜像。

2024-03-10 18:48:22 379

原创 前后端分离,使用vue3整合SpringSecurity加JWT实现权限校验

我所实现的是标准的RBAC(基于用户、角色、权限的访问控制模型)。所以,在得到用户id的情况下、先根据用户角色表查出角色id(如果角色id的集合为空,说明用户没有分配任何角色,直接返回用户信息)、在根据角色权限表查询权限id,在根据权限表查出具体权限名称。3、在JwtAuthenticationTokenFilter拦截器中,在查询到用户信息时,将用户的标识和用户拥有的权限一起放到SecurityContextHolder中,这样后面的过滤器在获取到用户信息的同时也能获取到用户所拥有的权限;

2024-02-27 20:57:02 1485 1

原创 springboot整合Sa-Token实现登录认证和权限校验(万字长文)

我本来是想写一篇介绍spring boot项目中整合Sa-Token来实现最常用的登录校验和权限认证的,但是写着写着就变成官网的复制机了。我在本篇文章中大量复制了官网上的内容,原本只是想复制一些官方介绍就行了。但是这也从侧面说明了Sa-Token官网制作的确实是比较好的,基本上不需要额外的学习,只要你有做过登录和权限方面的项目经验,再看一遍官网的介绍就能直接上手了。我之前写过一个B2C模式的购物商台,分为用户端和管理端。管理端的登录和权限校验是用spring security写的。

2024-02-03 21:33:07 4753 1

原创 前后端分离,使用vue3整合SpringSecurity加JWT实现登录认证

前段时间写了一篇spring security的详细入门,但是没有联系实际。所以这次在真实的项目中来演示一下怎样使用springsecurity来实现我们最常用的登录校验。本次演示使用现在市面上最常见的开发方式,前后端分离开发。前端使用vue3进行构建,用到了element-plus组件库、axios封装、pinia状态管理、Router路由跳转等技术。后端还是spring boot整合springsecurity+JWT来实现登录校验。

2024-01-22 17:02:58 3387 14

原创 前后端分离项目中实现图形验证码

图形验证码在我们的日常生活中时经常用到的,一般用于用户的登录、注册等。图形验证码在互联网应用中的作用是提高安全性、防止滥用和保护用户隐私。它是一种简单而有效的人机验证技术,帮助保护系统和用户免受自动化攻击的影响。本次我们通过spring boot后端项目生成图形验证码,通过vue3前端项目来展示验证码;在vue3前端项目中新建一个Captcha.vue文件,用来展示图形验证码。新建一个spring boot后端项目,并引入hutool依赖,来提供图形验证码。

2024-01-22 14:03:18 1964

原创 vue3中路由守卫的快速上手

路由守卫或者说路由拦截,在我们实际开发前端项目中是经常用到的操作;通过路由守卫,可以在用户访问某个路由之前进行权限验证。(全局前置守卫)例如,可以检查用户是否登录,是否具有访问该路由的权限,如果不满足条件,则可以将用户重定向到其他页面或显示相应的提示信息。

2024-01-09 22:56:05 1342

原创 vue3中路由的使用(详细讲解)

在前端或者vue3项目中路由主要用于构建单页面应用程序(SPA),其中所有的页面都在同一个HTML文件中加载,通过JavaScript动态地切换显示不同的内容。路由器(Router):路由器是负责管理路由的组件或模块。它定义了路由的规则、路径和对应的处理函数或组件。请着重注意,路由器(Router)与路由(Route)的区别。路由器是用来管理路由的,你也可以理解为路由的集合。如果将一个一个的路由比作学生,那么路由器就是老师,负责管理所有的路由。

2024-01-08 10:32:01 7570 5

原创 vue3项目中axios的常见用法和封装拦截(详细解释)

Axios是一个基于Promise的HTTP客户端库,用于浏览器和Node.js环境中发送HTTP请求。它提供了一种简单、易用且功能丰富的方式来与后端服务器进行通信。能够发送常见的HTTP请求,并获得服务端返回的数据。此外,Axios还提供了许多其他功能,例如设置请求头、处理并发请求、拦截请求和响应等。你可以在Axios的官方文档中了解更多详细信息:注意:在发送真实的HTTP请求时,请使用适当的URL,并根据需要进行错误处理和数据处理。Axios的官网:Axios。

2024-01-05 17:16:19 2260

原创 vue3中pinia的使用及持久化(详细解释)

Pinia的核心思想是将所有状态存储在单个store中,并且将store的行为和数据暴露为可响应的API。新建一个counter.ts文件,在这个文件中定义一个变量count,使这个count变量能被所有的组件共享,并修改其值;引入了pinia的持久化插件之后,我们再刷新页面,那么piniade的store函数中的数据也就持久的保存了。:是pinia使用中必须要引入的一个函数,它是用于定义一个新的store的函数。函数进行定义,并传入一个配置对象来描述store的行为和数据。

2023-12-31 15:43:44 2047

原创 使用spring boot3实现异常的统一返回

由于这个异常是在程序运行中出现的,属于RunException异常,我们自定义的异常不能够捕获到。在这个前后端分离的时代,一个 统一的数据格式非常重要。本次我们实现用spring boot实现一下返回给前端数据的统一格式,不再出现服务器500的错误。@RestControllerAdvice注解是@ControllerAdvice和@ResponseBody注解的结合,标识返回的数据是json类型。至此,我们就实现了全部的工作。可以返回了统一的数据,但是这个异常是我们自定义的。所以不能处理程序中的错误。

2023-12-28 20:24:48 1113

原创 vue2和vue3生命四种周期函数的比较(详细讲解)

vue组件实例在创建时要经历一系列的初始化步骤,在这个过程中vue会在合适的时刻,调用特定的函数,从而让开发者有机会在特定的阶段运行自己的代码,这些特定的函数称为:生命周期函数生命周期整体分为四个阶段,分别是:创建、挂载、更新、销毁。每个阶段都有两个钩子,一前一后。vue3中“创建”只有一个函数了,并且要用到的生命周期函数都要自己先进行引入才能使用。常用的生命周期函数也就:onMounted(挂载完毕)onUpdated(更新完毕)onBeforeUnmount(卸载完毕)

2023-12-24 15:00:18 554

原创 vue3的两种写法(组合式和选项式)

数据、方法、计算属性等,是分散在:data、methods、computed中的,如果想新增或者修改一个需求,就需要分别修改:data、methods、computed。相比较于传统的vue2的“选项式”写法,“组合式”更加的简便。总结来说:组合式写法更加灵活和可维护,我们在书写复杂的项目时,应该首选组合式写法,这也是vue官方推荐的写法。其他的组件都会直接或间接的被导入到App.vue组件中,这时就可以继续追踪其他的组件或直接显示其组件的内容了。记数: {{ count }}姓名: {{ name }}

2023-12-19 20:50:11 1962

原创 使用node.js创建一个vue3前端项目(详细入门)

本次演示如何使用node.js来创建一个vue3前端项目,并能在VScode中打开并编辑。

2023-12-17 15:34:49 3520 1

原创 spring boot整合gateway快速入门和实战

是一种用于构建微服务架构中的统一访问入口的服务器。它充当了客户端和后端微服务之间的中介,负责请求的路由、转发、身份校验、过滤、转换和聚合等功能。网关与各个微服务之间的关系:网关的组成:通过路由(Route)、过滤器(Filter)和断言(Predicate)组成了一个完整的网关服务gatewry路由、谓词与过滤器组成- 路由:id,uri谓词:-Path、-Header -After 等等条件组成过滤器:filter。

2023-12-16 21:36:32 2035 3

原创 什么是CSRF跨站请求伪造

就像在茫茫大海上钓鱼,万一就真的碰到了呢。所以不管是 cookie 还是 token,从存储角度来看其实都不安全,都有暴露的风险,我们所说的安全更多 的是强调传输中的安全(可以在请求头中加入随机的密钥),可以用 HTTPS 协议来传输, 这样的话请求头都能被加密,也就保证了传输中 的安全。那么如果正常的用户误点了上面这张图片,由于相同域名的请求会自动带上 cookie,而 cookie 里带有 正常登录用户的 sessionid,类似上面这样的转账操作在 server 就会成功,会造成极大的安全风险。

2023-12-13 13:26:26 642 1

原创 springboot3整合SpringSecurity实现登录校验与权限认证(万字超详细讲解)

用户提交登录请求Spring Security 将请求交给 UsernamePasswordAuthenticationFilter 过滤器处理。UsernamePasswordAuthenticationFilter 获取请求中的用户名和密码,并生成一个 AuthenticationToken 对象,将其交给 AuthenticationManager 进行认证。

2023-12-11 19:52:01 12115 4

原创 springboot3整合knife4j实现测试

由于spring boot2与spring boot3版本的巨大差异,整合knife4j的方式也有了很大的不同。本次我同时创建一个spring boot2与spring boot3项目。使用这两个版本来整合knife4j,最终来比较一下这两个版本knife4j的不同之处。1、创建spring boot项目并导入knife4j的依赖:2、其实现在就可以直接使用knife4j了,不需要再做其他的配置;

2023-12-08 21:18:01 1985 2

原创 使用spring boot整合EasyExcel实现excel表格的导入、导出功能

基于spring boot的自动装配原理,可以帮助我们快速的整合一些其他技术。本次使用spring boot整合EasyExcel来实现excel表格的导入和导出。

2023-12-05 21:28:39 2633

原创 spring boot3解决跨域问题(超详细解释)

跨域限制会导致一些常见的问题,例如在一个页面上使用JavaScript发起AJAX请求获取另一个域名下的数据时,浏览器会阻止这种跨域请求,以确保用户的安全性和隐私。registry.addMapping("/**") //指定允许跨域请求的路径模式为"/**",表示所有的路径都将允许跨域访问。使用@CrossOrigin注解可以配置允许的跨域请求规则,包括允许的源、允许的HTTP方法、允许的请求头、是否允许发送凭证等。跨域问题是由浏览器的安全机制引起的,而不是服务器端的限制。

2023-11-28 19:06:11 1290

原创 spring boot3整合Elasticsearch 实现快速入门

Elasticsearch是非常强大的一个开源的分布式搜索和分析引擎,是一个Nosql数据库,可以帮助我们从海量数据中快速找到需要的内容。以传统的MySQL数据库为例,要查询一条数据信息,通常是先找到这个数据的id,在顺应的找到这个数据,那么这样就是正向索引或者说普通索引如(select * from user where title like '%手机%')这条查询语句会在user表中,逐条的查看数据,看相应的数据是否符合条件。

2023-11-26 14:17:29 958 1

原创 spring boot整合openfeign实现两个微服务之间的调用。

(在FeignCLient接口中要注意路径的问题,因为)@FeignClient接口不允许使用@RequestMapper注解,而我们在controller接口中,一般会默认使用@RequestMapper注解,来指定操作的数据表,所以在FeignCLient接口中,要注意将路径补充完整。在这个接口上方添加@feignClient注解,表示这个接口是一个OpenFeign用户端接口,并在这个注解中写上你要调用的服务模块的微服务名称(这个名称要与注册到nacos中的微服务名称保持一致)。

2023-11-22 13:30:52 1239

原创 springboot3整合nacos实现注册中心和配置中心(详细入门)

(注意这是使用@ConfigurationProperties直接进行映射才有的效果,如果你是使用@Value()进行的读取,那么是不会进行热更新的需要重启项目才行,如果想要进行热更新,可以在使用@Value注解的类上加入@RefreshScope注解(实现热更新)才行)启动--->加载bootstrap.yml-->拉取nacos中的配置文件--->初始化ApplicationContext--->加载application.yml文件--->这里如果有相同的配置属性,那么后加载的会覆盖先加载的)

2023-11-18 21:53:56 3693 2

javaSSM整合的一个小项目(员工管理系统)

javaSSM整合的一个小项目(员工管理系统)

2024-06-12

使用docker,安装es、kibana和ik分词器

es的部署环境

2023-11-26

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

TA关注的人

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