技术交流总结:分布式、数据库、Spring及SpringBoot核心知识点梳理

Java面试核心知识点与高效学习路径 Java作为企业级开发的主流语言,其技术体系涵盖JVM原理、并发编程、框架设计等核心领域。理解这些底层机制不仅能提升编码质量,更是应对技术面试的关键。以HashMap为例,从数据结构演进(JDK7数组链表到JDK8红黑树优化)到哈希碰撞解决方案(高位异或扰动函数),再到扩容机制(2次幂扩容规律),完整呈现了Java集合框架的设计哲学。Spring框架的三级缓存解决循环依赖问题,则体现了经典框架对对象生命周期的精细控制。掌握这些原理性知识,开发者能更从容应对分布式场景下的系统设计挑战,如秒杀系统中的Redis 阅读详情

技术交流总结:分布式、数据库、Spring及SpringBoot核心知识点梳理

本次技术交流围绕分布式系统实战、数据库事务、Spring核心特性及SpringBoot版本演进等核心话题展开,结合生产实际场景拆解技术原理、异常处理及最佳实践,兼顾理论本质与实战落地,以下是完整总结梳理。

一、分布式系统实战:Redis、消息中间件与数据一致性

1. Redis与数据库的数据一致性保障

在订单超时取消场景中,Redis主要承担“超时触发”的角色(类似定时器),而非数据存储的核心,数据库才是保障数据最终一致性的基准。具体实现逻辑为:订单创建时,Redis存储一个设定过期时间(如30分钟)的key,同时数据库记录“待支付”订单状态;当用户超时未支付,Redis过期通知触发取消订单接口,该接口会先查询数据库确认订单仍为“待支付”状态,仅在状态合法时,执行库存回滚和订单状态更新(改为“已取消”)。此外,定时扫库任务会以数据库状态为准,避免因Redis异常(如宕机)导致的误操作,进一步兜底数据一致性。

2. Redis与消息中间件的协同配合(保障最终一致性)

分布式场景中,Redis负责“超时触发”,消息中间件负责“异步通信”,数据库作为“数据基准”,三者协同实现数据最终一致,核心流程如下:

  1. 订单创建:Redis存储过期key(超时触发用),数据库记录“待支付”订单及本地消息表;

  2. 超时触发:Redis key过期后,触发取消流程,先校验数据库订单状态,确认合法后,更新订单状态为“已取消”,并在本地消息表插入“库存回滚”消息;

  3. 消息投递:定时任务将本地消息表中的消息发送至消息中间件,避免消息丢失;

  4. 消息消费:库存服务从中间件消费消息,消费前先校验自身数据库库存记录,避免重复回滚,执行库存加回操作后,向订单服务反馈结果;

  5. 异常兜底:若中间件消息丢失,定时任务重试发送;若库存服务处理失败,中间件重试消费,通过数据库状态校验和消息重试,确保数据最终一致。

3. 突发消息堆积的全维度解决方案(生产环境实战)

生产环境突发消息堆积时,核心原则是“不停机、保稳定、快处理、不引入新问题”,分“应急处理”和“事后优化”两步推进,全维度解决方案如下:

(1)应急处理(快速缓解堆积,保障系统稳定)
  1. 扩容消费能力:临时启动更多消费者实例,或将消息路由至备用消费组,利用闲置资源分担处理压力;

  2. 限流生产端:暂停非核心业务的消息生产,优先保障核心消息(如订单、支付相关)的处理,避免堆积进一步加剧;

  3. 优化消费端瓶颈:排查消费端慢查询、下游服务超时等问题,临时降级消费逻辑(仅处理关键步骤,非关键步骤异步补处理),或采用“批量拉取、批量处理”模式提升吞吐量;

  4. 拆分处理:若堆积量极大,将历史堆积消息导出至临时存储(如MySQL临时表),用离线任务异步处理历史消息,实时消费仅处理新消息,待历史消息处理完成后合并结果,避免历史消息阻塞新消息。

(2)事后优化(杜绝重复发生,提升系统韧性)
  1. 根因复盘:排查堆积原因(如流量预估不足、消费端隐藏bug、下游服务雪崩),形成复盘报告并落地整改;

  2. 完善监控告警:设置消息堆积阈值(如堆积超过1000条触发告警),提前预警,避免堆积扩大;

  3. 优化弹性扩容:配置消费者弹性扩容策略(如根据堆积量自动扩容实例),让系统能自动应对流量波动;

  4. 消息优先级管控:为核心消息设置高优先级,确保高优先级消息不被低优先级消息阻塞,从源头减少核心业务堆积风险。

4. 技术学习的核心思考

交流中达成共识:技术理论的本质是对实战问题的抽象总结,高效的学习方式应是“从实战到理论,再用理论指导实战”。多数人学习技术是“从理论到实践”的逆向过程,而真正掌握技术的核心,是理解理论的“演进根源”——知道某类技术、某个方案最初是为解决什么生产问题而生,才能在技术选型时更有底气。例如,分布式事务的2PC方案,最初是为解决数据库分布式部署的强一致问题,后续因高并发性能瓶颈,才衍生出TCC、本地消息表等更灵活的方案;Redis分布式锁,是为解决单机锁在分布式环境下的失效问题,理解这一点,才能更好地应对超时时间、网络分区等细节问题。

二、数据库事务核心知识点(隔离级别、传播机制)

1. 事务隔离级别(4种,本质是控制事务可见性)

事务隔离级别的核心作用,是通过控制“一个事务对数据的修改,什么时候对其他事务可见”,平衡“并发效率”和“数据正确性”。4种隔离级别及对应问题,用通俗语言拆解如下:

(1)读未提交(Read Uncommitted)

核心特性:一个事务能读取到另一个事务“未提交”的修改数据,是最低隔离级别,效率最高,但数据干扰最大。

出现的问题:脏读。通俗理解:就像你在厨房做饭,锅里的菜还没炒熟(事务未提交),别人就掀开锅盖尝了一口(读取未提交数据);如果后续菜炒糊了倒掉(事务回滚),别人之前尝到的“半成品”(未提交数据)就成了无效数据,即脏读。

(2)读已提交(Read Committed)

核心特性:一个事务只能读取到另一个事务“已提交”的修改数据,避免了脏读,但效率略低于读未提交。

出现的问题:不可重复读。通俗理解:等菜炒熟盛到盘子里(事务提交),别人才能尝,但同一顿饭中,你先上了盘凉菜(第一次读取已提交数据),别人吃完后你又换成热菜(事务再次提交并修改数据),他再尝就发现菜变了(同一事务内两次读取结果不一致),即不可重复读。

(3)可重复读(Repeatable Read)

核心特性:同一事务内,多次读取同一数据,结果始终一致(读取的是事务开始时的快照数据),避免了脏读、不可重复读,是多数数据库(如MySQL)的默认隔离级别。

出现的问题:幻读。通俗理解:把菜端上桌后就不让换了(事务内多次读取快照数据),别人不管什么时候尝都是这盘菜(结果一致),但如果这时候你又端来一盘新菜放在旁边(其他事务提交了新数据),别人余光瞥见新菜,会以为桌上的菜变多了(同一事务内,读取到了新增的行数据),即幻读。

(4)串行化(Serializable)

核心特性:最高隔离级别,强制所有事务按顺序执行(相当于单线程),完全避免脏读、不可重复读、幻读,但并发效率最低,仅适用于数据一致性要求极高、并发量极低的场景。

通俗理解:厨房一次只做一个人的饭,别人想吃得等你吃完,完全不会有冲突,但做饭效率极低。

2. 事务传播机制(7种,核心解决“方法调用时事务传递”问题)

事务传播机制的本质,是解决“一个方法调用另一个方法时,事务如何传递”的问题——比如A方法有事务,调用B方法时,B是复用A的事务、自己开新事务,还是不使用事务?核心场景及3种易混淆传播行为的使用依据的如下:

核心前提

不同方法对事务的要求不同,传播机制就是为了灵活控制“哪些操作在同一个事务里,哪些操作独立事务”,避免“一荣俱荣、一损俱损”(比如日志失败导致订单回滚)的问题。

3种易混淆传播行为(重点)

(1)SUPPORTS(支持事务,无事务则非事务执行)

核心特性:如果当前存在事务,就加入该事务;如果当前不存在事务,就以非事务方式执行(不主动开启事务)。

使用场景:适用于“有没有事务都能正常执行”的操作,典型如订单查询、数据统计。例如,订单详情页(可能处于事务中)调用订单查询方法,查询跟着用事务也没关系;单独的列表查询(无事务)调用该方法,非事务执行不影响性能,无需额外开启事务消耗资源。

(2)NOT_SUPPORTED(不支持事务,有事务则暂停)

核心特性:强制以非事务方式执行;如果当前存在事务,就先暂停该事务,待方法执行完成后,再恢复原事务。

使用场景:适用于“耗时久、无事务需求”的操作,核心是减少事务持有时间,避免占用数据库连接。典型如生成报表——有事务的方法调用报表生成方法,报表生成涉及大量数据查询和IO操作,耗时极长;若用事务,会一直占用数据库连接,导致连接池耗尽;用NOT_SUPPORTED暂停原事务,报表非事务执行,完成后恢复原事务,提升并发能力。

(3)NEVER(拒绝事务,有事务则报错)

核心特性:强制以非事务方式执行;如果当前存在事务,直接抛出异常,拒绝执行。

使用场景:用于“强制规范”,禁止在事务中执行的操作,避免事务回滚导致的逻辑异常。典型如日志清理工具方法——设计上就不允许在事务中执行,因为清理操作若在事务里,万一事务回滚,清理结果会被撤销,导致日志堆积;用NEVER,只要有事务调用就报错,从代码层面强制避免错误使用。

3. 事务相关异常处理(finally块不执行的情况)

在Java中,业务方法出现异常时,finally块(通常用于释放锁)并非绝对执行,极端情况下会导致锁未释放,引发死锁,常见场景包括:System.exit()调用、JVM崩溃、线程被强制中断。

解决方案:以Redis分布式锁为例,为锁设置自动超时时间,即便finally块未执行,锁到期后也会自动释放,兜底避免死锁。

三、Spring核心特性(AOP切面、事务注解最佳实践)

1. Spring AOP切面的增强范围(public vs private方法)

Spring AOP默认只能增强public方法,无法增强private方法,核心原因是Spring AOP基于动态代理实现(JDK动态代理或CGLIB动态代理):

  • JDK动态代理:基于接口实现,只能代理接口中的public方法;

  • CGLIB动态代理:通过生成目标类的子类实现代理,子类只能继承父类的public方法(private方法属于类的内部实现,外部无法访问,子类无法继承)。

补充:若需增强private方法,需使用AspectJ(编译期或类加载期织入),但日常开发中Spring AOP更常用,因此切面通常针对public方法做增强。

2. @Transactional注解最佳实践(避免在接口上使用)

核心结论:@Transactional注解应加在“实现类的public方法上”,避免加在接口方法上,原因与动态代理的实现机制相关:

  • JDK动态代理:代理类会实现目标接口,因此接口方法上的@Transactional注解能被代理类识别,事务生效;

  • CGLIB动态代理:通过生成目标类的子类实现代理,子类只会继承父类(目标实现类)的方法和方法上的注解,不会继承接口上的注解;若@Transactional加在接口方法上,目标实现类的方法上未重复注解,CGLIB子类的方法上就没有该注解,事务失效。

最佳实践:将@Transactional加在实现类的public方法上,这样无论使用JDK还是CGLIB动态代理,都能正确识别注解,确保事务生效。

四、SpringBoot自动配置核心注解及版本演进

1. SpringBoot自动配置核心注解(分工与关联)

SpringBoot自动配置的核心是3个注解(及组合注解),分工明确、协同工作,核心作用是实现“零配置”快速开发,具体如下:

(1)@EnableAutoConfiguration(管外部配置引入)

核心作用:加载外部starter中的预设自动配置类(非项目内部编写,是SpringBoot官方或第三方提供),比如spring-boot-starter-web中的WebMvcAutoConfiguration、spring-boot-starter-jdbc中的DataSourceAutoConfiguration。

实现逻辑:通过@Import导入AutoConfigurationImportSelector类,该类会扫描META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,加载文件中定义的所有自动配置类,完成通用组件(如Web、数据库连接池)的自动配置。

(2)@SpringBootConfiguration(管内部自定义配置)

核心作用:标记当前类是“项目内部的配置类”,本质是@Configuration的派生注解,作用与@Configuration一致——专门用于通过@Bean注解,手动定义项目内部自己写的Bean(如自定义工具类、业务组件实例)。

关键区分:加载的是“项目内部”的配置和Bean,与@EnableAutoConfiguration(加载外部starter配置)形成互补。

(3)@ComponentScan(管内部业务类扫描)

核心作用:自动扫描当前项目中带@Component、@Service、@Controller、@Repository等注解的类,将其自动注册为Spring容器的Bean(无需手动用@Bean定义)。

与@SpringBootConfiguration的区别:两者都处理“项目内部Bean”,但方式不同——@SpringBootConfiguration是“手动定义Bean”,@ComponentScan是“自动扫描注解注册Bean”。

(4)组合注解:@SpringBootApplication

@SpringBootApplication是SpringBoot的核心组合注解,内部包含了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解,因此日常开发中,只需在主程序类上添加@SpringBootApplication,就能同时开启“内部Bean扫描、内部配置定义、外部starter自动配置”,实现快速搭建应用。

2. SpringBoot版本演进(核心版本重大变化)

SpringBoot的发展核心是“简化开发、提升性能、适配现代Java生态和云原生场景”,从1.0到4.0的重大变化梳理如下(重点版本):

(1)SpringBoot 1.0(2014年,第一个稳定版)

核心目标:简化Spring应用开发,引入三大核心特性,奠定SpringBoot的基础:

  1. 自动配置(Auto Configuration):减少XML配置,框架自动适配组件配置;

  2. Starter依赖:将相关依赖打包整合,如spring-boot-starter-web,引入一个依赖即可快速搭建Web应用;

  3. 嵌入式服务器:内置Tomcat、Jetty等服务器,应用可独立运行,无需额外部署服务器。

(2)SpringBoot 2.0(2018年,性能与生态升级)

核心变化:聚焦性能提升和生态扩展,适配更广泛的开发场景:

  1. Java版本支持:最低支持Java 8,兼容Java 11;

  2. 性能优化:提升应用启动速度和运行性能,优化自动配置逻辑;

  3. 新增特性:引入WebFlux,支持响应式编程;官方支持Kotlin语言;优化starter依赖,新增更多场景化starter;

  4. 其他:升级依赖组件版本,优化监控、日志等功能。

(3)SpringBoot 3.0(2022年,重大升级,适配现代生态)

核心变化:打破兼容,全面适配现代Java生态和云原生,性能进一步跃升:

  1. Java版本要求:最低支持Java 17(彻底放弃Java 8及以下版本);

  2. 依赖升级:基于Spring Framework 6.0,全面支持Jakarta EE 9(替代原Java EE);

  3. 性能优化:强化原生镜像(Native Image)支持,大幅提升启动速度、降低内存占用;

  4. 其他:移除大量旧API和废弃特性,简化配置,提升云原生场景适配性。

(4)SpringBoot 4.0(2023年,在3.0基础上优化)

核心变化:基于Spring Framework 6.1,进一步完善性能和生态适配:

  1. Java版本支持:最低支持Java 17,兼容Java 21;

  2. 性能优化:增强Java 21虚拟线程支持,提升高并发场景下的性能;优化自动配置加载机制,加载效率更高;

  3. 生态适配:进一步提升云原生场景适配性,优化容器化部署体验;

  4. 其他:改进测试支持和日志管理,修复3.0版本的已知问题,提升稳定性。

版本核心总结

SpringBoot的版本演进,本质是“跟随Java生态升级、适配开发场景变化、提升性能和开发效率”的过程:1.0奠定基础,2.0扩展生态,3.0全面升级适配现代生态(Java 17、Jakarta EE),4.0在3.0基础上优化性能和云原生适配,逐步向“更轻量、更快、更适配云原生”靠拢。

五、核心总结

本次技术交流围绕分布式实战、数据库事务、Spring及SpringBoot四大核心模块,结合生产实际场景,拆解了技术原理、异常处理、最佳实践及版本演进。核心共识如下:

  1. 分布式系统中,数据最终一致性的核心是“以数据库为基准,结合中间件(Redis、消息队列)的特性,通过状态校验、重试机制兜底”;

  2. 数据库事务的隔离级别和传播机制,本质是“平衡并发效率与数据正确性”,理解其底层逻辑和使用场景,才能避免事务异常;

  3. Spring相关特性(AOP、事务注解)的使用,需结合动态代理的实现机制,遵循最佳实践,避免因代理机制导致的功能失效;

  4. SpringBoot自动配置的核心是“分工协作”——内部配置、内部扫描、外部引入分离,版本演进始终围绕“简化开发、提升性能、适配生态”展开;

  5. 技术学习的核心是“理解根源”,知道技术、方案的演进背景和解决的实际问题,才能真正掌握技术,实现合理选型和实战落地。

这30个Spring Boot知识点,你很有必要学一下 前言 Spring Boot 是一套快速开发框架,随着微服务架构应用不断普及,Spring Boot的研发技术的掌握已经成为研发人员必会技能。 与此同时,Spring Boot 开源生态建设能力非常强大,提供了很多应用组件,让Spring Boot 有丰富的三方开源软件的使用。 基于上面的情况,Spring Boot ... 阅读详情

相关推荐

VS Code配置MinGW64编译非线性优化库NLopt

VS Code用MinGW64编译C++代码安装MSYS2软件并配置非线性优化库NLopt和测试引用库代码的完整具体步骤。:若使用非UCRT版本(如传统MinGW64),替换所有路径中的。库文件会自动安装到MSYS2的。

weixin_30777913的博客 903

技术交流总结:分布式、数据库、Spring及SpringBoot核心知识点梳理(实现参考)

*** 分布式系统一致性模式总结*//*** 模式1: 最终一致性 + 补偿机制*/// 适用场景: 电商订单、库存管理// 核心: 本地消息表 + 消息队列 + 补偿任务// 1. 本地事务更新订单// 2. 记录本地消息// 3. 异步发送消息// 4. 定时补偿/*** 模式2: TCC分布式事务*/// 适用场景: 资金交易、积分兑换// 核心: Try-Confirm-Cancel 三阶段// Try阶段: 资源预留try {

Coder_Boy_的博客 839

比亚迪 10C 闪充技术全解析:超高速离子通道与双电子流设计如何颠覆电动车补能格局?

性能碾压主流方案参数宁德时代6C比亚迪10C优势幅度最大电流700A1000A+43%内阻降幅30%50%+67%5分钟补能240公里400公里+67%

百态·数智思维 | 聚焦大数据、量化与未来AI 1124

Spring全家桶及核心知识点梳理全解

1. Spring全家桶 Spring Framework,也就是我们常说的 Spring 框架,包括了 IoC 依赖注入,Context 上下文、 Bean 管理、SpringMVC 等众多功能模块,其他 Spring 项目比如 Spring Boot 也会依赖 Spring 框架。 Spring Boot 的目标是简化 Spring 应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式 Web 服务器,含有诸多开箱即用的微服务功能,可以和 Spring Cloud 联合部署。Spring Boot

qqxhb 资源共享 802

深入解析set_clock_groups:异步时钟约束的最佳实践与陷阱规避

本文深入解析了FPGA/芯片设计中set_clock_groups命令在异步时钟约束中的核心作用与最佳实践。文章对比了同步时钟、异步时钟与不重叠时钟的区别,强调了正确使用set_clock_groups避免时序分析陷阱的重要性,并提供了与set_false_path的优先级差异分析及实战规避方法,帮助设计者确保时序收敛与电路可靠性。

weixin_29232121的博客 376

DGX Spark上PyTorch GPU环境配置实战:CUDA 13.0与ARM架构全流程

在深度学习中,CUDA作为GPU加速计算的底层基础,其版本与深度学习框架(如PyTorch)的匹配直接影响模型训练的效率与稳定性。GPU环境配置不仅涉及驱动、CUDA工具链与框架运行时的协同,还依赖于硬件架构与预构建包的兼容性。在AI开发机Ubuntu系统上,正确对齐CUDA版本、计算能力架构及安装源,是避免环境故障、发挥硬件算力的关键。无论是面向个人AI超算还是通用GPU服务器,掌握版本对齐、路径隔离与验证方法,都能大幅提升开发效率。本文以DGX Spark为例,详解从环境摸底到PyTorch GPU版本

weixin_29483277的博客 222

Spring、SpringMVC、SpringBoot核心知识点(持续更新中)

【代码】Spring的核心知识点(持续更新中)

陌守 770

SAP ABAP实战:如何用CVI_EI_INBOUND_MAIN批量更新BP邮箱(附完整代码)

本文深入解析了SAP ABAP中CVI_EI_INBOUND_MAIN函数在业务伙伴(BP)邮箱地址批量维护场景下的应用。通过详细讲解数据结构构建、关键参数(如任务参数'5')配置及完整代码示例,为开发者提供了一套高效、稳定的批量更新解决方案,并分享了性能优化与错误处理的最佳实践。

weixin_29228781的博客 79

Spring Boot 知识点梳理

业务异常可通过自定义异常类(如。

land_yu的博客 546

Codex登录要手机验证码?Cockpit Tools跳过验证保姆级教程

摘要:OpenAI升级风控后,Codex登录需手机验证,增加批量账号使用成本。CockpitTools(GitHub 8.3k star)可绕过验证,支持多AI编程平台账号管理。操作步骤:1) 获取ChatGPT网页Session数据;2) 通过转换工具生成CPA格式JSON;3) 导入工具启动Codex。注意:仅适用于未绑定手机号的账号,Session会过期,且需防范数据泄露风险。商业账号通常直接提供认证文件。(150字)

5882

157、飞控中的鲁棒自适应控制

本文总结了飞控系统中鲁棒自适应控制的实践经验。作者通过炸机案例引出传统PID控制的局限性,分析了鲁棒性与自适应性的本质矛盾,提出"用鲁棒性兜底,用自适应性提性能"的设计原则。重点介绍了模型参考自适应控制(MRAC)的实现方法,包括参考模型设计、自适应律调参技巧(建议初始增益设为0.01)、直接/间接自适应的应用场景差异,以及防止参数漂移的鲁棒修正方法。文章还分享了实际调试中的三大关键问题(初始值设定、激励条件、执行器饱和)及解决方案,并推荐了"鲁棒PID+自适应前馈"的混合架构。最后强调调试顺序应为先保证鲁

2401_88858637的博客 29

【面试必看:Java 主流框架全解析:Spring、SpringMVC、SpringBoot、MyBatis 核心知识点与实战】

本文系统梳理了Java主流开发框架的核心知识点与实战应用,重点解析了Spring框架的IOC和AOP特性。在IOC方面,详细探讨了单例Bean的线程安全问题及解决方案;在AOP方面,通过日志记录案例展示了切面编程的实际应用。文章还介绍了Spring声明式事务的实现原理,为开发者提供了从基础使用到深入理解的完整路径。这些内容不仅适用于日常开发,也是面试准备的重要参考资料。

xxxxxxllllllshi的博客 1019

从0到1:OpenClaw 助力单元测试代码自动化与覆盖率飞升

OpenClaw 的横空出世,宛如一道曙光,照亮了这片黑暗的领域。它作为一款强大的本地 AI 助手,拥有着令人惊叹的能力。OpenClaw 能够深入理解代码的逻辑结构,自动分析代码中的各种功能和潜在的风险点,从而精准地生成高质量的单元测试代码。它就像是一位不知疲倦的测试专家,能够快速、准确地完成那些繁琐的测试编写工作,将开发者从重复劳动中解放出来,让他们能够将更多的精力投入到更具创造性和价值的工作中。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 477

spring security token 有效期_10分钟详解Spring全家桶7大知识点

Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。很多研发人员把spring看作心目中最好的java项目,没有之一。所以这是重点也是难点,工作中必须会,面试时肯定考。那么,今天花费10分钟,梳理Spring框架相关知识。Spring知识...

weixin_39745269的博客 1671

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从数据库连接到Mybatis到spring到springboot梳理

不论mybatis,还是spring,还是spring boot,其实,都是 在一层一层的包装,使操作越来越简单。JDK提供的驱动接口,指定了获取连接的标准接口,任何数据库厂家,都需要提供一个Java版本的驱动包并实现驱动接口,来完成改数据库的连接操作。对于数据库操作,很多都是重复的工作,Mybatis包装了这些重复的工作,开发人员只需要编写SQL语句,就可以完成数据库的操作了。经过一系列的包装,调用,最终代码会走到上面提到的,获取连接、获取statement、执行SQL、结果处理等。

htydowd的博客 811

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SpringBoot核心知识梳理

目录 基础篇 一.SpringBoot的自动配置原理是什么? 二.SpringBoot中如何解决跨域问题? 源码篇 四.源码剖析-自动配置 SpringBoot到底是如何进行自动配置的,都把哪些组件进行了自动配置? @SpringBootApplication @SpringBootConfiguration @EnableAutoConfiguration @AutoConfigurationPackage 六.在SpringBoot中Mybatis自动配置源码分析 基...

illovesoftware的博客 1287

科普文:SpringBoot核心注解及应用梳理

如果没有指定 name 属性,当注解写在字段上时,默认取字段名进行名称查找。到这里你应该清楚了@Resource@Autowired注入的区别了,自身再通过源码走一遍流程,以后就不用在死记硬背这些东西了。Spring & SpringBoot提供了非常多的条件注解用来控制是否创建Bean对象,同时你还可以自定义条件注解。标记一个方法来定义要由Spring的IoC容器管理的bean,该方法的返回值变为bean实例。应用于类,以在一个全局处理组件中处理整个应用程序中的异常,它允许您定义应用于所有的。

为无为,事无事,味无味。 1617

SpringBoot 从注解到源码:核心知识点总结

Component@Autowired@Component@Autowired其他还有很多种方式,如 A 依赖 B,B 依赖 C,C 依赖 A,或是 A 依赖 A 自己,只要产生了依赖关系的闭环,即造成了循环依赖。

2501_93103214的博客 234

Springboot 梳理

命令行界面@Import({AutoConfigurationImportSelector.class})

m0_37145844的博客 563

关于 spring springMVC springBoot的知识框架梳理

配置bean 核心是ioc和aop。

m0_51170293的博客 772

Java知识点梳理

梳理一1.spring循环依赖2.mysql从查询到结果返回执行流程3.redis如何区分冷热数据、aof、rdb持久化4.缓存穿透(布隆过滤器的升级版有了解过么)、崩塌、缓存和数据库的不一致性5.事务嵌套事务,事务如何失效的6.单例的双重检索机制描述一下原理7.分库分表(sharding-jdbc、mycat)梳理二1.jmm 1.7 、1.82.jvm方法区3.线程池参数以及原理使用、拒绝策略...

盲目的拾荒者的博客 99

Java面试核心知识点:多线程、集合框架与Spring原理详解

面向对象编程是Java的核心思想,通过封装、继承和多态三大特性实现代码复用和扩展性。在并发编程领域,线程池技术通过资源复用显著提升系统性能,而JUC包中的CountDownLatch和CyclicBarrier则解决了复杂的线程同步问题。集合框架中ArrayList与LinkedList的底层实现差异直接影响数据操作效率,HashMap的线程安全问题则引出了ConcurrentHashMap的分段锁优化方案。Spring框架通过AOP实现横切关注点的模块化,其自动配置机制大大简化了开发流程。这些Java核心

weixin_34082695的博客 407

Java面试知识点梳理第一篇

梳理一1.spring循环依赖2.mysql从查询到结果返回执行流程3.redis如何区分冷热数据、aof、rdb持久化4.缓存穿透(布隆过滤器的升级版有了解过么)、崩塌、缓存和数据库的...

盲目的拾荒者的博客 251

SpringBoot项目源码知识梳理与演示

在面试开始时,通常会要求候选人进行自我介绍。候选人可以简要介绍自己的教育背景、工作经验、技能掌握情况等。SpringBoot是Spring框架的一个子项目,旨在简化Spring应用的创建和部署。它提供了自动配置、起步依赖、命令行界面等特性,使得开发者可以快速构建独立的、生产级别的Spring应用。本文详细梳理了SpringBoot的源码知识,包括面试常见问题、源码流程、前置知识、自动装配机制、核心注解、Import注解的用法、公共模块集成等。

喜欢猪猪 1087

SpringBoot的单体和分布式的任务架构

在Spring Boot生态中,定时任务框架的选择需根据架构类型(单体或分布式)和功能需求进行权衡。对于单体架构,Spring Task和ScheduledExecutorService是轻量级且易用的选择,适合单机部署和简单任务逻辑。Spring Task通过注解快速配置任务,但缺乏动态修改和分布式协调能力;ScheduledExecutorService支持多线程并发,但不支持Cron表达式和任务持久化。对于分布式架构,Quartz、Elastic-Job和XXL-JOB提供了高可用、任务分片和故障转移

学习记录 1590

【Spring】详解Spring全家桶

转载地址:https://www.cnblogs.com/lagou/p/10552815.html Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。有人亲切的称之为:Spring 全家桶。 很多研发人员把spring看作心目中最好的java项目,没有之一。 所以这是重点也是难点,工作中必须会,面试时肯定考。 那么,花费10分钟,梳理Spring框架相关

u013733643的博客 1万+
上一篇: Java高级_资深_架构岗 核心知识点全解析(通俗透彻+理论+实践+最佳实践)
下一篇: 技术交流总结:分布式、数据库、Spring及SpringBoot核心知识点梳理(实现参考)
Coder_Boy_
博客等级 码龄10年 2804粉丝 819原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值