一马平川1

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2019年4月1日

摘要: 该方法目的是创建一个环境对象,并且根据环境类型,自动判断是创建web环境对象,还是标准非web环境对象. 首先该方法源于prepareEnvironment准备环境: 然后进入该方法源码: 可以发现:根据webEnvironment字段,可以判断要生成的环境的类型,此处添加了web环境的jar包,所 阅读全文
posted @ 2019-04-01 22:26 一马平川1 阅读(279) 评论(0) 推荐(0) 编辑

摘要: 容器启动时,监听器调用starting方法,本质是找到匹配的监听器,广播事件,开始监听 上节对寻找匹配监听器做了分析,其是这个过程比较重要的部分,本文开始监听,反而不是那么复杂,如下: 找匹配监听器就是从这里开始,找到后,直接遍历,调用invokeListener()方法,注意这个虽然有invoke 阅读全文
posted @ 2019-04-01 21:32 一马平川1 阅读(223) 评论(0) 推荐(0) 编辑

2019年3月26日

摘要: 1.首先调用starting()方法,其内部是一个对所有listener的starting()调用的for循环,然后每个listener调用另一个starting方法,其内部调用multicastEvent方法,其又调用其他multicastEvent方法,其又继续调用其他的multicastEve 阅读全文
posted @ 2019-03-26 23:42 一马平川1 阅读(823) 评论(0) 推荐(1) 编辑

摘要: 该方法目的是获取SpringApplicationRunListener getRunListener() 调用 > getSpringFactoriesInstances() 调用 > SpringFactoriesLoader.loadFactoryNames() 调用 > getResourc 阅读全文
posted @ 2019-03-26 20:53 一马平川1 阅读(257) 评论(0) 推荐(1) 编辑

摘要: 该方法只做了一件事:设置了一个名为java.awt.headless的系统属性,源码如下: 上述含义是: 给属性设值System.setProperty(),它的值来源于System.getProperty(),奇怪了,为什么把属性从一个地方取出来,然后又设置到同一个地方,这不是多此一举吗? 其实这 阅读全文
posted @ 2019-03-26 20:00 一马平川1 阅读(4139) 评论(0) 推荐(1) 编辑

2019年3月25日

摘要: 在不了解模板模式前,我以为它有多深奥多神秘呢,原来我们每天都在用. 模板模式,说白了,就是在一个方法中按照逻辑先后,把每个步骤用一个子方法包装起来,而本方法依次调用这些子方法,达到按清晰的顺序执行各步骤的目的. 比如SpringBoot启动流程中的configureEnvironment()方法就是 阅读全文
posted @ 2019-03-25 22:59 一马平川1 阅读(167) 评论(0) 推荐(0) 编辑

摘要: 我觉得策略模式就像公司的饮水机 出水口只有一个,当你按热水时出热水,当你按冷水时出冷水,虽然出水口都是一个,但是你点击了不同的策略,就得到了不同的结果. 如何实现: 一个接口,多个实现类(就是策略类),一个调用者 接口: 阅读全文
posted @ 2019-03-25 22:42 一马平川1 阅读(103) 评论(0) 推荐(0) 编辑

摘要: 1.Properties是一个hashTable子类,但它只装String类型的值2.一个Properties集中有一个子Properties集为它的默认属性集,如果在Properties中找不到相关的property,则会到默认集中找3.Properties不建议使用父类的put/putAll方法 阅读全文
posted @ 2019-03-25 21:53 一马平川1 阅读(178) 评论(0) 推荐(0) 编辑

摘要: 最近在学习源码的过程中发现:很多深层次的代码都用到了一个类System类,所以决定对System类一探究竟 本文先对System类进行了剖析,然后对System类做了总结 一.首先对该类的中的所有字段和方法进行了阅读,做好了中文翻译笔记,如下: System类学习笔记:1.最终类public fin 阅读全文
posted @ 2019-03-25 21:39 一马平川1 阅读(150) 评论(0) 推荐(0) 编辑

2019年2月26日

摘要: 今天在工作中遇到一种场景: 一个表格有10个列,要求当点击某列列头时,下拉展示该列的所有数据 解决的常规办法是根据传入的列参数值,判断是哪一列,使用switch()或者if-else判断过滤出哪一列的值 但这个办法太臃肿,如果有100个字段,那这个分支选择就太大了 所以采用反射,你传什么列名,我就给 阅读全文
posted @ 2019-02-26 22:26 一马平川1 阅读(170) 评论(0) 推荐(0) 编辑