[SCB-1162]document for PriorityProperty/InjectProperties/InjectProperty
diff --git a/java-chassis-reference/en_US/SUMMARY.md b/java-chassis-reference/en_US/SUMMARY.md
index 8ec9234..70a98b5 100644
--- a/java-chassis-reference/en_US/SUMMARY.md
+++ b/java-chassis-reference/en_US/SUMMARY.md
@@ -67,6 +67,7 @@
   * [Thread Model](general-development/thread-model.md)
 * [Configuration](catalog/config.md)
   * [General config](config/general-config.md)
+  * [Configuration injection](config/inject-config.md)
 * [Service Capability Open](edge/open-service.md)
   * [Using Edge Service](edge/by-servicecomb-sdk.md)
   * [Using confd and Nginx as edge services](edge/nginx.md)
diff --git a/java-chassis-reference/en_US/config/inject-config.md b/java-chassis-reference/en_US/config/inject-config.md
new file mode 100644
index 0000000..b44c547
--- /dev/null
+++ b/java-chassis-reference/en_US/config/inject-config.md
@@ -0,0 +1,91 @@
+# Configuration injection
+ServiceComb provides the ability to inject configuration attributes into Java object fields and wildcard support.
+
+A Java object can be a Java Bean or a class with a public field.
+
+## Configure injection objects
+
+We first design two Java classes to inject configuration attributes to demonstrate scenarios where annotations are not used and where annotations are used.
+
+```Java
+/*
+Use ServiceComb annotations
+*/
+@InjectProperties(prefix = "root") //Specify the prefix of the configuration attribute associated with the model
+public class ConfigWithAnnotation {
+
+  /*
+  The prefix attribute value "override" here overrides the prefix attribute value "root" labeled in the @InjectProperties annotation of the class definition. The keys attribute can be an array of strings and the lower the subscript of the array element, the higher the priority.
+
+  Configuration attributes are searched by the attribute names in the following order until the configuration attributes that have been configured are found, then the search is stopped:
+	1)override.high
+  2)override.low
+	*/
+  @InjectProperty(prefix = "override", keys = {"high", "low"})
+  public String strValue;
+
+  //Keys support wildcards and specify wildcards'input objects when configuration attributes are injected.
+  @InjectProperty(keys = "${key}.value")
+  public int intValue;
+
+	//The wildcard's surrogate object can be a list of strings. Priority follows the strategy that the lower the subscript of array elements, the higher the priority.
+	@InjectProperty(keys = "${full-list}")
+  public float floatValue;
+
+  //The keys attribute also supports multiple wildcards, with priority as follows: first, the priority of wildcards decreases from left to right, and then, if wildcards are substituted into List, the lower the index of elements in List, the higher the priority strategy.
+  @InjectProperty(keys = "${low-list}.a.${high-list}.b")
+  public long longValue;
+
+	//Default values can be specified by the defaultValue attribute of the annotation. If the field is not associated with any configuration properties, the default values defined will take effect, otherwise the default values will be overwritten.
+  @InjectProperty(defaultValue = "abc")
+  public String strDef;
+
+}
+```
+
+```Java
+/*
+not use Service Comb annotations
+*/
+public class ConfigNoAnnotation {
+  /*
+  If the @InjectProperties and @InjectProperty annotations are not provided, the field name is used as the configuration property name by default. Note that class names do not function as prefixes.
+
+  Here, the configuration property strValue is bound to the field
+	*/
+  public String strValue;
+}
+```
+
+## Execution injection
+We can execute injection with the following sample code:
+
+Inject configuration properties into objects without `InjectProperties` and `InjectProperty` annotations:
+
+```Java
+ConfigNoAnnotation config = new ConfigObjectFactory().create(ConfigNoAnnotation.class);
+```
+
+Inject configuration properties into objects annotated with `InjectProperties` and `InjectProperty`:
+
+* Inject the configuration property named `root.k.value` into the intValue field of a ConfigWithAnnotation object
+* The `longValue` field of the `ConfigWithAnnotation` object is injected by looking up the configured configuration properties in the following order:
+  1.  root.low-1.a.high-1.b
+  2.  root.low-1.a.high-2.b
+  3.  root.low-2.a.high-1.b
+  4.  root.low-2.a.high-2.b
+* The `floatValue` field of the `ConfigWithAnnotation` object is injected by looking up the configured configuration properties in the following order:
+  1.  root.l1-1
+  2.  root.l1-2
+
+```Java
+ConfigWithAnnotation config = new ConfigObjectFactory().create(ConfigWithAnnotation.class,
+        "key", "k",
+        "low-list", Arrays.asList("low-1", "low-2"),
+        "high-list", Arrays.asList("high-1", "high-2"),
+		"full-list", Arrays.asList("l1-1", "l1-2")
+		);
+```
+
+## Reference resources
+Refer to the sample code: https://github.com/apache/servicecomb-java-chassis/blob/master/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/inject/TestConfigObjectFactory.java
diff --git a/java-chassis-reference/zh_CN/SUMMARY.md b/java-chassis-reference/zh_CN/SUMMARY.md
index 6890f24..2e1b08d 100644
--- a/java-chassis-reference/zh_CN/SUMMARY.md
+++ b/java-chassis-reference/zh_CN/SUMMARY.md
@@ -67,6 +67,7 @@
   * [线程模型](general-development/thread-model.md)
 * [配置](catalog/config.md)
   * [通用配置说明](config/general-config.md)
+  * [配置注入说明](config/inject-config.md)
 * [服务能力开放](edge/open-service.md)
   * [使用Edge Service做边缘服务](edge/by-servicecomb-sdk.md)
   * [使用confd和Nginx做边缘服务](edge/nginx.md)
diff --git a/java-chassis-reference/zh_CN/config/inject-config.md b/java-chassis-reference/zh_CN/config/inject-config.md
new file mode 100644
index 0000000..4dfa330
--- /dev/null
+++ b/java-chassis-reference/zh_CN/config/inject-config.md
@@ -0,0 +1,87 @@
+# 配置注入
+ServiceComb提供将配置属性注入到Java对象字段的特性,并提供通配符支持。
+Java对象可以是一个Java Bean,或是一个拥有public字段的类。
+
+## 配置注入对象
+我们首先设计两个Java类用于注入配置属性,分别用来演示不使用注解和使用注解的场景。
+
+```Java
+/*
+使用ServiceComb注解
+*/
+@InjectProperties(prefix = "root") //指定该model关联的配置属性的前缀
+public class ConfigWithAnnotation {
+
+  /*
+	此处的prefix属性值"override"会覆盖标注在类定义的@InjectProperties注解的prefix属性值"root",keys属性可以为一个字符串数组并且数组元素下标越小优先级越高
+	这里会按照如下顺序的属性名称查找配置属性,直到找到已被配置的配置属性,则停止查找:
+	1)override.high
+    2)override.low
+	*/
+  @InjectProperty(prefix = "override", keys = {"high", "low"})
+  public String strValue;
+
+  //keys支持通配符,并在可以在将配置属性注入的时候指定通配符的代入对象。
+  @InjectProperty(keys = "${key}.value")
+  public int intValue;
+
+	//通配符的代入对象可以是一个字符串List,优先级遵循数组元素下标越小优先级越高策略
+	@InjectProperty(keys = "${full-list}")
+  public float floatValue;
+
+  //keys属性也支持多个通配符,优先级如下:首先通配符的优先级从左到右递减,然后如果通配符被代入List,遵循List中元素index越小优先级越高策略。
+  @InjectProperty(keys = "${low-list}.a.${high-list}.b")
+  public long longValue;
+
+	//可以通过注解的defaultValue属性指定默认值。如果字段未关联任何配置属性,定义的默认值会生效,否则默认值会被覆盖
+  @InjectProperty(defaultValue = "abc")
+  public String strDef;
+
+}
+```
+
+```Java
+/*
+不使用ServiceComb注解
+*/
+public class ConfigNoAnnotation {
+    /*
+	如果未提供@InjectProperties和@InjectProperty注解,会默认使用字段名作为配置属性名。注意类名不作为前缀起作用。
+	此处将配置属性 strValue 绑定到该字段
+	*/
+  public String strValue;
+}
+```
+
+## 执行注入
+我们可以通过以下示例代码来执行注入:
+
+将配置属性注入到无`@InjectProperties`和`@InjectProperty`注解的对象上:
+
+```Java
+ConfigNoAnnotation config = new ConfigObjectFactory().create(ConfigNoAnnotation.class);
+```
+
+将配置属性注入到有`@InjectProperties`和`@InjectProperty`注解的对象上:
+
+* 将名称为root.k.value的配置属性注入到一个ConfigWithAnnotation对象的intValue字段
+* ConfigWithAnnotation对象的longValue字段按以下顺序查找已配置的配置属性进行注入:
+  1.  root.low-1.a.high-1.b
+  2.  root.low-1.a.high-2.b
+  3.  root.low-2.a.high-1.b
+  4.  root.low-2.a.high-2.b
+* ConfigWithAnnotation对象的floatValue字段按以下顺序查找已配置的配置属性进行注入:
+  1.  root.l1-1
+  2.  root.l1-2
+
+```Java
+ConfigWithAnnotation config = new ConfigObjectFactory().create(ConfigWithAnnotation.class,
+        "key", "k",
+        "low-list", Arrays.asList("low-1", "low-2"),
+        "high-list", Arrays.asList("high-1", "high-2"),
+		"full-list", Arrays.asList("l1-1", "l1-2")
+		);
+```
+
+## 参考
+示例代码请参考: https://github.com/apache/servicecomb-java-chassis/blob/master/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/inject/TestConfigObjectFactory.java