- 博客(21)
- 收藏
- 关注
原创 Spring源码(十三):Spring全系列总结
Spring总结篇,不同于之前抽丝剥茧式地纵向深入源码,本次从横向的角度出发,希望可以带个读者一个完全不同的Spring视角。2024年重置版,搞点不一样的东西。希望通过本篇的内容,将之前的文章全部给串起来。
2024-11-24 13:07:18
887
1
原创 Spring源码(十二):Spring MVC之Spring Boot
本篇将详细讨论Spring Boot 的启动/加载、处理请求的具体流程。我们先从一个简单的Spring Boot项目日志开始分析。
2024-11-10 17:49:26
1364
原创 Spring源码(十一):Spring MVC之DispatchServlet
本篇重点在于分析Spring MVC与Servlet标准的整合,下节将详细讨论Spring MVC的启动/加载流程、处理请求的具体流程。
2024-11-03 17:31:14
637
原创 Spring源码(十):Spring MVC之Bean的生命周期
Bean大家应该都了解,鉴于前面的文章介绍的细节过于纵向,因此我们单独开一篇文章介绍Spring Bean的全生命周期。从横向的视角,来看看在Bean初始化、填充属性、实例化的各个环节,我们都可以做哪些事情。下篇我们将详细分析Spring MVC与Servlet标准的整合,以及WebApplicationContext在Spring的应用。纸上得来终觉浅,绝知此事须躬行。花点时间,跟下代码和日志,你也会有自己的理解。理论前面已经讲得够多了,这次我们直接上测试代码,如下。1、Spring初始化日志。
2024-10-16 22:37:28
165
原创 Spring源码(九):Spring MVC之WebApplicationContext(二)
Spring中大部分功能都是通过后处理器的方式进行扩展的,这是Spring框架的一个特性,但是在BeanFactory中其实并没有实现后处理器的自动注册,所以在调用的时候如果没有进行手动注册,那么是不能使用的。那么使用BeanFactory方式进行Spring的bean的加载时不会有任何改变的,但是使用ApplicationContext方式获取bean的时候会在获取每个bean时打印相关信息,而这个特性就是在registerBeanPostProcessor方法中完成的。
2024-10-16 22:36:37
1120
原创 Spring源码(八):Spring MVC之WebApplicationContext(一)
本篇是Spring MVC基础篇,Spring MVC系列共4篇,四篇都是相辅相成的。当读者纵观Spring系列所有文章/来来回回/拼拼凑凑看完Spring MVC系列后,相信对Spring的理解肯定会上升n个档次(n与你现在的水平负相关且n > 1)。上篇说道ApplicationContext的功能比BeanFactory多,但具体多出那些功能还需要我们进一步探索。先从一个简单的xml文件开始。
2024-10-16 22:33:19
486
原创 Spring源码(六):Spring AOP(一)
IoC搞了这么久,终于来到了AOP。鉴于原文内容较多(近8.5万字),特地拆成上下两部分。第一部分主要讲理论,理论指导实践;第二部分主要深入源码层面,看下Spring是如何实现AOP的
2024-09-05 22:31:47
1307
原创 Spring源码(五):深入了解ApplicationContext
ApplicationContext和BeanFactory两者都是用于加载bean的,但是相比之下,ApplicationContext提供了更多的扩展功能,简单一点说:ApplicationContext包含BeanFactory的所有功能。通常建议比BeanFactory优先使用
2024-08-09 00:34:50
769
原创 Spring源码(四):bean的创建
本节紧接上一篇,深入讨论一个标准bean在Spring中究竟是如何生成&销毁的(重点关注Spring对bean的构造方法、注入字段、各种扩展方法的处理,以及围绕整个bean的全生命周期,Spring留了那些扩展点给用户实现)
2024-08-05 23:51:30
1051
原创 Spring源码(三):bean的加载-准备阶段
我们先来看下bean的加载-准备阶段,此阶段主要是为真正开始创建bean做好前置工作(如处理FactoryBean、提前设置创建bean相关变量、后处理器应用、解决循环依赖等)
2024-08-01 22:51:38
445
原创 Spring源码(二):Spring发动机
先简单地了解一下上面类图中的各个类的作用,如下(自上而下,自左向右):继承BeanFactory,也就是在BeanFactory定义的功能的基础上增加对parentFactory的支持。接口是对事物特性的封装展现,因此我们先看下DefaultListableBeanFactory所实现的接口的具体定义。自动装填的bean工厂接口,提供创建bean、自动注入、初始化以及应用bean的后处理器,代码如下。重点看下接口层面方法,具体的实现类先不细究(为了简化阅读,只保留了基础的方法,去掉大部分注释)。
2024-07-29 00:07:56
409
原创 Spring源码(一):Spring架构总览
Spring是2003年兴起的一个轻量级的Java开源框架,由Rod Johnson在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。Spring是为了解决企业应用开发的复杂性而创建的,它使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性可测试性和松耦合的角度而言,任何Java应用都可以从Spring中收益。
2024-07-21 23:00:24
853
原创 从零搭建ELK在线日志系统
ELK在线日志系统是指使用 Elasticsearch、Logstash 和 Kibana 这三个开源工具构建的一套日志管理和分析系统。ELK是由这三个工具的首字母组合而成的缩写。ELK在线日志系统能够帮助开发人员和运维人员对大量的日志数据进行实时分析、搜索和可视化展示,以快速定位和解决问题,提高系统的稳定性和性能。
2024-07-16 21:40:41
396
原创 让你的博客支持仿百度全文搜索!
都2024年了,不会还有技术人没有个人博客吧?不会个人博客还不支持仿百度全文搜索吧?哥哥~跟着我从零开始,让你的个人博客支持 ElasticSearch 全文搜索!PS:基于现有的博客系统引入新功能,只列举相关核心代码,供读者参考。
2024-07-15 18:29:35
310
原创 无敌的Arthas!
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。为了加深理解,本文准备了两个线上发生的实际例子,与大家一起分享(已做脱敏处理)。
2024-05-29 23:52:04
747
原创 认识Prometheus
Promehteus是一款近年来非常火热的容器监控系统,它使用go语言开发,设计思路来源于Google的Borgmom(一个监控容器平台的系统)。产品由前谷歌SRE Matt T.Proudd发起开发,并在其加入SoundCloud公司后,与另一位工程师Julius Volz合伙推出,将其开源发布。2016年,由Google发起的原生云基金会(Cloud Native Computing Foundation)将Prometheus纳入麾下,成为该基金会继Kubernetes后第二大开源项目。
2024-05-28 15:50:50
1180
原创 重新认识Lambda和Stream
Java 8就引入了 Lambda 和 Stream API,这两种特性平时在工作中也是经常使用,但一直没有机会进行全面地系统性总结,这次抽空来好好过一下。
2024-05-10 22:42:17
1088
原创 对于Docker和Podman的一点使用经验
本文会以多个实际的线上例子,分享自己对于Docker和Podman的一点使用经验及踩过的坑,希望对读者有一点帮助
2024-05-09 14:03:24
814
1
原创 测试博客
前言:这是一片测试博客。一、这是h2标题二、这是h3级标题三、这是h4四、这是h5标题(也就是普通文字)这是粗体、这是斜体,这是下划线、这是删除线 public class Main { public static void main(String[] args) { Systemp.out.println("Hello World");...
2019-01-01 16:08:44
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人