![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
大叶子不小
这个作者很懒,什么都没留下…
展开
-
理解Spring定时任务的fixedRate和fixedDelay
用过 Spring 的 @EnableScheduling 的都知道,我们用三种形式来部署计划任务,即 @Scheduled 注解的 fixedRate(fixedRateString), fixedDelay(fixedDelayString), 以及 cron. cron 不在这里讨论的范畴。 我们着重在如何理解 fixedRate 和 fixedDelay 的区别。 在 Spring 的 Scheduled注解的 JavaDoc 对此的解释很简单public abstract...原创 2020-11-19 10:59:11 · 1398 阅读 · 1 评论 -
事务导致账务出错的情况
一致性保障主从数据库日切要保证强一致性事务中的另一个线程不可回滚事务中的第三方调用不可回滚异常捕获后进行数据处理可能仍然不成功嵌套事务回滚导致内层事务无法回滚内部事务异常被捕获,外层无法回滚@Transactional在同一个类中被调用,事务不会生效private 方法会使注解事务失效,否则事务会被忽略也不会抛出异常...原创 2020-10-23 18:08:18 · 121 阅读 · 0 评论 -
spring 循环依赖的一次 理解
个人总结:这个是对depend on和 autowired概念弄混淆了。depend on是创建这个对象前另外一个对象一定要已经创建完成。而autowired是A对象包含对B对象的引用。前言: 在看spring 循环依赖的问题中,知道原理,网上一堆的资料有讲原理。 但今天在看代码过程中,又产生了疑问。疑问点如下:// 疑问点: 先进行 dependon 判断String[] dependsOn = mbd.getDependsOn();if (dependsOn != null) {原创 2020-09-25 16:56:02 · 657 阅读 · 3 评论 -
Spring 源码分析衍生篇一:FactoryBean介绍
目录一、前言二、简介三、正文四、源码解读一、前言本文是Spring源码分析:bean的加载过程的衍生文章。主要是因为本人菜鸡,在分析源码的过程中还有一些其他的内容不理解,故开设衍生篇来完善内容以学习。关于FactoryBean在源码中的设计,可以参考上面提及的正文bean的加载过程内容。在getObjectForBeanInstance方法中有详细的分析。二、简介一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean。但...原创 2020-09-25 15:00:42 · 311 阅读 · 0 评论 -
spring源码系列7:Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别
个人总结:先用instination来处理看是否生成代理对象,有的话直接返回然后进入populatebean 的postProcessAfterInstination 和 postProcessPropertyValues然后进入initializebean 先执行postProcessBeforeInitialization 然后执行初始化方法,然后执行postProcessAfterInitialization概念Bean创建过程中的“实例化”与“初始化”名词实例化(Instan原创 2020-09-25 10:48:34 · 584 阅读 · 0 评论 -
spring bean的生命周期(三)
bean的生命周期: bean创建---初始化----销毁的过程 容器管理bean的生命周期; 我们可以自定义初始化和销毁方法;容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法 构造(对象创建) 单实例:在容器启动的时候创建对象 多实例:在每次获取的时候创建对象\ BeanPostProcessor.postProcessBeforeInitialization 初始化: 对象创建完成,并赋值好,调用初始化方法。...原创 2020-06-23 21:10:55 · 128 阅读 · 0 评论 -
spring容器创建过程(总结版)
Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理;1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法;2)、getEnvironment().validateRequiredProperties();检验属性的合法等3)、earlyApplicationEvents= new LinkedHashSet();保存容器中的一些早期的事件;2、obtainFreshBeanFactory();获取Bea原创 2020-09-09 07:46:29 · 765 阅读 · 0 评论 -
spring拓展原理
扩展原理:BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的1、BeanFactoryPostProcessor:beanFactory的后置处理器; 在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容; 所有的bean定义已经保存加载到beanFactory,但是bean的实例还未创建BeanFactoryPostProcessor原理:1)、ioc容器创建对象2)、invokeBeanFac.原创 2020-09-07 19:55:58 · 148 阅读 · 0 评论 -
scope的作用域
scope的分类1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit3.runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段4.provided:打包的时候可以不用包进去,别的设施会提供。事原创 2020-07-07 09:04:03 · 341 阅读 · 0 评论 -
spring组件添加(一)
给容器中注册组件;1)、包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)[自己写的类]2)、@Bean[导入的第三方包里面的组件]3)、@Import[快速给容器中导入一个组件] 1)、@Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名 2)、ImportSelector:返回需要导入的组件的全类名数组;(需要implements ImportSelector) 3...原创 2020-06-23 22:42:57 · 215 阅读 · 0 评论