自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 spring 源码之 bean的生命周期全流程图(应该说涵盖非常清晰了)

画了一上午!,终于感觉差不多了,画此流程图主要为了后面熟悉,看一眼就能达到基本知道xxx 的效果,否则每次感觉都要头脑里面梳理好久!

2020-03-06 11:52:22 232

原创 记一次阅读mybatis--spring 源码出现的使用 @postConstruct 不生效引出的血泪!(--jdk版本)

.案发描述:1.就是想简单测试下 @postConstruct 的被调用的原理,结果发现死活这里都无法执行到,换了n种方式,2.后面我又在另一个非源码的普通spring项目种测试,发现却执行到了。好嘛,既然它被执行到了,那我就先看此@postConstrcut 到底如何被能够执行到吧(实在无法直接解决了,就只好先弄清楚原理后,在来想思考为啥它在我的源码种执行不到)1.@postConst...

2020-01-19 23:51:50 3419 7

原创 spring boot中ConditionalOnClass为什么没有classNotFound类加载异常

问题: 为啥启动项目时编译能够通过呢/???

2020-09-11 15:51:59 757

原创 文件路径问题

如:Paths.get(/medical, newFileName));最后生成的文件在项目 的所在盘 的根路径xxx而不是 项目的根路径下xx

2020-07-28 09:59:10 126

原创 DecimalFormat 和 BigDecimal 数字处理

ss

2020-07-24 12:29:35 190

原创 前端启动nodejs项目地址

等价 多映射了一个可以访问真实网关服务的地址端口 8082,即可以用8080 或者 8082 都是相当访问到8080 的!注意: 真实的网关服务地址 设计的是 8080哈!!!

2020-06-04 23:44:20 740

原创 mysql的时间问题

接收前端类型?直接字符串?

2020-06-04 12:35:27 96

原创 nginx的理解

niginx的正向代理和 反向代理1.正向; 如 启动ngixn后, 访问分配生成的 localhost:8091 后直接访问导资源 xxhtml加了proxy_pass(可以还配负载均衡,即有其他多个地址指向upstream 里面,也可以就一个如直接指向 百度首页)...

2020-06-04 10:52:36 152

原创 远程连接记录

2020-06-04 09:31:53 180

原创 docker镜像

<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.0</version> <configuration> <ima...

2020-06-02 15:17:57 96

原创 jdk--stream

public static void main(String[] args) { List<List<Integer>> a = new ArrayList<>(); a.add(Arrays.asList(1,11,13)); a.add(Arrays.asList(2,21,23)); a.add(Arrays.asList(3,32,33)); List<Integer> re = a.stream().flat

2020-05-19 22:43:26 85

原创 mybatis--424

https://blog.csdn.net/isea533/article/details/73555400

2020-04-24 16:40:40 87

原创 jdk的native源码hotspot 学习姿势

1.在这个 http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/00cd9dc3c2b5/src/share/native/java/lang/Thread.c在上面链接里面查看对应的native 本地方法所对应 的hotspot虚拟机的源码如上面贴出的就是 Thread相关的 本地方法,如sleep的源码,则需要搜索 方法名 JVM_Sleep 这...

2020-04-07 15:37:06 255

原创 jdk源码添加注释前奏--编译

这里记录下踩坑过程尼玛都是血泪啊!,搞了差不多一天!idea软件配置都给搞挂了,重新装了一遍!1.借鉴网上资料—最后到启动测试类这步时运行–>关键点来了,我是先各种错误,后面解绝了,后再运行,一直会卡在 一步 叫 writering classses… 这步,我也不知道这步具体干嘛,但是以看cpu都是飙升到100 一直下不来,每次都只能停下重新搞,、最后 查询资料 我改了两个地...

2020-03-13 23:07:07 545

原创 hashMap 的put 流程图

jdk8

2020-03-13 11:00:32 613

原创 spring源码深入解析bean的依赖注入DI到底如何完成--即分析 AutowiredAnnotationBeanPost 和CommonAnnotationBeanPostProcessor(二)

此篇结合上一篇,这里单独分析 @autowired @resouce 注解 所支持的字段及方法注入的过程到底如何进行的,即从他们注解是合适解析,合适开始依赖注入分析(因为@resouce 注解的特殊性,建议先看我之前的一篇博文,分析过他被 @resouce使用的字段对应 字段信息会被放入 CommonAnnotationBeanPostProcessor 所维护的一个 缓存里,这里我就猜测到它的...

2020-03-05 17:58:57 395 1

原创 spring源码深入解析bean的依赖注入DI到底如何完成--即分析 AutowiredAnnotationBeanPost 和CommonAnnotationBeanPostProcessor(一)

说在前面

2020-03-05 12:10:55 546

原创 源码深入解析spring 的初始化方法 initMethod (标有注解的@postConstruct的方法)--极度细致!

1.说在前面,@postConstruct 所标注的方法 内部是靠的spring提供的两个后置处理器共同 协调分布处理完成的,这一点也是网上绝大部人没讲明白的,很多人都只是说到一个,其实我之前看源码也是以为一个,结果,后面由于xxx 我发现了是两个!!这两个后置处理器还是父子关系:InitDestroyAnnotationBeanPostProcessor 和 CommonAnnotation...

2020-03-04 11:54:19 3204 9

原创 从源码深入理解spring的 4 种装配模型 与 两种装配技术(byType, byName)以及注解 @Autowired

理解spring的 4 种装配模型 与 两种装配技术(byType, byName)

2020-03-03 19:09:58 517 2

原创 从 spring-aop 通过getBean(.class) 获取 bean 某种条件下出错而引出对 通过指定bean 类型获取的源码细读--isTypeMatch 方法

先明确(暂不讨论懒加载等特殊):1.一般我们获取bean的两种方式: getBean(“xxbeanName”) 或者 getBean(xxBean.calss)这两种情况即 a. 一种通过beanName, b.一种是bean类型 ,其再源码内最终都是通过 先找到 beanName 后去找到对应的 bean 的2.(即 b.种通过类型来获取其实内部是先做了转换的, -...

2020-03-02 13:51:21 2119

原创 spring中 THreadLocal 的运用地方

1.aop 代理xx 在真正对普通bean作为tartget创建代理proxy对象前,先是找该类所对应所有的可以适配的 通知类集合时,在 AbstarctAdvisorAutoProxyCreator 中protected List<Advisor> findAdvisorsThatCanApply( List<Advisor> candidateAdvisor...

2020-02-29 10:34:51 750

原创 利用 lock- condition- AtomicInteger 实现 多个线程顺序轮番执行 数字累加 逻辑

说,明:拿到一道面试题如下:构造5个线程,从1-100每个线程依次输出5个数字,例如线程1输出1-5,线程2输出6-10,…,线程5输出21-25,然后线程1输出26-30,依次类推到100截止。一开始网上先自己查询了嘿嘿想偷下懒,可是发现并灭有找到写的合适的,故自己尝试多次,优化了几次,简单重构了下,并实现了动态可扩展,我觉得还不错,分享下。代码如下(直接拿走,main 方法运行可见结...

2020-02-26 21:58:45 476

原创 spring的所有扩展点如后置处理器 全部执行时机

1.第一次调用作用,bean的实例化前(一般都是返回null,不为空,就不会走下面了)2.创建bean生命周期,Object beanInstance = doCreateBean(beanName, mbdToUse, args);内部包含几处使用到1.实例化里面–找构造器时 – 通过SmartInstantiationAwareBeanPostProcessor 后置处理器来确定选...

2020-02-24 11:39:59 481

原创 方法注入method overrides 之@lookMethod 作用原理

分隔符

2020-02-24 11:07:19 652 3

原创 spring 的 DI + MI + 4种自动装配模型 (no--即含@Autowired + @resouce, byName, byType, byConstor)

参考自己写的代码:https://github.com/wuda5/spring-relate/commit/6b044fefb4020dc20167ca43143ffdd40a41a372先看几个readmespring种5中装配模型1、AUTOWIRE_NO = 0;(这个NO咋说呢,理解为不使用自动装配吧,spring默认的值)–默认NO【0】这里 NO, 一般使用的 @autoW...

2020-02-18 18:20:33 490

原创 spring自动装配模型理解--绝大时候都是NO模型--

–参考https://juejin.im/post/5d99fcc7e51d457822796ea12.@resource 是 模型 byName3.@

2020-02-18 15:07:41 251

原创 spring的注入方式DI 和 MI

参考:https://archguide.gitee.io/#/docs/Spring/Spring官网学习笔记/Spring官网阅读(二)依赖注入及方法注入/Spring官网阅读(二)依赖注入及方法注入?id=通过lookup的方式(也分为注解跟xml两种方式,这里只演示注解的)...

2020-02-18 14:05:41 159

原创 github中的使用

1.GitHub中PR(Pull request)操作–https://blog.csdn.net/thinking_fioa/article/details/79516352(thinking_fioa)

2020-02-18 12:17:14 130

原创 spring添加构造方法的值 和 添加属性--spring内部可以添加参数值-

spring内部可以添加参数值–>1.构造如:构造方法如下:通过实现xx接口,拿到此bean对应的bd后(如采用@import实现ImportBeanDefinitionRegistrar如mybatis 或者直接实现 factoryBeanPostProccesor ),可以通过如下操作赋值2.属性...

2020-02-14 18:53:49 216

原创 利用 lock- condition- AtomicInteger 实现 多个线程顺序轮番执行 数字累加逻辑

感觉是5.0.的一个bug吧!!!!!!我从官网拿下的spring5.0.x的gradle编译源码执行@postConstruct不生效的!

2020-01-19 18:05:00 294

原创 spring源码学习导航路线

1.从new 容器开始,进入注意主体的三个 方法1.this()2.register(annotatedClasses);3.refresh()思路:– 1.默认的哪个bean ConfigurationClassPostProcessor 在哪里被注册bd的 和 哪里 被实例化放入 父类的singtonMap中的 ,bd的注册对应的工厂是这个嘛??2.里面有个mergeBean的概...

2020-01-12 16:14:02 505

原创 spring--容器初始执行 new AnnotationConfigApplicationContext(Appconfig)到底何时执行到扫描appcofig定义的包扫描的其他bean的

1.问题,sprng 上下文的 默认bean 5或7 个是什么时候放入的??–即要找到 谁在哪里调用,注册bean信息的,如下:上下文的父类维护了个bean 工厂(这个工厂中的map就是定义 了bean的类信息的),所以debug看在何时最先的调用此 工厂中 的注册bean的方法 regeisterBeanDefinition(xx)下面,根据调用站分析:...

2020-01-10 20:41:43 695 2

原创 spring学习--lifecycle callbacks

1.depends-on(依赖必须那个初始化后才…)–是否可以避免循环依赖2.mabits为spring写了3套官网–自己+spring+sprinboot如要spring用:就加入依赖 mybatis-sprinig有了它不需要自己去构造mabits的容器:,而可以直接用sqlsessionFactory是一个接口,默认实现为DefaultSqlsessionfactory仅仅自...

2020-01-06 19:32:49 174

原创 web工程环境配置相关

1.tomcat环境:以往(包括自己公司都是)是加一个tomcat手动,麻烦且落后–属于直接拿源码方式现在:利用maven插件直接pom中配置依赖jar–内嵌tomcat,属于利用maven拿tomcat 的jar包这样就可以直接启动这个配置类,相当于开启tomcat或者勇catania配置后就相当于当前工程拥有了tomcat的项目了--这个其实就是springboot内嵌to...

2020-01-06 13:43:55 167

原创 从list安全到vector到CopyOnWriteArrayList再到ReentrantReadWriteLock

list的add, get操作都不加锁,多线程不安全二。.vetor,----》读写都加sync重量级锁–>保证了安全 和 强的实时一致性但是结果:读锁 只能1个线程 同时读,不可写。写锁,只能一个线程写,同时不可读。一句话读写都是只能支持一个线程访问当然也就安全却性能差了三。.CopyOnWriteArrayList为vetor后juc的改良,其思想是 读写分离模式(但是缺点...

2019-12-31 13:35:16 257

原创 导入编译 spring源码遇到的问题!

1.先一直用19.3版本的idea始终报错,并且–2.改用19.1的idea, 至少可以看到右侧的gradle的中具体项目

2019-12-30 16:38:06 4130 4

原创 mysql的事务隔离级别

mysql默认是:可重复读解释:就是在当前这个事务中假如对一个数据读两次,而恰好在读第二次的时候有另一个事务将此条数据给修改提交成功了,此时事务a的第2次读取到的数据却还是当前事务第一次读取的值(即如果mysql的事务隔离级别设置为可重复读话,在一个事务中,一条数据的读取值始终会是一样的,不会由于其他事务对当前数据修改提交而受影响!感觉就像不能实时读取数据)其他数据库一般默认是:读以提交(我...

2019-12-27 16:50:39 147

原创 spring--利用spring完成工厂模式自动创建对象--FactoryBean接口实现扩展功能的实际运用--mabtis的分析

1.利用spring完成工厂模式自动创建对象(可以控制创建对象是单或多实例的!)

2019-12-26 22:11:09 298

原创 idea的类图使用uml

参考:https://blog.csdn.net/zj420964597/article/details/87856758其实自己已经完全自我摸索好了1.真的是牛皮啊如下:可以很容易就自动将自己写的所有相关类的关系画处理—添加类到图里,直接空格–快速建立所有类联系如下:dependeces–还可以保存,导出,打印–loyout:调整自己想要的形式...

2019-12-25 17:42:57 187 2

原创 算法工具演示--raft

1.在线网站http://thesecretlivesofdata.com/raft/

2019-12-24 19:00:22 255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除