自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(192)
  • 问答 (1)
  • 收藏
  • 关注

原创 SpringBoot整合Swagger,让开发更遍历

**Swagger** 是一种流行的开源工具集,用于设计、构建、记录和使用 RESTful Web 服务的 API( https://swagger.io/ )。它包含了一系列工具,可以帮助开发人员在开发 API 时更加高效地进行设计、测试和文档编写。

2024-05-13 11:44:04 1161 5

原创 【Linux】Docker 安装部署 Nacos

Docker 安装部署 Nacos

2024-05-07 21:41:27 569

原创 SpringBoot 缓存

`缓存`- 缓存时一种介于数据永久存储介质与数据应用之间的数据临时存储介质- 使用缓存可以有效的减少低速数据读取过程的次数(例如磁盘IO),提高系统性能- 缓存不仅可以用于提高永久性存储介质的数据读取效率,还可以提供临时的数据存储空间

2024-04-24 15:29:05 1397

原创 微服务:Nacos注册中心

### 流程原理分析- 服务提供者启动时注册信息。- 服务提供者为临时实例:采用心跳监控,向每30秒发送心跳请求向nacos汇报状态。- 服务提供者非临时实例:nacos会主动询问其状态。- 服务消费者远程调用服务提供者时,会定时从nacos拉取服务列表,更新服务列表缓存。- 当nacos注册中心的服务列表更新时,nacos还会主动推送消息给服务消费者,以更新服务列表缓存。

2024-04-23 00:00:00 1185

原创 Cloud微服务:Ribbon负载均衡

- 服务消费者(order-service)根据服务名称发起请求,请求地址(url):http://userservice/user/1。- 请求被**负载均衡拦截器:LoadBalancerInterceptor**拦截,给到了**负载均衡客户端:RibbonLoadBalancerClient**。- **负载均衡客户端:RibbonLoadBalancerClient**获取url中的**服务名称:userservice**并给到**动态服务列表负载均衡器:DynamicServiceListLo

2024-04-22 16:39:25 1218

原创 微服务:Eureka原理实践:@EnableEurekaServer、@LoadBalanced

- 服务提供者会在启动时向Erueka注册自己的信息。- Erueka保存这些注册的信息。- 服务消费者根据服务名称,向Erueka拉取服务提供者的信息。

2024-04-22 16:21:29 1102

原创 ⑥【Shiro】使多个自定义Realm规则生效。

多个Realm实现原理:- 当应用程序配置多个 Realm 时,例如:用户名密码校验、手机号验证码校验等等。Shiro 的 **ModularRealmAuthenticator** 会使用内部的 **AuthenticationStrategy** 组件判断认证是成功还是失败。

2024-04-19 06:00:00 614

原创 ⑤【Shiro】SpringBoot整合Shiro,实现登录认证

SpringBoot整合Shiro,实现登录认证

2024-04-18 23:45:00 695

原创 ④【Shiro】Shiro框架进行敏感信息加密

实际系统开发中,一些敏感信息需要进行加密,比如说用户的密码。Shiro 内嵌很多常用的加密算法,比如 MD5 加密。Shiro 可以很简单的使用信息加密

2024-04-18 14:32:35 415

原创 Linux安装部署Tomcat

linux安装部署tomcat教程

2024-04-16 17:35:53 436

原创 【Git】 - 版本控制

1. 保存、管理文件;2. 提供客户端工具进行访问;3. 提供不同版本文件的比对功能;4. 多人协作开发5. 集中式版本控制6. 分布式版本控制

2024-03-22 16:12:40 1172 1

原创 ③【Shiro】角色(权限组)、权限授权

Shiro权限授权

2024-03-20 12:21:29 797

原创 ②【Shiro】Shiro登录认证、自定义Realm

- **在Shiro框架中,用户需要提供`principals(身份)`和`credentials(证明)`给shiro,从而shiro对用户进行身份验证。**- **`principals(身份)`:是主体的标识属性,可以是任何属性,如:用户名、email等,保证唯一即可。一份主体可以有多个`principals(身份)`,但是只有一个`Primary principals`,一般是用户名/邮箱/手机号。**- **`credentials(证明)`:证明/凭证,是只有主体知道的安全值,如:密码、数字

2024-03-17 09:56:28 1008 24

原创 ①【Shiro】什么是Shiro安全框架?

Apache Shiro 是一个功能强大且灵活的开源安全框架,可以干净地处理身份验证,授权,企业会话 Management 和加密。

2024-03-16 16:35:19 687

原创 【JWT】入门 *JWT*,并封装一个实用的 *JWT* 工具类

JSON Web 令牌 (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,**用于将信息作为 JSON 对象在各方之间安全地传输** 。此信息可以被验证和信任,因为它是经过数字签名的。JWT 可以使用密钥(使用 **HMAC** 算法)或使用 **RSA** 或 **ECDSA** 的公钥/私钥对进行签名。

2024-03-16 01:44:55 1478

原创 ③【Docker】Docker部署Nginx

使用docker容器拉取nginx镜像,进行安装运行...

2024-03-14 20:32:52 553

原创 ②【Docker】安装Docker可视化工具——Portainer

安装Docker可视化工具——Portainer

2024-03-14 20:30:35 1081

原创 ①【Docker】Linux安装Docker容器教程

docker安装使用

2024-03-14 18:26:24 1019 2

原创 ③【MyBatis】操作数据库,进行增删改查,MyBatisX插件简化开发

使用MyBatis操作数据库数据增删改查的练习

2024-03-13 15:28:21 787

原创 ②【MyBatis】 Mapper代理方式开发( 常用 )

`步骤`:1. 定义Mapper接口(与SQL映射文件同名),并将Mapper接口与SQL映射文件放置在同一目录下;2. 将SQL映射文件的`namespace`属性设置为Mapper接口全限定名(如"com.java.mapper.UserMapper");3. 在Mapper接口中定义方法,**方法名**就是SQL映射文件中sql语句的`id`,并保持方法返回值类型与SQL映射文件一致;4. 编码(Coding):使用`SqlSession对象`的`getMapper方法`获取Mapper接口

2024-03-13 15:11:42 1136

原创 ① MyBatis使用入门,解决IDEA中Mapper映射文件警告。

基本使用,快速入门MyBatis

2024-03-12 18:34:11 967 1

原创 【Java】基础算法练习题

刷不就完了!

2024-03-02 13:10:47 900

原创 ④数据查询时,解决Redis缓存穿透的问题...

**缓存命中和穿透:** 正常情况下,当一个请求到达时,系统首先检查缓存中是否存在相应的数据。如果缓存中有数据(缓存命中),系统会直接返回该数据,避免了对数据库的访问,提高了响应速度。然而,如果缓存中不存在需要的数据,而且请求频繁,就可能导致缓存穿透问题。

2024-02-04 16:07:58 654 1

原创 WebSocket 双向通信

WebSocket是一种**全双工通信协议,适用于实时双向通信。**

2024-01-20 10:26:47 1590 15

原创 ③使用Redis缓存,并增强数据一致性。

缓存数据存储于代码中,而代码运行在内存中,内存的读写性能远高于磁盘,缓存可以大大降低用户访问并发量带来的服务器读写压力。

2024-01-08 10:39:37 1648 16

原创 【Java】接口和抽象类有什么共同点和区别?

常见面试题:比较一下接口和抽象类的异同?

2024-01-03 20:12:47 1755 16

原创 ⑩①【缓存】Redis持久化 RDB + AOF

RDB全称 Redis Database Backup file,即Redis数据备份文件,也被叫做**Redis数据快照。** AOF全称 Append Only File,即**追加文件。** Redis处理的**每一个写命令都会记录在AOF文件中** ,也可以将其看作日志文件。

2023-12-31 17:35:18 2139 63

原创 ②手机验证码登录功能:Redis实现session共享

- 当注册完成后,用户输入手机号与验证码点击登录,后端会校验用户提交的手机号和验证码,是否一致;- 如果一致,则根据手机号查询用户信息,不存在则新建,最后将用户数据保存到redis,并且生成token作为redis的key;- 当我们校验用户是否登录时,会去携带着token进行访问,从redis中取出token对应的value,判断是否存在这个数据,如果没有则拦截,如果存在则将其保存到threadLocal中,并且放行。

2023-12-28 12:35:02 1120 60

原创 【期末考试】计算机网络、网络及其计算 考试重点

计算机网络、网络及其计算【期末考试重点】

2023-12-24 22:14:23 4515 66

原创 ①归并排序、快速排序 、堆排序、计数排序[算法、代码模板、面试题]

归并排序是一种分治法(Divide and Conquer)的经典排序算法,它的基本思想是将原始数组划分成较小的数组,然后递归地对这些小数组进行排序,最后再将排好序的小数组合并成一个整体有序的数组。下面是**归并排序的详细过程: ...

2023-12-05 16:04:43 1070 22

原创 ①实现基于session的登录流程:发送验证码、登录注册、校验登陆状态

- `发送验证码`:- - 用户输入手机号,点击发送按钮进行手机号提交,程序会校验手机号是否合法,不合法时要求用户重新输入手机号,合法则在后台生成对应的验证码并保存至`session`,之后通过短信方式将验证码发送给用户。- `注册、登录`:- - 用户将手机号、验证码输入,后台从session中获取验证码与用户输入的验证码进行比对校验,如果不一致则无法通过校验,提示用户验证码错误,验证码一直则后台根据手机号查询用户,若用户不存在,则为用户创建账号信息并保存至数据库中,最后无论用户是否存在,都将用户的

2023-11-28 14:17:05 1875 34

原创 Spring Cache框架,实现了基于注解的缓存功能。

Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过`CacheManager`接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。

2023-11-25 23:55:47 666 3

原创 ②⑩② 【读写分离】Sharding - JDBC 实现 MySQL读写分离[SpringBoot框架]

Sharding-JDBC是一个开源的Java中间件,它为关系型数据库提供了分片(sharding)功能。分片是一种数据库架构模式,通过将数据分散存储在多个数据库中,提高了系统的扩展性和性能。Sharding-JDBC致力于简化分片数据库的使用和管理,它提供了一种透明的方式让应用程序能够无感知地使用分片数据库。`适用性`:- 适用于任何基于JDBC的ORM框架,如: JPA,Hibernate, Mybatis,SpringJDBC,Template或直接使用JDBC。- 支持任何第三方的数

2023-11-25 23:48:44 250

原创 ②⑩① 【MySQL】什么是分库分表?拆分策略有什么?什么是MyCat?

- 🚀垂直拆分- - 垂直分库 - 垂直分表- 🚀水平拆分- - 水平分库 - 水平分表

2023-11-25 23:42:24 551

原创 ⑩【Redis Java客户端】:Jedis、SpringDataRedis、StringRedisTemplate

Redis的Java客户端使用:Jedis、SpringDataRedis、

2023-11-25 23:27:44 1509 43

原创 ⑨【Stream】Redis流是什么?怎么用?: Stream [使用手册]

- Redis Steam 是redis 5.0 新增的一种数据结构- Redis Stram**可以用来实现消息队列**,它支持消息的持久化、支持自动生成全局唯一ID、支持ack确认消息的模式、支持消费组模式等,让消息队列更加稳定和可靠

2023-11-25 23:15:04 739

原创 ⑧【HyperLoglog】Redis数据类型:HyperLoglog [使用手册]

- HyperLoglog 是用来做**基数统计**的算法,优点在于当输入元素的数量或者体积非常大时,计算基数所需的空间总是固定且很小的。- 基数统计:用于统计一个集合中不重复的元素个数,就是对集合**去重复**后剩余元素的计算- Redis中每个HyperLoglog键只需要花费12KB内存,就可以计算接近2^64个不同元素的基数。- 但,HyperLoglog只会根据输入的元素来计算基数,**无法存储输入元素本身**,所以无法像集合那样返回输入的各个元素。

2023-11-25 23:04:51 407

原创 ⑦【Redis GEO 】Redis常用数据类型:GEO [使用手册]

- Redis GEO主要用于存储地理位置信息,并对存储的选项进行操作:- 1.添加地理位置的坐标- 2.获取地理位置的坐标- 3.计算两个地理位置间的距离- 4.根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。

2023-11-25 23:00:24 763

原创 ⑥【bitmap 】Redis数据类型: bitmap [使用手册]

- 用String类型作为底层数据结构实现的一种统计二值状态(0,1)的数据类型- 位图本质是数组,它是基于String数据类型的按位的操作。该数组由多个二进制位组成,每个二进制位都对应一个偏移量(我们称之为一个索引)。- Bitmap支持的最大位数是2^32位,它可以极大的节约存储空间,使用512M内存就可以存储多达42.9亿的字节信息(2^32 = 4294967296)

2023-11-25 22:55:41 439

原创 ⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]

- Zset和set一样都是String类型的不可重复集合,但是有序的。- ZSet集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)- 每个元素都会关联一个double类型的分数,以此为**集合成员进行由小到大的排序** 。

2023-11-23 17:00:00 684 3

springboot框架整合SSM案例-图书管理系统 源码分享

SpringBoot整合Spring+SpringMVC+MyBatisPlus案例:图书管理系统 内容包含 : - 实体类开发 —— 使用Lombok快速制作实体类(`Lombok`:一个Java类库,提供了一组注解,简化了POJO实体类开发) - Dao开发 —— 整合MyBatisPlus,制作数据层测试类 - Service开发 —— 整合MyBatisPlus进行增量开发,制作业务层测试类(Service接口名称定义为业务名称,与数据层接口名称进行区分) - Controller开发 —— 基于Restful开发,使用PostMan测试接口功能 - Controller开发 —— 前后端开发协议制作 - 页面开发 —— 基于VUE+ElementUI制作,前后端联调,页面数据处理,页面消息处理 - - 列表、新增、修改、删除、分页、查询 - 项目异常处理 - 按条件查询 —— 页面功能调整、Controller修正功能、Service修正功能 完整源码分享,喜欢的可以酌情下载,感谢下载者的支持!

2023-03-29

ViewBaseServlet代码模板,使用了thymeleaf视图模板技术,是处理视图模板文件的Servlet基类

处理视图模板文件的servlet基类; 继承:HttpServlet类 重写了init()方法: 1.获取ServletContext对象 2.创建Thymeleaf解析器对象 3.给解析器对象设置参数(前缀、后缀、缓存过期时间、是否缓存、编码方式) 4.创建模板引擎对象 5.给模板引擎对象设置模板解析器 包含processTemplate(templateName, request,response)方法: 1.设置响应体内容类型和字符集 2.创建WebContext对象 3.处理模板数据 部分代码: private TemplateEngine templateEngine; @Override public void init() throws ServletException { // 1.获取ServletContext对象 ServletContext servletContext = this.getServletContext(); // 2.创建Thymeleaf解析器 }

2022-12-29

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

TA关注的人

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