velocity初始化类结构图:
描述:
1.RuntimeConstants定义常量,主要是velociyt初始化的配置项的key
2.四个方法实现该接口主要是共用公共定义的常量,发现很多开源框架喜欢继承公共常量定义的接口来公用变量。
3.RuntimeInstance类是velocity初始化的具体实现,里面定义了初始的顺序和步骤,具体接下来分析
4.RuntimeSingleton是RuntimeInstance的包装类,做了当例和适配
5.velcoity类又是RuntimeInstance的适配器
6.VelocityEngine是组合了RuntimeInstance,在初始化时调用RuntimeInstance.init(),可以多例
7.velocity解析器要当例或者多例取决于应用场景,不过大部分应用场景会采用多例,即调用VelocityEngine作框架融合
8.先初始化默认配置项,再去根据overridingProperties是否有值,去覆盖默认配置
具体:
RuntimeServices:读取配置
org.apache.velocity.app.Velocity初始化细节分析:init():
initializeProperties():读取velcoity自带的velocity.properties配置文件