描述了对象的一个值,这个值可以是构造函数的参数,也可以是一个字段的值。
它由两个属性,一个是值的类型,另外一个是 value。
赋值约定
- 如果 type 是 "null",则值会被认为是 null
- 如果 value 是 字符串,数字,布尔,那么 type 必须为 "normal"或 null
- 如果 value 是 数组, Collection 或 Map,那么类型也必须是 "normal"或 null,Ioc
容器的实现类会深层递归集合的每个元素。集合内的每个元素的值也可以是 IocValue,规则符合本约定
- 如果 value 是 IocObject,则表示这个值是一个内部匿名对象,type 必须为 "inner" 或者 null
- 如果 value 是字符串,表示另外一个对象的名称,type 必须是 "refer"
- 如果 value 是字符串,表示一个环境变量(通过System.getenv(String)),type 必须是 "env"
- 如果 value 是字符串,表示一个系统变量(通过System.getProperties().get(String)),type 必须是 "sys"
- 如果 value 是字符串,表示一个文件路径,type 必须是 "file"
- 如果 value 是字符串,表示一个 Java 调用,type 必须是 "java",具体值的语法,请参看 JavaValue 类的
JDoc,当然 Ioc 容器来解析执行它,不需要 IocLoader 操心 说明
- 你的 ValueProxyMaker 可以扩展这个约定