Spring
文章平均质量分 87
菜鸟日常
公众号:菜鸟日常
展开
-
自己手写一个 Spring Boot Starter
starter 有什么作用?Spring Boot Starter 的 POM 文件中,引入了各种 jar 文件,当你想拥有某个功能的时候,引入 starter 即可。比如常见的 starter 有 spring-boot-starter-web、spring-boot-starter-test、spring-boot-starter-jdbc,将这些 starter 添加到 POM 文件中,就拥有了对应了能力。自定义 starter <dependency> <原创 2021-08-02 14:20:53 · 276 阅读 · 0 评论 -
Spring 声明事物注解 Transactional 相关属性学习
1. 声明范围可以选择在以下几处地方声明 @Transactional在实现类上面声明,类里面定义的所有方法都被事物管理在实现方法上面声明,仅该方法被事物管理注意:在接口(接口类、方法)上面声明 Transactional 时,若代理对象是基于子类的代理,那么该注解将失效。最佳实践就是在实现类的具体方法上面增加 Transactional 注解。2. 传播行为 Propagation事务传播行为用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法的时事务如何传播。REQUIRE原创 2021-07-17 17:03:20 · 175 阅读 · 0 评论 -
Spring AOP 实现原理分析
123原创 2021-07-17 12:57:39 · 118 阅读 · 0 评论 -
Spring Bean 加载解决循环依赖源码分析
概述首先从 Spring Bean 的加载流程了解到 Bean 的加载涉及到 获取 Bean 定义,实例化、属性填充、初始化过程。在初始化阶段 ,Spring 对 Aware、BeanPostProcessor 等扩展点进行了实现,对 Bean 进行增强。在初始化期间,有将 Bean 放到三级缓存,然后到二级缓存,最后初始化完成放到一级缓存的过程,具体可以看看上篇文章。Spring Bean 加载过程生命周期源码分析下面开始学习 Bean 解决循环依赖的过程。样例代码包含 3 个类,启动类 S原创 2021-07-17 11:30:19 · 249 阅读 · 1 评论 -
Spring Bean 加载过程生命周期源码分析
大撒大撒原创 2021-07-15 21:46:52 · 195 阅读 · 0 评论 -
Spring 中设计模式的应用
Spring 中用到的设计模式工厂方法工厂方法定义:父类定义了创建对象的接口,但是由子类来具体实现,工厂方法让类把实例化的动作推迟到了子类当中。例如实现了 FactoryBean 接口的类,Spring 可以利用 getObject() 方法返回实现了该接口的类的实例;AbstractFactoryBean 实现了 FactoryBean 接口,由子类去实现 createInstance 的逻辑public abstract class AbstractFactoryBean<T>原创 2021-06-29 20:42:06 · 110 阅读 · 2 评论 -
Spring Bean 生命周期以及源码分析
生命周期Bean 生命周期指的是单例模式下, Bean 的创建,应用,销魂的整个过程BeaFactory 读取 Bean 定义,生成实例setter 属性注入若 BeanNameAware 接口,执行 setBeanName 方法若 BeanFactoryAware 接口,执行 setBeanFactory 方法若实现 BeanPostProcessor 接口,执行 processBeforeInitialization执行 InitializingBean的afterPropertiesS原创 2021-06-20 22:30:25 · 140 阅读 · 1 评论 -
Spring Boot 集成 Prometheus 实现多标签指标监控
背景知识Spring Boot Actuator:自带的指标,Monitoring our app, gathering metrics, understanding traffic, or the state of our database becomes trivial with this dependencyMicrometer Prometheus类似教程很多,但是 多标签 的实现方案很少有,于是在这里记录备份一下,代码实现主要参考Micrometer’s equivalent of Pro原创 2020-09-18 15:09:26 · 1746 阅读 · 2 评论 -
Spring AOP 方法内部调用不生效
文章目录问题描述失效原因解决方案参考问题描述最近有个需求,统计某个方法的调用次数,开始使用 Spring AOP 实现,后来发现当方法被内部调用时,切面逻辑将不会生效,直接上样例:定义接口,包含方法 A,方法 Bpublic interface ISon { void A(); void B();}定义接口实现,方法 B 调用方法 A@Servicepublic class Son implements ISon { @Override public voi原创 2020-05-14 17:09:12 · 5960 阅读 · 5 评论