
spring
文章平均质量分 80
井九111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
类加载器失效的坑
你遇到的“只能加载当前模块配置文件”的问题,其实是类加载器资源可见性受限的表现。方式是否支持跨模块加载是否受类加载器限制❌✅✅(视具体运行环境)✅(上下文依赖)Spring✅(框架处理)❌(更灵活)文件系统方式(Path/File)✅(只要路径正确)❌。原创 2025-05-23 16:56:46 · 410 阅读 · 0 评论 -
BeanFactory 和 FactoryBean
特性定义Spring 容器的核心接口用户自定义的工厂接口,实现复杂 Bean 创建功能管理和创建 Bean 实例定义如何创建一个特殊的 Bean 实例作用容器整体管理 Bean 生命周期负责产生具体 Bean 的实例返回对象返回被管理的 Bean 实例返回 FactoryBean 生成的 Bean 实例获取 FactoryBean 本身通过获取自身就是一个 Bean,但对外暴露的是它生产的对象一级缓存完成初始化的单例对象。二级缓存。原创 2025-05-22 15:38:45 · 803 阅读 · 0 评论 -
Spring AOP
1. Spring容器创建Bean2. BeanPostProcessor.postProcessAfterInitialization判断是否需要代理3. 查找所有Advisor,匹配Pointcut4. 若匹配,生成代理对象(JDK或CGLIB)5. 代理对象替代原始Bean注入容器6. 调用代理对象方法7. 代理对象执行Advisor中Advice链8. Advice执行前后增强逻辑(Before, Around, After等)9. 最终调用目标对象方法10. 返回结果。原创 2025-05-22 15:34:25 · 622 阅读 · 0 评论 -
JDK动态代理 vs CGLIB动态代理
点内容基础要求目标类必须实现至少一个接口可代理方法只代理接口中定义的方法新增方法目标类新增接口外的方法无法代理性能反射调用,性能较好(JDK优化动态生成字节码)使用场景接口设计良好的业务系统点内容基础要求目标类不能是final类;被代理方法不能是finalstatic可代理方法代理所有publicprotected方法,包括新增方法新增方法支持代理目标类自己新增的方法性能创建代理对象稍慢,但执行阶段性能优于JDK动态代理使用场景无接口或需要代理类所有方法的情况。原创 2025-05-22 15:31:12 · 326 阅读 · 0 评论 -
三级缓存与循环依赖
缓存层级名称缓存内容作用一级缓存完整初始化且增强后的 Bean 实例最终单例池,正常获取 Bean 首选此缓存二级缓存Bean 的早期引用实例暴露未完成初始化的 Bean,供循环依赖 Bean 使用三级缓存生成 Bean 早期引用的工厂对象延迟创建早期引用,支持 AOP 代理的动态生成,保证引用一致关键点说明三级缓存存工厂对象保证早期引用和最终 Bean 是同一对象引用二级缓存存早期 Bean 实例共享给多个依赖该 Bean 的其他 Bean一级缓存存完全初始化 Bean供正常获取使用。原创 2025-05-22 15:25:06 · 616 阅读 · 0 评论 -
spring ioc的流程
创建容器对象(如将配置类()或 XML 注册到容器中初始化 BeanFactory,准备好用于存储和管理 Bean 的结构(如加载启动的核心组件(如环境信息、资源解析器等)原创 2025-05-22 15:10:04 · 529 阅读 · 0 评论 -
spring/springboot如何解决中文乱码问题
解决位置方法或配置配置开启 UTF-8 编码Spring MVC 手动配置使用过滤器(XML 或 Java Config)Tomcat前端请求设置设置以及请求头 Content-Type。原创 2025-05-22 00:39:42 · 839 阅读 · 0 评论 -
spring 如何管理mybatismapper接口
或使用:然后直接注入使用:二、关键问题✅ 答案:动态代理 + FactoryBean + 注解扫描三、执行流程简述1. 开启扫描引入 ,注册一个类路径扫描器 。 找到所有 Mapper 接口,给每个注册一个 。 中调用:MyBatis 用 JDK 动态代理生成实现类。你调用的方法(如 ),会转发给 ,再通过 SQL 映射执行。代理对象本质是对方法的拦截,将调用转换为 SQL 执行。通常推荐通过 Service 层调用 Mapper,实现更好的事务控制和业务封装。小原创 2025-05-22 00:36:16 · 315 阅读 · 0 评论 -
Sping中的设计模式
模式Spring 应用场景工厂模式单例模式单例 Bean、Bean 缓存代理模式AOP、事务模板方法模式观察者模式事件监听机制策略模式Bean 实例化、事务管理、资源加载责任链模式安全过滤器链、拦截器、BeanPostProcessor适配器模式装饰器模式建造者模式。原创 2025-05-22 00:35:24 · 928 阅读 · 0 评论 -
spring事件监听机制
接口方式(旧)@Component@Override// 发送欢迎邮件注解方式(推荐)@Component// 发送欢迎邮件Spring 的事件监听机制,是基于“观察者模式 + 事件驱动”的通用设计范式,具备解耦、灵活、可扩展的优势,是企业级应用中实现“业务协作”“事务后处理”“系统级通知”的强大工具。原创 2025-05-21 15:39:22 · 345 阅读 · 0 评论 -
Spring事务失效的解析
Spring 事务通过 AOP 代理实现,事务生效必须走代理对象的方法调用。JDK 动态代理只能代理实现接口的public方法。CGLIB 代理可代理非public(如protecteddefault)方法,但不能代理private方法。方法必须是public,且调用必须通过代理对象,才能触发事务。原创 2025-05-21 15:28:57 · 310 阅读 · 0 评论 -
spring事务传播行为的实现
处理点说明ThreadLocal事务上下文隐式传递事务状态,跨方法调用保持事务上下文传播行为判断中判断并执行不同传播策略挂起与恢复事务线程事务资源解绑定和重新绑定,支持事务隔离和嵌套嵌套事务支持基于JDBC Savepoint,实现部分事务回滚事务状态封装用管理事务生命周期属性解析与缓存通过快速获得传播行为配置事务同步回调保障事务完成后的回调逻辑执行。原创 2025-05-21 15:10:39 · 861 阅读 · 0 评论 -
spring事务的管理类型,实现方式,传播行为,基本原理实现
Spring 事务管理提供编程式和声明式两种方式,推荐声明式事务。声明式事务基于 AOP,默认通过注解实现,也支持自定义切点表达式。事务传播行为定义了事务的嵌套及传播策略,保证事务的正确执行。Spring 事务通过代理拦截器实现事务的开启、提交和回滚。事务的通知类被包装为 Advisor,配合切点实现高效灵活的事务增强。原创 2025-05-21 14:57:27 · 944 阅读 · 0 评论