![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springboot
_acme_
这个作者很懒,什么都没留下…
展开
-
spring单例引起的线程安全问题
一、spring单例与多例定义单例:一个类只能产生一个对象(对应到spring中,注入的对象永远是同一个)多例:一个类能产生多个对象(对应到spring中,注入的对象永远是新的)@Scope("prototype")@Scope("singleton")可以使用@Scope注解,标记这个类是单例还是多例,默认是单例。二、使用单例引起线程安全问题的例子那究竟什么时候会用到呢?我相信大...原创 2020-04-24 20:00:34 · 2964 阅读 · 3 评论 -
如何理解BeanPostProcessor
==> 学习汇总(持续更新)==> 从零搭建后端基础设施系列(一)-- 背景介绍原始片段创建bean的时候,有这么一段代码,遍历所有实现了BeanPostProcessor这个接口的类,并一个个调用其中的方法。protected Object applyBeanPostProcessorsBeforeInstantiation(Class<?> beanCla...原创 2020-04-08 20:04:07 · 559 阅读 · 0 评论 -
【追根究底】doCreateBean中为什么会对earlySingletonExposure处理两次
==> 学习汇总(持续更新)==> 从零搭建后端基础设施系列(一)-- 背景介绍问题对应的代码片段protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] args) throws BeanCreationExce...原创 2019-12-23 23:57:07 · 2717 阅读 · 16 评论 -
【细品springboot源码】彻底弄懂spring bean的创建过程(下)
==> 学习汇总(持续更新)==> 从零搭建后端基础设施系列(一)-- 背景介绍【细品springboot源码】彻底弄懂spring bean的创建过程(上)接着上一篇,说到了doCreateBean这个方法,开始创建bean,老规矩,贴关键代码,标号对着解释。剖析创建Bean的源码普通bean的创建过程三接着往下运行,到了真正创建bean的地方 protect...原创 2019-12-18 23:17:20 · 1423 阅读 · 6 评论 -
【细品springboot源码】彻底弄懂spring bean的创建过程(上)
==> 学习汇总(持续更新)==> 从零搭建后端基础设施系列(一)-- 背景介绍前言: 为什么网上那么多的bean创建源码解析,我还要再写一篇呢?。第一个原因当然是记录总结加深印象,第二个原因,我希望能将spring bean这个东西用一种通俗易懂的方式写出来,一篇文章就能解释清楚。所以,我打算从以下三个方面入手为什么会出现spring bean?了解它的发展史后,你可以...原创 2019-12-16 00:39:40 · 3688 阅读 · 4 评论 -
【追根究底】使用@Lazy注解为什么会产生两层代理?
==> 学习汇总(持续更新)==> 从零搭建后端基础设施系列(一)-- 背景介绍CASEA@Componentpublic class A { @Lazy @Autowired B b; public void sayA(){ b.sayB(); }}B@Componentpublic class B...原创 2019-12-01 19:56:32 · 1197 阅读 · 0 评论 -
【追根究底】@Lazy注解为什么会失效?
==> 学习汇总(持续更新)==> 从零搭建后端基础设施系列(一)-- 背景介绍@Lazy注解为什么会失效?它并没有失效,一直都是生效着的,之所以认为它失效了,是没有用对它,没有理解它!我想让B最后再实例化,因为实例化的时候,会为B创建代理,并且加入增强器。但是有些情况,实例化其它类的时候,某个增强器还未生成,这时候其它类又使用到了B,导致B在增强器之前实例化了,最后B就加入不...原创 2019-12-01 16:57:12 · 5337 阅读 · 3 评论 -
【追根究底】 为什么@Transactional注解失效了?
==> 学习汇总(持续更新)==> 从零搭建后端基础设施系列(一)-- 背景介绍新手疑问之为什么我已经加上了@Transactional注解,还是失效呢???这个很好回答,要么没有生成代理类调用,要么没有开启事务。可以参考细说@Transactional用法及原理老鸟致命疑问之为什么我已经加上了@Transactional注解,并且事务确认已经开启,最后已经生成...原创 2019-11-21 16:51:51 · 2728 阅读 · 0 评论 -
细说@Transactional用法及原理
第一天:小白:小黑,今天发现数据库有好多脏数据,这咋回事?小黑:(内心OS,什么玩意,都不自己查一下,直接扔个这么广泛的问题给我)呃。。。你要不去检查一下相关操作到数据库接口的逻辑?特别是插入和更新操作的小白:嗯,有道理,我去check一下。 1个小时后……小白:哎,小黑啊,我把相关接口check了一遍,发现正常情况下逻辑都没什么问题呀?小黑:(内心OS,WTF?小白这个名字真不是盖的...原创 2019-07-12 00:58:20 · 3294 阅读 · 2 评论 -
idea+spring boot+mybatis+restful风格的demo
注:我是在mac下搭建的demo,在windows下同理,这个不存在什么太大差异。后面会有源码,直接导入idea即可,只是环境的配置稍有不同。 一、准备工作 下载最新版idea.。 下载mysql。 下载postman,这是一款用于前后端接口请求测试的神器。 以上自行百度安装。 二、创建项目1.new project->选择 spring initalizr ...原创 2018-03-01 03:23:49 · 9643 阅读 · 12 评论 -
springboot之BeanPostProcessor功能及例子(一)
一、BeanPostProcessor字面上的意思是bean的后置处理器,什么意思呢?其实就是说,在bean的生命周期中,可以对它干什么。再简单点就是,bean初始化之前干点什么,之后又干点什么。public interface BeanPostProcessor { @Nullable default Object postProcessBeforeInitialization(Obje...原创 2019-02-26 23:50:15 · 15509 阅读 · 1 评论 -
springboot之事件监听机制
一、观察者模式1.涉及到的类public interface Observer { /* 观察者必须要实现这个接口,其实就相当于,A实现了这个接口,B发生改变的时候,顺便调用一下A的update方法。 */ void update(Observable o, Object arg); }//可以理解为,事件源和通知者的结合体//用大白话讲就是,我的XXX...原创 2019-02-26 00:43:03 · 1301 阅读 · 0 评论 -
spring自定义注解失效的原因
为什么有时候自定义注解不起作用,失效的原因,以及解决办法。原创 2019-02-27 23:38:11 · 14461 阅读 · 2 评论