- 博客(9)
- 收藏
- 关注
原创 spring AI alibaba 实现智能商品推荐ChatBot
AI技术的发展日新月异,越来越多的的业务正不断融合AI技术,实现更高效、更智能的效果。近期spring AI 和spring AI alibaba相继发布了 release 1.0 版本,Spring AI 作为 Spring 家族中面向人工智能应用开发的框架,提供了便捷的工具和组件,能够快速搭建人工智能应用,Alibaba 的技术生态则拥有丰富的电商实践经验和三高系统的构建能力,可以让AI应用工程化。
2025-06-18 23:38:19
674
原创 MyBatis源码分析
单独使用mybatis时,数据源管理,SqlSession的创建,事务粒度的管理都是我们自己编码控制,但一般情况mybatis都是集成到spring中,集成后一个请求可能涉及多个接口,每个接口内部还可能会多次与数据库交互,spring是怎么做数据源,SqlSession,以及事务的全局管控的呢?请见spring集成mybatis。
2025-01-23 14:43:01
706
原创 spring集成Mybatis源码分析
1、开启事务,创建TransactionInfo保存事务相关信息,获取连接并上下文TransactionSynchronizationManager2.执行事务方法3.业务层调用mybatis,mybatis创建sqlSession并保存到上下文TransactionSynchronizationManager,同时mybatis注册自己的TransactionSynchronization实现提供事务周期各阶段的回调,等待spring回调协同事务工作。
2025-01-23 14:42:48
1182
原创 JDBC与DataSource
应用程序开发中经常要与数据库打交道,对于java项目一般是springboot+mybatis/mybatis-plus,我们只需简单的配置就可以做到和数据库进行快捷方便的交互,同时还可以方便的进行事务管理。强大的框架让我们觉得这非常的简单。但我们需要了解框架背后的实现逻辑,来应对不同的业务需求,比如saas项目的多租户设计,同一个服务怎么支持多数据库源切换,以及怎么正确的处理事务,还包括一些性能优化如数据库连接池优化。
2025-01-22 11:40:40
750
原创 spring解决循环依赖-三级缓存:源码解析
Component@Autowired@Component@Autowired可以看到AService和BService互相是对方的属性,假如AService先创建,那么创建AService时会注入属性BService,这时spring容器又会去创建BService,创建BService时又会注入属性AService这时又会去创建AService,就形成了循环依赖。
2024-12-10 17:42:04
1232
原创 JMM-java内存模型
JMM就是Java内存模型但它不是指具体的内存区域而是一种虚拟机规范,JMM规范屏蔽各个硬件平台和操作系统对内存访问机制的差异化。为什么要提出这个规范呢?因为java线程()是映射到的,当用户线程需要申请系统资源(内存,IO等这些资源是受操作系统保护用户线程不能直接操作)是需要切换到内核线程让内核线程去操作,例如java线程定义变量时为变量申请内存的操作就是需要切换到内核线程,这种情况下对内存的访问就需要有一种协同机制,并且内存还会存在缓存一致性问题,为了解决这些问题就提示除了JMM。
2024-08-01 15:27:45
1020
原创 java代码是怎么在计算机上运行的?jvm各组件在代码执行时都起到什么作用?
高级语言的本质就是封装了操作系统和硬件的使用细节,高级语言只是描述数据结构和算法,而真正的执行是由操作系统协调硬件完成的。jvm通过操作系统提供的接口来请求和管理内存空间,但对象的管理、分配和释放过程则是由 JVM 在其运行时环境中完成的。操作系统的角色是为 JVM 提供内存资源,但不直接参与到 Java 对象的高级管理操作中。
2024-07-15 11:13:02
757
原创 Thread.join jvm底层实现
探究Thread类join方法的使用及源码分析,并从jvm底层分析实现原理join是通过Object的wait实现等待,然后通过jvm和操作系统调用notifyAll唤醒等待的线程来实现的。
2024-07-10 15:38:25
489
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅