AI / Agent / System Design

把复杂系统讲清楚

记录 AI、Agent、系统设计与工程实践。内容以一线问题、长期方法和可复用经验为主。

Knowledge Map

按主题查看长期知识资产

如果你更关心我已经沉淀了哪些长期主题,而不只是最近写了什么,可以直接从知识地图进入。

查看知识地图

最新文章

quartz 源码分析

1 分钟阅读

简介 简介 从使用开始讲起 简单使用 与spring整合 源码分析 分布式定时(未完成) 从使用开始讲起 简单使用 如何使用分为两个部分:quartz独立使用,和Spring结合使用。之所以分开,是因为spring的存在,虽然增加了易用性,...

基于docker搭建测试环境(二)

2 分钟阅读

简介(已过时) 前文基于docker搭建测试环境展示了docker ci环境的搭建过程,本文将进一步丰富细节,主要讲述“将web项目编译,创建镜像以及将镜像部署到某个主机上,创建容器并运行”的脚本实现。 流程 脚本语言的选择 linux shell,操作swarm和registry,使用remo...

spring aop 实现原理简述

2 分钟阅读

简介 简介 编程思想 or 编程模型 使用 实现 源码分析 何时将 Pointcut替换为代理类 创建代理对象 拦截链的执行 其它 《spring源码深度解析》:我们知道,使用面向对象编程有一些弊端,当需要为多个不具有继承...

自己动手写spring(七) 类结构设计调整

1 分钟阅读

前言 前文的类设计比较简单粗暴,只为实现功能,本文对类设计做一些调整,避免一个类出现过多的代码。 分解BeanFactory 目前,BeanFactory主要有以下成员 public Class BeanFactory{ private Beans beans; // 实现id到bean对...

自己动手写spring(六) 支持FactoryBean

1 分钟阅读

前言 为什么需要工厂bean?回答这个问题,首先要回答下为什么需要工厂模式?简单说,就是不用new xxx()了。用new xxx()有什么不好呢?简单说就是:不能适应变化。对于传统的new xxx(),假设这个代码有10个地方使用,那么当xxx()改变时,你便要更改10个地方的代码(好吧,我承认,借助于ide...

自己动手写spring(九) 总结

少于 1 分钟阅读

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

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

1 分钟阅读

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

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

1 分钟阅读

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