Forrest Hu's Blogs

技术、架构与生活随笔 · 共 449 篇文章

  1. 自己动手写spring(九) 总结

    前言作为一个使用轮子的程序员第一次写了轮子,感觉还是满兴奋的。笔者在看很多项目的源码时,经常是看了忘,忘了看。在反思这个现象时,笔者认为:很多代码固然很精巧,但因为读者没有设身处地考虑过实际的情景,对为什么要这样做没有直接的感觉,导致印象不深刻。还有一个重要原因是,大部分框...

  2. 自己动手写spring(五) bean的生命周期管理

    前言众所周知,使用Class的newInstance方法,就算是调用了bean的构造方法。bean是不能控制自己何年何月何日生(死)的,但bean可以和bean工厂约定一些规则(也就是实现特定的方法),决定下生死时刻要做些什么。bean生命周期管理,主要涉及到标签中的ini...

  3. 自己动手写spring(四) 整合xml与注解方式

    前言本文总结前文的内容,将两种方式整合在一起。再次强调,要实现bean工厂功能,首先要将bean信息加载到内存,由配置文件或注解方式转化为“以类的方式”存储,并以map的形式组织起来(为方便查询)。具体的说就是public class BeanFactory { priva...

  4. 自己动手写spring(三) 支持注解方式

    前言本文使用注解方式来读取bean类,并解决bean之间的依赖。其中Component和Value注解直接copy自Spring,Resource注解来自javax。扫描包中的所有类还是以前文提到的beanA和beanB两个model类为例(省略set和get方法)。@Co...

  5. 自己动手写spring(二) 创建一个bean工厂

    前言前文虽然以spring配置文件的样式,根据配置文件搞了一个类出来,但离工具化的应用还很远,本文再进一步。处理类之间的关系前文的例子只创建了较为简单的beanB类,现在我们创建beanA类。从模仿spring beanFactory的getBean方法开始。getBean...

  6. 自己动手写spring(一) 使用digester

    前言本来想熟悉下digester的使用,写着写着发现,可以搞一个类似spring的东西的来,将过程记录下来,与大家分享。例子中很多代码没有优化,基本没有异常处理和判空操作,这是我的一个坏习惯,先奔着目的去,实现成功后再重构。但这样的代码,更易看懂,优化后的代码反而掩盖了很多...

  7. varnish 简单使用

    ESI一个实例配置对所有请求都缓存5mvcl 4.0;backend default { .host = "192.168.56.155"; .port = "80";}sub vcl_recv { return (hash); # 进入缓存判断}sub...

  8. 关于docker image的那点事儿

    简介 打包所有依赖 镜像与操作系统的关系 容器文件系统往事 本地存储 制作镜像 build 时使用http代理 多阶段构建 entrypoint 和 cmd 镜像下载 docker login ...

  9. 基于docker搭建测试环境

    (已过时)当web项目开发完毕后,一般会在测试环境上运行一下,供开发部门调错和测试部门测试。对于具有一定业务规模的公司,几十个上百个web服务,每个服务分别占用一个tomcat目录,配置过程繁琐,且无法集中管理。此外,对于公司的新手来讲,需要一定的背景知识才可以上手。本文主...

  10. 消息/任务队列

    简介 linux的消息队列 本地队列 消息队列中间件 消息模型 rabbitmq的发布订阅模式 kafka的发布订阅模型 发布订阅模型小结 消息中间件的选型 消息队列监控 rab...