计算日期间隔自然月份和天数 给定两个时间,startTime和endTime。计算这两个时间的间隔月份数,不是整月计算天数,月份数按照自然月来计算。举几个例子:startTime:2022-02-16 00:00:00endTime:2022-06-15 23:59:59这两个时间间隔4个月。startTime:2022-02 2022-05-17 算法
8.Spring底层原理之BeanFactory后处理器,模拟@MapperScan 我们扫描Mapper的时候,一般是配置@MapperScan注解,然后在注解中配置要扫描的路径。然后,Spring就会为我们创建Mapper对应的实现。在com.zhaojun.springsource.a05.mapper包下,有两个接口分别为@Mapperpublic interface Map 2022-05-13 spring
7.Spring底层原理之BeanFactory后处理器,模拟@Bean 上一节我们讲了如何模拟@ComponentScan进行组件扫描,这一节,我们模拟@Bean,来创建Bean。模拟@Bean我们还是用以前的方法,先获取Config类的元信息。把@Bean标注的方法信息都拿到public class A05Application { public static 2022-05-11 spring
6.Spring5底层原理之BeanFactory后处理器,模拟@ComponentScan 常见的BeanFactory后处理器为了演示常见的BeanFactory后处理器,我们来创建一些类。@Configuration@ComponentScan("com.zhaojun.springsource.a05.component")public class Config 2022-05-06 spring
5.Spring5底层原理之Bean后处理器执行流程分析 常见的Bean后处理器这章我们来看看常见的一些bean处理器,首先我们使用GenericApplicationContext,这个ApplicationContext是一个纯净的context,没有包含后处理器,方便我们后续观察。先上代码三个bean类public class Bean1 { 2022-04-22 spring
设计模式-模板方法模式 当我们知道一个业务流程或算法的关键步骤,并且也确定了步骤的执行顺序,但是某些步骤的具体实现还不能确定或者有多个方案。这时候就可以利用模板方法设计模式,将某些具体实现还不能确定或者有多个方案的方法,封装为一个抽象方法,子类通过继承父类来实现不同步骤的具体实现。整体的工作流程却由父类进行公职。举例一我们 2022-04-20 设计模式
4.Spring5底层原理之Bean的生命周期 这一节我们学习Bean的生命周期,为了了解Bean的生命周期,我们创建一个SpringBoot的启动类,然后写一个close方法,用来销毁Spring容器,用来观察bean的销毁过程。@SpringBootApplicationpublic class A03Application { pub 2022-04-19 spring
3.Spring5底层原理之ApplicationContext实现.md 这一章我们来看看创建ApplicationContext的几种方法。首先我们创建一个类进行测试,内容如下:public class A02Application { public static void main(String[] args) { testClassPathXml 2022-04-15 spring
2.Spring5底层原理之BeanFactory的实现 为了解BeanFactory的实现原理,我们来自己写一个例子。例子创建一个类,名字叫做TestBeanFactory,该类的内容如下public class TestBeanFactory { public static void main(String[] args) { 2022-04-01 spring