- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 从字节码看try catch finally的return如何执行
文章是对两位博主的总结,提炼,原文如下链接:从字节码看try catch finally的return如何执行Java中try catch finally语句中含有return语句的执行情况(总结版)测试代码很简单,如下:Test.javapublic class Test { public int get() { try{ return ...
2020-01-16 17:50:48 169
原创 工具类:扫描包下所有类
package whitecat;import java.io.File;import java.io.FileInputStream;import java.net.URL;import java.util.*;import java.util.jar.JarEntry;import java.util.jar.JarInputStream;/** * 名称空间实用工具 *...
2020-01-20 19:57:07 196
原创 Spring源码概述
前置反射:程序运行状态时,能动态创建对象,操作对象(方法、属性)Spring 架构设计思想Spring创建对象过程:首先通过 BeanDefinationReader 接口将我们在profiles、annotation或者其他文件中的内容注入到Spring容器的bean信息中,在创建对象之前,先配置Spring的运行环境,然后通过BeanFactory创建实例对象。为了提高扩展性,我们希望...
2020-01-12 17:05:30 183
原创 springboot 2.2.2 源码详解(四):监听器
在看springboot的源码过程中,发现内部使用了大量的监听器,下面来看下监听器的作用。在springboot的监听器有如下两类:# Run Listeners#事件发布运行监听器,是springboot中配置的唯一一个应用运行监听器,作用是通过一个多路广播器,将springboot运行状态的变化,构建成事件,并广播给各个监听器org.springframework.boot.Sp...
2020-01-10 07:41:26 247
原创 SpringBoot 2.2.2 源码详解(三):SpringBoot内嵌tomcat
在使用springboot搭建一个web应用程序的时候,我们发现不需要自己搭建一个tomcat服务器,只需要引入spring-boot-starter-web,在应用启动时会自动启动嵌入式的tomcat作为服务器,下面来分析下源码的分析流程:之前已经讲过了自动装配的原理,其实tomcat的实现机制也是从自动装配开始的。1、ServletWebServerFactoryAutoConfigura...
2020-01-10 07:31:01 1435
原创 springboot运行原理
1、启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency> springboot-boot-starter:就是...
2020-01-09 07:35:57 157
原创 Springboot自动装配原理
springboot配置文件的装配过程1、springboot在启动的时候会加载主配置类,开启了@EnableAutoConfiguration。2、@EnableAutoConfiguration的作用:利用AutoConfigurationImportSelector给容器导入一些组件。查看selectImports方法的内容,返回一个AutoConfigurationEntry...
2020-01-09 07:25:42 607
原创 SpringBoot 2.2.2 源码详解(二):自动装配原理
1、在springboot的启动过程中,有一个步骤是创建上下文,如果不记得可以看下面的代码:public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContex...
2020-01-08 18:57:42 416
原创 SpringBoot 2.2.2 源码(二):启动流程二
上篇文章源码进行到如下位置命令行参数解析跟进DefaultApplicationArguments,不断追踪,会发现它是用来解析命令行参数的最终parse方法会返回命令行参数commandLineArgs环境配置prepareEnvironment进入prepareEnvironment方法继续追溯到getOrCreateEnvironment方法可以看到这里根据webA...
2020-01-06 20:11:45 205
原创 SpringBoot 2.2.2 源码(二):启动流程一
SpringBoot源码(一)在上一篇文章里,介绍了SpringBoot的初始化,在这一章节里将介绍run方法里面的内容跟踪进入run方法StopWatch该函数主要用来计算SpringBoot的启动时间ConfigurableApplicationContext接下来创建了一个ConfigurableApplicationContext对象,这个对象存储的是SpringBoot的...
2020-01-05 16:56:09 222
原创 SpringBoot 2.2.2 源码(一):构造方法初始化
前言源码主要按照SpringBoot启动流程顺序跟踪,翻译部分重要注释,并解释重要源码SpringApplication 启动类注释启动步骤在初始化之前,会对启动类里的成员变量进行赋值,然后进行初始化primarySources:传入的primarySources里是在main方法里边传入的主类名称SpringDataApplication,将其转换为集合对象放入集合中。Web...
2020-01-05 09:53:25 322
原创 SpringBoot 2.2.2 源码详解(一):启动过程
1、springboot的入口程序@SpringBootApplicationpublic class StartupApplication { public static void main(String[] args) { SpringApplication.run(StartupApplication.class, args); }}当程序开始执行...
2020-01-05 09:52:39 1214
转载 详解设计模式在Spring中的应用
设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。今天,在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”。Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范。好了,话不多说,开始今天的内容。spring中常用的设计模式...
2020-01-04 18:46:54 88
原创 常用设计模式及其在jdk中案例总结
观察者模式多个观察者监听同一个主题对象,是一种一对多的依赖关系,当主题对象发生变化时,会通知所有观察者对象。java.util.EventListenerjavax.servlet.http.HttpSessionBindingListenerjavax.servlet.http.HttpSessionAttributeListener装饰者模式Component 是一个接口或者是...
2020-01-04 18:41:22 380
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人