
SpringBoot
文章平均质量分 82
Spring Boot是一个基于Spring框架的快速开发应用程序的工具,它简化了Spring应用程序的配置和部署过程。使用Spring Boot,您可以更快地构建和部署应用程序,因为它提供了一种快速和方便的方式来设置和运行应用程序。
Spring Boot提供了许多功能,包括自动配置、嵌入式We
Dddddduo_
江苏省高中数学竞赛三等奖 阿里云认证专家博主 字节跳动青训营后端优秀奖
展开
-
深入理解 Java 静态代理 代码实现
在不改变原有方法的代码上 实现一个代理类。代理可以理解成是对一个方法的加强。首先我们要理解什么是代理。同时重写接口里面的方法。原创 2025-04-01 01:06:36 · 90 阅读 · 0 评论 -
BeanDefinition和Beanfactory实现一个简单的bean容器
Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种用于承载对象的容器,你可以配置你的每个 Bean 对象是如何被创建的,这些 Bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例,以及它们是如何相互关联构建和使用的。如果一个 Bean 对象交给 Spring 容器管理,那么这个 Bean 对象就应该以类似零件的方式被拆解后存放到 Bean 的定义中,这样相当于一种把对象解耦的操作,可以由 Spring 更加容易的管理,就像处理循环依赖等操作。原创 2025-03-30 23:39:16 · 646 阅读 · 0 评论 -
JVM Java类加载 isInstance instanceof 的区别
instanceof关键字编译时需明确ClassA的类名(必须存在),否则编译失败。示例// trueClass类的方法支持运行时动态确定类型(通过反射或变量传递类名)。示例// true差异维度instanceof本质关键字Class类方法类型检查时机编译时静态运行时动态动态类型支持不支持支持(反射、泛型)代码灵活性固定类名类名可变量传递或反射获取通过合理选择两者,可以兼顾代码的简洁性与动态灵活性。原创 2025-03-29 12:01:44 · 651 阅读 · 0 评论 -
使用事件监听器来处理并发环境中RabbitMQ的同步响应问题
@RabbitListener 是 Spring AMQP 提供的核心注解,用于简化 RabbitMQ 消息监听器的创建。以下是对 @RabbitListener(queues = "balloonWords.queue") 的详细解析:一、基础功能队列监听通过 queues 属性指定监听的队列名称(如 "balloonWords.queue" )。若队列不存在,需配合 @Queue 注解声明队列:@RabbitListener(queuesToDeclare = @Queue("balloo原创 2025-03-25 20:10:09 · 548 阅读 · 0 评论 -
Java并发编程 什么是分布式锁 跟其他的锁有什么区别 底层原理 实战讲解
分布式锁是一种在分布式系统中协调多进程/节点对共享资源进行互斥访问的机制。其核心作用是确保同一时间只有一个进程能够操作共享资源,解决分布式环境下的并发冲突问题(如超卖、数据覆盖等)。分布式锁通过外部存储系统实现跨进程资源互斥,需权衡性能、一致性和复杂度。Redis适合高频低一致性要求的场景,ZooKeeper适用于强一致性但低并发场景,而数据库锁仅作为简单场景的备选。实际选型需结合业务需求和容错能力(如Redisson整合Redis的方案较优)。原创 2025-03-25 18:46:59 · 666 阅读 · 0 评论 -
JavaEE企业级开发 延迟双删+版本号机制(乐观锁) 事务保证redis和mysql的数据一致性 示例
在起草这篇博客之前我做了点功课这边我写的是一个示例代码数据层都写成了 mock 的形式(来源于 JUnit5)// Dduo// 数据服务类// 模拟缓存(实际使用Redis等实现)// 延迟双删线程池// 模拟数据库,使用一个 Map 来存储数据记录// 数据记录类,包含数据的基本信息和版本号return id;// 模拟从数据库获取数据// 模拟数据库更新操作,更新数据并更新版本号// 检查版本号是否匹配。原创 2025-03-25 18:24:00 · 1019 阅读 · 0 评论 -
Springboot应用配置github自动流部署 深入理解CI/CD:构建、测试和部署的自动化完整流程
持续集成通过自动化的流程和工具,提高软件开发的效率、质量和交付速度。持续集成是开发团队通过将代码的不同部分集成到共享存储库中,并频繁地进行构建和测试,以确保代码的一致性和稳定性。持续交付持续交付建立在持续集成的基础上,通过自动化的流程确保软件可以随时随地进行部署。原创 2025-03-25 15:08:05 · 1078 阅读 · 0 评论 -
Spring设计模式 八股速记 高层模块底层模块 依赖倒置原则 开闭原则 接口隔离原则
基本定义高层模块不应依赖低层模块,两者都应依赖抽象(接口或抽象类)。抽象不应依赖细节,而细节(具体实现类)应依赖抽象。核心目标通过面向接口编程,打破传统“高层调用低层”的依赖关系,实现模块间解耦。例如:传统依赖:司机类直接调用奔驰车类的方法,导致更换车型需修改司机代码。倒置后:司机依赖“车辆接口”,奔驰车、宝马车均实现该接口,实现灵活扩展。基本定义高层模块不应依赖低层模块,两者都应依赖抽象(接口或抽象类)。抽象不应依赖细节,而细节(具体实现类)应依赖抽象。核心目标。原创 2025-03-17 07:37:01 · 884 阅读 · 0 评论 -
浅谈Mysql数据库事务操作 用mybatis操作mysql事务 再在Springboot中使用Spring事务控制mysql事务回滚
现在是有三张表第一张表为 t_sentence 表 列有 id content create_time from hot other1 other2 other2第二张表为 t_tags 表 列有 id name from hot other1 other2 other3 create_time第三张表为t_sentence表和t_tags 表的中间表 t_sentence_tag 列有 id sentence_id tag_id create_time现在我要往第一张表里插入数据 现有数据原创 2025-03-13 21:15:10 · 649 阅读 · 0 评论 -
浅谈RabbitMQ Springboot3后终止自动注入服务 需要手写Bean并实例化bean(SpringBoot启动前) Could not autowire. No beans of ‘Rab
报错 Could not autowire. No beans of 'RabbitAdmin' type found.意思就是这个模版在高版本是需要自己去手写。手写 注册 Bean 注入。Spring 启动流程。原创 2025-03-09 16:29:08 · 107 阅读 · 0 评论 -
快速上手 代码详解 RabbitMQ简单实战 Spring框架下实现解耦 改造传统服务端代码
它就像是一个“调度员”,将接收到的请求进行初步处理后,调用 Service 层的相应方法来完成具体的业务逻辑。这一层是业务逻辑的核心处理层,负责对 Controller 层传递过来的请求进行具体的业务处理。它会调用 Dao 层的方法来获取所需的数据,并对数据进行必要的处理和转换。在这种方案中,Service 层不再直接将处理后的数据返回给 Controller 层,而是将数据发布到消息队列中,Controller 层再从消息队列中获取数据。监听到消息队列中有新的数据时,会将数据赋值给。原创 2025-03-07 16:42:25 · 581 阅读 · 0 评论 -
概念|RabbitMQ 消息生命周期 待消费的消息和待应答的消息有什么区别
以上流程体现了RabbitMQ在消息可靠性、灵活路由和异常处理上的核心设计,实际应用中需根据业务场景组合配置参数。如需进一步了解 RabbitMQ 消息生命周期,可参考 关于消费模式的解析或 中的应答机制实验代码。若未持久化且服务崩溃可能丢失。已分配给消费者但未确认(队列中未分配给消费者(消费者未确认且连接中断。可能因队列未持久化丢失。原创 2025-03-07 16:20:42 · 809 阅读 · 0 评论 -
RabbitMQ控制台详解 中文讲解 软件工业化生产 rabbitmq-management 索引速查
rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。web页面包括Overview(概述)Connections(连接)Channels(通道)Exchanges(交换器)Queues(队列)Admin(用户管理)。转载 2025-03-07 16:14:23 · 23 阅读 · 0 评论 -
Java类加载机制 双亲委派机制 八股速记版
双亲委派机制通过层级化加载体系,确保了Java核心类库的安全性和系统稳定性,同时通过破坏委派的灵活机制,为复杂场景提供了扩展可能性。理解这一机制对诊断类冲突、版本兼容等问题具有重要意义。二、双亲委派机制详解。三、类加载器关键特性。原创 2025-03-02 23:23:17 · 434 阅读 · 0 评论 -
谈谈单例模式中通过Htools包的SpringUtil.getBean获取Bean的好处
这种模式在中间件开发、基础框架开发中较为常见,体现了对Spring容器的主动控制,而非被动依赖。的场景中非常实用,是解决框架整合时序问题的经典方案。由于单例的初始化早于 Spring 容器的初始化,,后续使用时必然抛出。原创 2025-03-02 23:20:51 · 1017 阅读 · 0 评论 -
Spring单例模式 Spring 中的单例 饿汉式加载 懒汉式加载
单例模式(Singleton Pattern)是一种,其核心目标是确保一个类,并提供全局唯一的访问点。它常用于资源控制(如数据库连接池、线程池)、配置管理、日志对象等场景。new。原创 2025-03-02 23:18:43 · 1023 阅读 · 0 评论 -
MyBatis-Plus 元对象处理器 @TableField注解 反射动态赋值 实现字段自动填充
对实体类的动态包装器,提供反射操作字段的能力(类似一个能透视对象内部结构的工具)填充策略枚举,包含 INSERT(插入时填充)、UPDATE(更新时填充)等。(避免每个插入操作都写 setCreateTime)(比如强制所有表统一使用同一时间生成规则)严格模式填充方法,确保字段存在且类型匹配。假设你每次保存订单时都要记录。(时间记录等通用操作集中管理)原创 2025-03-02 23:13:20 · 465 阅读 · 0 评论 -
Java Springboot单元测试 Mock测试 Mockito框架
Mockito测试主要通过模拟依赖对象、定义行为、验证交互来完成单元测试。首先,我要回顾一下用户提供的代码。这个测试类是用Mockito来测试OrderService的业务逻辑。测试类中有两个被@Mock注解的依赖对象:InventoryDao和PaymentGateway,以及一个被@InjectMocks注解的OrderService实例。测试方法shouldProcessValidOrder用来验证处理有效订单的情况。接下来,我需要逐步分解这个测试用例的每个部分,解释它们的作用。首先,@Mock和原创 2025-02-26 16:10:25 · 310 阅读 · 0 评论 -
后端 Java发送邮件 JavaMail 模版 20241128测试可用
【代码】后端 Java发送邮件 JavaMail 模版 20241128测试可用。原创 2024-11-28 18:20:07 · 55014 阅读 · 0 评论 -
Java8 CompletableFuture类 并发编程 异步操作 项目实操遇到的一个案例
CompletableFuture 是 Java 8 引入的一个强大的异步编程工具类,位于 java.util.concurrent 包中。在这个示例中,CompletableFuture.runAsync 方法启动了一个异步任务,主线程不会被阻塞,可以继续执行其他操作。这种方式常用于需要长时间运行的任务,如判题服务,以避免阻塞主线程,提高系统的响应速度和性能。所以这段代码的作用是将判题任务异步执行,不会阻塞主线程,从而提高系统的响应速度和性能。组合操作:可以将多个异步任务组合在一起,形成复杂的异步流程。原创 2024-11-22 13:33:44 · 55389 阅读 · 0 评论 -
Springboot拓展之整合邮件 JavaMail的使用与实操
这个依赖使我们去springboot的。这里面写了规范很多依赖的坐标可以直接导入 而不会出现版本冲突的问题第二步做配置我们要去邮箱客户端进行配置原创 2024-06-21 12:12:54 · 97019 阅读 · 0 评论 -
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
Cacheable是 Spring Framework 提供的一个注解,用于在方法执行前先检查缓存,如果缓存中已存在对应的值,则直接返回缓存中的值,而不执行该方法体。如果缓存中不存在对应的值,则执行方法体,并将方法的返回值存入缓存供下次使用。在 Spring Boot 中,@Cacheable注解通常与缓存管理器一起使用,可以轻松地在方法级别上实现缓存功能,避免不必要的重复计算或查询数据库操作,从而提高应用程序的性能和响应速度。原创 2024-06-16 10:35:21 · 97060 阅读 · 0 评论 -
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
当战斗开始,每一次挥动的动作仿佛舞蹈般流畅而有力,每一声兵器相击的撞击声都像是节奏的一部分。战斗的瞬间,心跳与每一个动作同步,身体仿佛融入了战场的氛围之中。每一个战术的执行都带来了接着配置数据库连接信息接下来用Mybatis-plus开发数据层接口开发业务层面向接口编程书写实现类在注入数据层接口的同时创建控制器controller层MVC类这样一个基本的框架就已经完成我们这时候到postman里发起请求 去进行一个查询挑战成功耗时4分49秒!原创 2024-06-15 20:06:06 · 96727 阅读 · 0 评论 -
后端开发中缓存的作用以及基于Spring框架演示实现缓存
现在我们使用的程序都是通过去数据库里拿数据然后展示的长期对数据库进行数据访问这样数据库的压力会越来越大数据库扛不住了创建了一个新的区域程序访问去缓存 缓存区数据库缓存里放数据。原创 2024-06-15 20:26:07 · 96783 阅读 · 0 评论 -
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
MongoDB是一个开源的面向文档的NoSQL数据库,它采用了分布式文件存储的数据结构,是当前非常流行的数据库之一。总结来说,MongoDB以其灵活的数据模型、高性能的查询能力、易于扩展和管理等特点,在Web应用开发、大数据分析等领域得到了广泛的应用和认可。原创 2024-06-15 13:53:14 · 96433 阅读 · 0 评论 -
非关系型数据库NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载百度网盘
是 Spring Framework 提供的用于操作 Redis 数据库的核心类之一。它是 Spring Data Redis 模块的一部分,通过提供高级的、线程安全的访问 Redis 数据库的方法,简化了与 Redis 的集成和操作。在把数据写入数据库的时候 已经把对象类型的数据进行了转码。我们写在数据库里面的是以字符串为数据类型的存储单元。和我们之前安装的redis不是一个redis。即在springboot里整合的redis。我们发现在idea里使用的redis。这样我们就能放入我们之前存入的数据。原创 2024-06-15 11:19:56 · 96636 阅读 · 0 评论 -
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
导入依赖 starter就使用了spring的自动装配功能。等到上线的时候直接换其他数据库如轻量级数据库MySQL。当我们导入JDBC starter 的依赖时。yml里面的datasource里面的配置。我们去掉Mybatis-plus的依赖后。我们回顾一下druid数据源的配置方式。格式二是在引入druid的依赖的基础上。调用jdbcTemplate里面的方法。我们的数据库也可以换其他的内嵌数据库。记得上线的时候一定要把H2数据库关掉。我们找到了H2数据库和他的配置文件。原创 2024-06-15 10:22:57 · 96652 阅读 · 0 评论 -
Spring运维之boo项目表现层测试匹配响应执行状态响应体JSON和响应头
表现层把good数据发送到/goods路径上去。匹配相应体是否和我们的预期结果一样。首先我们用lombok封装实体类。验证请求和预期值是否匹配。我们在页面中成功访问到。而且发送了虚拟的请求。我们接下来要进行验证。先去定义预期匹配结果。接下来我们要进行测试。原创 2024-06-09 18:15:23 · 96083 阅读 · 0 评论 -
浅谈后端boot框架整合第三方技术JUnit MyBatis Druid整体思想
不要单单学习指定技术与springboot整合的方式学习目标的是整合整体的技术的思路拿到任何一个第三方技术后我们在springboot中如何操作这是真正我们应该学习的东西以后能整合任意技术。原创 2024-05-22 10:53:45 · 103856 阅读 · 0 评论 -
后端企业级开发之yaml数据序列化格式文件详解2024
yaml 是一种数据序列化的格式容易阅读 容易与脚本语言交互 以数据为核心 重数据轻格式我们要知道他怎么书写大小写敏感属性层级关系使用多行描述 每行结尾使用冒号结束使用缩进表示层级关系同层级左侧对其 只运行使用空格属性前面添加空格#表示注释同样名称的属性只能出现一次核心规则 数据前面要加空格隔开。原创 2024-05-21 18:34:43 · 103851 阅读 · 0 评论 -
浅谈后端整合Springboot框架后操作基础配置
现在不访问端口8080可以吗我们在默认启动的时候访问的是端口号8080基于属性配置的现在boot整合导致Tomcat服务器的配置文件没了我们怎么去修改Tomcat服务器的配置信息呢配置文件中的配置信息是很多很多的...原创 2024-05-20 11:11:55 · 103030 阅读 · 0 评论 -
Springboot mvc开发之Rest风格及RESTful简化开发案例
这个内容对以后开发中很重要吧这个知识点有点欠缺我们这边是一个知识加油站是隶属于springboot mvc的一个小的细节互联网上。原创 2024-05-19 16:34:05 · 103521 阅读 · 0 评论 -
浅谈小白对于Javaweb开发整合框架Springboot入门导学
整合多种技术:Spring Boot可以与各种技术栈集成,包括数据库、消息队列、Web框架、安全性等,并提供了许多插件和开箱即用的功能,使得开发人员可以更容易地将这些技术整合到他们的应用程序中。总之,Spring Boot的重要性在于它提供了一种快速、简单且可维护的开发方式,可以帮助开发人员更加专注于业务逻辑的实现,并提高应用程序的性能和可靠性。社区支持:Spring Boot拥有庞大的社区,提供了许多有用的资源,如文档、示例代码、教程和支持论坛等,使得开发人员可以更容易地学习和使用它。原创 2024-05-19 08:16:36 · 104652 阅读 · 0 评论 -
Springboot入门基础知识详解 parent starter 引导类 辅助功能
这样可以确保所有的模块使用相同的依赖项和插件版本,从而避免不同模块之间的版本冲突问题。标签中就不需要再指定Spring Boot和Spring框架的版本号了,只需要直接引用它们的依赖项即可。标签是Spring Boot项目中的一个重要概念,它可以帮助项目管理者更好地管理依赖项和插件版本,提高项目的可靠性和可维护性。标签是Spring Boot项目中的一个特殊标签,它通常用于管理Spring Boot应用程序的依赖项和插件版本。标签下可以指定Spring Boot的版本号和Spring框架的版本号。原创 2024-05-19 11:03:54 · 103631 阅读 · 0 评论