自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通过 Executors 创建线程池

Executors工厂类:是创建常见线程池的简便方法,包括和等。:提供了更灵活的配置,允许你直接指定核心线程数、最大线程数、任务队列等参数,适用于需要定制化线程池的场景。通过线程池,你可以高效地管理线程,避免频繁的线程创建和销毁,提高应用程序的性能和响应速度。

2025-03-21 23:29:39 393

原创 枚举的定义及其使用

枚举用于定义一组常量。你可以通过enum关键字来定义一个枚举类型。每个枚举常量可以作为该枚举类型的一个实例。在这个例子中,Day枚举包含了一周的七天常量。每个常量都隐式是Day类型的一个实例。定义枚举类型:使用enum关键字可以定义枚举类型,表示固定的一组常量。字段和方法:枚举类型可以有字段和方法,用来处理与枚举常量相关的逻辑。内置方法values()方法返回所有枚举常量,valueOf()方法根据名称返回对应常量,ordinal()返回常量的序号。类型安全。

2025-03-21 23:28:54 409

原创 Lambda 表达式的语法:

在 Java 中,(也称为匿名方法)是一种简洁的表示方法接口(Functional Interface)实现的方式。它是 Java 8 引入的特性,目的是提高代码的简洁性和可读性。

2025-03-19 23:19:25 763

原创 过滤器(Filter)与拦截器(Interceptor)

过滤器主要用于HTTP请求和响应的前后处理,适合全局处理,如日志记录、认证等。它基于Servlet API并独立于应用框架。拦截器是框架提供的功能(如Spring MVC),用于拦截和增强业务逻辑,适合控制器方法的前置处理和后置处理。根据应用需求的不同,可以选择使用过滤器或拦截器。过滤器通常用于通用的请求/响应处理,而拦截器更适合用于框架内部的业务逻辑增强。

2025-03-13 23:03:48 586

原创 SpringBoot自动装配的工作原理

假设我们要创建一个自动装配的组件,用于设置一个,它的实现可以在类路径下自动装配。import org} }} }} }@Bean在上面的代码中,我们定义了一个的 Bean。这个配置类是一个自动装配的配置类,标记为,并提供了一个方法来创建实例。启用自动装配。根据项目的依赖(如类路径中的库)和条件(如注解)决定装配的 Bean。通过 @Configuration注解定义自动装配的配置类。

2025-03-13 23:03:17 1080

原创 Spring MVC 执行流程概述

客户端发起请求:客户端(如浏览器)向服务器发送一个HTTP请求。DispatcherServlet 接收请求:Spring MVC的前端控制器接收到客户端的请求,并将其转发给适当的处理器。HandlerMapping 查找处理器通过查找与请求URL匹配的处理器(Controller)。Controller 处理请求:找到对应的处理器(Controller)后,将请求交给它处理。返回模型和视图:Controller处理完请求后,会返回一个包含模型数据(Model)和视图(View)的对象(通常是。

2025-03-13 23:02:44 825

原创 AOP 的常见用途

AOP 通过将横切关注点与核心业务逻辑分离,提高了代码的可维护性、可复用性和可扩展性。日志记录事务管理性能监控安全控制缓存管理异常处理资源管理通过 AOP,开发者可以将这些功能模块化并复用,避免了在多个地方重复编写相同的代码,从而提高了系统的可维护性和开发效率。

2025-03-13 21:49:46 498

原创 处理Java中的异常

有时,你可能需要创建自定义异常类,继承。

2025-03-12 23:56:14 909

原创 try catch的使用

try-catch用于捕获和处理程序中的异常,防止程序崩溃。使用多个catch可以捕获不同类型的异常。finally块总会执行,通常用于资源清理。JDK 7 引入了多异常捕获的简化语法,可以在一个catch块中处理多个异常类型。可以通过throw抛出异常,也可以自定义异常类。通过合理的使用try-catch,你能够提高程序的健壮性,并更好地处理错误情况。

2025-03-12 23:55:15 391

原创 AOP的使用

使用。

2025-03-12 23:54:35 580

原创 三种定时任务:

定时器是Java内置的定时任务工具类,可以在指定的时间间隔内执行任务。Timer中的任务是在Timer的任务线程中按照一定的时间间隔执行的,而则是实际定时执行的任务。Timer和TimerTask都是线程安全的,可以被多个线程同时访问。常见的使用情况是:通过定时器进行重复执行周期性任务的情况,可以按照一定的延迟时间再次执行任务。

2024-04-13 12:32:27 302

原创 Redis限流插件

同时对 redis.log 授权。

2024-04-13 12:29:57 453

原创 Redis哨兵模式

先创建 redis_sentinel文件夹在 redis_sentinel文件夹 创建 26379 26380 26381在以上conf文件上传。

2024-04-13 12:25:19 441

原创 Redis搭建主从

【代码】Redis搭建主从。

2024-04-13 12:19:19 348

原创 布隆过滤器的使用

相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数(O(k))。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。k和m相同,使用同一组散列函数的两个布隆过滤器的交并运算可以使用位操作进行。k和m相同,使用同一组散列函数的两个布隆过滤器的交并运算可以使用位操作进行。进入解压好的文件目录,输入。

2024-04-13 11:36:54 359

原创 mysql搭建主从

重复创建 mysql_3310 的步骤。重置slave: replaylog。在修改容器的配置文件之后;不然会导致对配置文件的修改。重新配置 change to。

2024-04-13 11:27:05 1061

原创 Docker 安装rabbitMQ

将rabbitmq_delayed_message_exchange-3.9.0.ez拷贝到rabbitmq容器中的 plugins下。进入rabbitmq容器;启动rabbitmq_delayed_message_exchange-3.9.0.ez插件\。将rabbitmq_delayed_message_exchange-3.9.0.ez 插件上传进去。**注意:**192.168.62.137 与 15672 之间的。进入容器中的 /etc/rabbitmq/conf.d。

2024-04-13 11:08:27 452

原创 虚拟机安装及拉取阿里云镜像

接下来就可以使用 **docker search ** 后 接镜像名;查询镜像(以mysql为例)从网络获取docker镜像太慢,设置阿里云的镜像库。如果在镜像名后没有加版本号;创建自定义网络(network)安装finalShell。检查docker 版本号。安装yum-utils。先查询当前已经有的网络。安装最新docker。

2024-04-13 10:41:23 915

原创 你真的懂@Bean注解吗?

注解告诉 Spring 容器,它所标注的方法将用于实例化、配置和初始化一个对象,并将该对象注册为 Spring 应用上下文中的一个 Bean。注解是 Spring 框架中非常重要的一个注解,它允许开发人员灵活地定义和管理 Bean 对象,提高了 Spring 应用的灵活性和可维护性。注解通常用于配置类中的方法,用于指示该方法将返回一个由 Spring 管理的 Bean 对象。注解,可以将该方法返回的对象注册为 Spring 容器中的一个 Bean。接口的实现类的实例,并将其注册为一个 Bean。

2024-04-11 18:26:39 442

原创 怎么创建线程池?

线程池(Thread Pool)是一种管理和重用线程的机制,用于执行多个并发任务。在 Java 中,线程池是通过包提供的接口和类来实现的。

2024-04-08 15:27:12 753

原创 怎么使用jwt,token以及redis进行续期?

如果续期,则生成一个新的 JWT,更新 Redis 中的相关信息,并将新的 JWT 返回给客户端。方法接受一个 JWT,并返回一个布尔值,指示该 JWT 是否有效。如果 JWT 有效,则返回。如果 JWT 即将过期,服务器可以发出一个新的 JWT,并更新 Redis 中的对应信息。客户端收到新的 JWT 后,将其替换掉旧的 JWT,并更新本地存储中的 Token。方法用新的 JWT 替换旧的 JWT,并更新本地存储中的 Token。服务器收到请求后,验证 JWT 的签名和有效期等信息,以确认其有效性。

2024-04-07 11:55:52 863

原创 MySQL 中,常见的 JOIN 查询语句

RIGHT JOIN 返回右表中的所有行,以及左表中满足连接条件的行。**如果左表中没有匹配的行,则会在结果集中显示 NULL 值。,特别是当两个表的行数很大时。因此,在使用CROSS JOIN时需要谨慎,确保它符合实际需求并且不会导致性能问题。LEFT JOIN 返回左表中的所有行,以及右表中满足连接条件的行。INNER JOIN 返回两个表中符合连接条件的行。虽然CROSS JOIN在某些情况下非常有用,但它也。FULL JOIN 返回两个表中所有的行,

2024-04-02 17:24:00 519 1

原创 几种储存数据的方式

数组是一种最基本的数据结构,用于存储固定大小的相同类型元素的连续内存空间。数组具有固定长度,一旦创建后长度不能更改。在声明数组后,需要使用new关键字来分配数组的内存空间,并指定数组的大小。:集合是 Java 中用于存储和操作一组对象的容器。Java 提供了一系列集合类,包括 List、Set、Queue 和 Map 等。常见的集合类有 ArrayList、LinkedList、HashSet、TreeSet、HashMap 等。在声明集合后,可以使用add方法向集合中添加元素,使用remove。

2024-04-01 21:23:19 871

原创 在Java项目中,日志的作用

【代码】在Java项目中,日志的作用。

2024-04-01 15:45:44 799

原创 rabbitMQ实战应用

在这个示例中,我们创建了两个消费者,并且每个消费者会从队列中接收请求消息,并模拟处理请求的过程。:在Java项目中,可以将一些耗时的任务(如文件处理、邮件发送等)放入消息队列中,由后台的消费者异步地处理这些任务,提高系统的吞吐量和响应速度。,将日志消息发送到RabbitMQ队列,然后有一个或多个日志消费者从队列中接收日志消息并进行相应的分析和处理。数据消费者可以从这个队列中接收实时数据并进行相应的处理。创建一个简单的生产者和消费者,它们通过RabbitMQ进行消息的发送和接收,实现了微服务间的通信。

2024-04-01 11:10:05 1126

原创 如何保证MySQL与redis中数据保持一致?

3:定义一个表示更新的类,比如**UserUpdateEvent **

2024-03-31 22:05:38 557

原创 用aop实现登陆日志、和操作日志持久化

通过 AOP,我们可以将日志记录这类 **横切关注点(cross-cutting concerns)**从业务逻辑中分离出来,实现更好的代码结构和可维护性。下面是一个简单的示例代码,演示如何使用 AOP 在登录和操作时记录日志并将日志持久化到数据库中。编写AOP切面,定义切点和通知,用于捕获登录和操作的相关行为,并在切点处插入通知以实现日志记录。在Spring配置文件中配置AOP,指定切面和通知的织入方式。编写持久化层的代码,负责将日志数据存储到数据库中。在 Java 中,可以使用。在以上代码中,使用了。

2024-03-29 21:38:14 1081

原创 使用公平锁并设置默认的Redis等待时间来保证线程的执行顺序

公平锁的优点在于能够确保资源的公平分配,避免饥饿现象的发生,但也可能会降低性能,因为每次都要考虑所有等待线程的顺序。非公平锁则更加灵活,可能会出现新请求的线程直接获取到锁资源的情况,从而提高了程序的整体吞吐量。的构造函数可以指定创建公平锁还是非公平锁,默认情况下是非公平锁。具体来说,当使用公平锁时,线程会按照其请求锁的顺序来获取锁,而不会插队其他线程直接获取锁资源。在公平锁中,当有多个线程同时请求获取锁资源时,锁资源会按照线程请求的先后顺序依次分配,确保先到先得的原则。在上面的示例中,通过使用。

2024-03-29 20:51:27 601

原创 用aop实现登陆日志、和操作日志持久化

在 Java 中,可以使用 **AOP(Aspect-Oriented Programming)**来实现登录日志和操作日志的持久化功能。通过 AOP,我们可以将日志记录这类 **横切关注点(cross-cutting concerns)**从业务逻辑中分离出来,实现更好的代码结构和可维护性。通过 AOP 的方式,我们实现了登录日志和操作日志的持久化功能,使得这部分代码与业务逻辑相分离,提高了代码的可维护性和扩展性。方法和其他操作方法,并在切面中记录日志,并通过。在以上示例中,我们定义了一个。

2024-03-29 20:45:11 1045

原创 用Redis+token实现接口幂等性

要使用 Redis 和 Token 实现接口幂等性,可以通过在每次请求时生成一个唯一的 Token,并将 Token 存储在 Redis 中,并设置相应的过期时间。在每次请求到达时,先检查 Redis 中是否存在该 Token,若存在则表示该请求已经处理过,否则处理该请求并将 Token 存入 Redis。换句话说,对于相同的输入参数,在相同的条件下,无论调用多少次,接口的副作用(如数据库修改、资源状态改变等)只会发生一次,即使接口被多次调用也不会产生额外的影响。接口幂等性是指无论对。

2024-03-29 11:29:18 1861 1

原创 设计模式之单例模式

饿汉模式保证了在多线程环境下也能保持单例的唯一性,因为在类加载时就创建了单例实例。但需要注意的是,由于单例实例在类加载时就被创建,可能会导致资源的浪费,特别是在单例实例较大或者初始化耗时较长的情况下。饿汉模式是指在类加载时就创建对象实例的方式,无论后续是否会被使用到。需要注意的是,懒汉模式在多线程环境下可能存在线程安全性问题,可能会导致创建多个实例。在单例模式中,“懒汉”、"饿汉"和"枚举"是三种常见的实现方式,它们分别指代不同的单例对象创建策略。利用枚举类型的特性来实现单例,是一种简洁高效的实现方式。

2024-03-28 21:34:50 1065

原创 cookie,session,jwt,token

当用户访问应用程序时,服务器会为每个用户创建一个唯一的会话 ID,并将该会话 ID 存储在 Cookie 中,用于标识用户会话。Cookie 可以设置过期时间,可以是会话级别的临时 Cookie,也可以是长期保存在客户端的持久性 Cookie。服务器可以使用会话来存储用户的状态信息,以便在用户与服务器之间的多次请求之间保持用户状态。Cookie 是由服务器发送给客户端的小型数据片段,存储在客户端的浏览器中。用于在客户端保持用户的会话状态,可以包含诸如用户标识、会话 ID 等信息。

2024-03-28 12:12:03 840

原创 怎么使用Redis模拟Session

这只是一个简单的演示,实际生产环境中可能还需要处理会话过期、会话数据的序列化和反序列化等问题。: 可以为每个会话设置过期时间,确保会话数据不会永久存储在 Redis 中,可以使用 Redis 的 TTL(time to live)机制来实现。: 当用户登录或发起会话时,生成唯一的会话 ID,并将会话 ID 存储在用户的浏览器中,通常是通过设置 Cookie 或传递会话 ID 的方式。: 将用户的会话数据存储在 Redis 中,通常以键值对的形式存储,其中键为会话 ID,值为会话数据。

2024-03-27 21:47:17 610

原创 MySQL常见索引及其创建

字段是一个自增主键,同时也是表的主键索引。通过以上 SQL 语句,可以在已存在的表。在上面的示例中,通过将。

2024-03-27 21:42:22 471

原创 sso单点登录

SSO(Single Sign-On)单点登录是一种身份验证服务,允许用户使用一组凭据(如用户名和密码)登录多个相关但独立的软件系统或应用,而无需为每个应用都输入凭据。通过SSO单点登录,用户只需登录一次,即可在整个系统中访问多个应用,提供了更便捷的用户体验。通过这样的流程,Alice只需登录一次,就可以访问多个应用,实现了SSO单点登录的便利性和高效性。SSO单点登录原理是什么?

2024-03-27 21:36:40 241

原创 rabbitMQ的学习

RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。

2024-02-18 21:12:36 1062

原创 redis的学习

Redis是一个开源的内存数据结构存储系统,也被称为键值存储系统。它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,并提供了丰富的操作命令,可以对这些数据结构进行快速的读写操作。Redis具有高性能、高可用性和可扩展性的特点,常用于缓存、消息队列、实时统计等场景。特点:Redis 数据存储在内存中,因此具有非常高的读写性能。Redis 支持多种持久化方式,可以将数据保存到磁盘中,以防止数据丢失。

2024-02-18 19:05:34 964

原创 JVM虚拟机

JVM

2024-02-18 18:05:48 833

原创 mysql数据库

是一种的(RDBMS),它主要使用(结构化查询语言)作为与数据库交互的标准查询语言。

2024-02-18 16:05:34 1057

原创 SpringBoot+SpringCloud架构

springboot与springcloud架构;分布式,集群

2024-02-17 22:33:17 2397

空空如也

空空如也

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

TA关注的人

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