diff --git a/docs/404.html b/docs/404.html index 8f5b24e8..51784e7f 100644 --- a/docs/404.html +++ b/docs/404.html @@ -8,7 +8,7 @@ - + @@ -16,7 +16,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + \ No newline at end of file diff --git a/docs/advanced/async_executor.html b/docs/advanced/async_executor.html index 3c5fe31e..72919b7f 100644 --- a/docs/advanced/async_executor.html +++ b/docs/advanced/async_executor.html @@ -8,10 +8,10 @@ - + - + @@ -77,7 +77,7 @@ @Disassemble(type = Bean.class) private Bean nsetedBean; }

那么,当我们填充这 10 个 Bean 时,实际上总共需要完成 10 * (1 + 1) * 3 共 60 组操作。

为了保证尽可能减少查库次数,因此默认情况下,执行器会将 60 次填充按对应的数据源容器打包成两个任务提交给线程池完成:

上述这个逻辑的问题在于,当需要填充的对象越来越多,且需要映射的字段也越来越多时,反射读写字段消耗的时间也会越来越多,甚至可能会超过查库或 RPC 调用所消耗的时间。

此时,为了提高效率,你可以指定批量大小,将每一组操作再拆分为更细粒度的任务。比如,如果你可以指定批量大小为 20,那么第一个任务就会被拆成两份,此时实际上提交到线程池中的任务就是三个:

TIP

所有的执行器都支持设置批量大小,不过在同步执行时意义不大

- + \ No newline at end of file diff --git a/docs/advanced/cache.html b/docs/advanced/cache.html index cd28a00c..c3e6a6ed 100644 --- a/docs/advanced/cache.html +++ b/docs/advanced/cache.html @@ -8,10 +8,10 @@ - + - + @@ -135,7 +135,7 @@ }

如果在 Spring 环境,你将该管理器直接交由 Spring 容器管理即可,项目启动后将会自动注册。不过你也可以通过操作门面手动注册这个管理器:

java
Crane4jTemplate crane4jTemplate = SpringUtil.getBean(Crane4jTemplate.class);
 crane4jTemplate.opsForComponent()
   	.registerCacheManager(new CustomCacheManager());
- + \ No newline at end of file diff --git a/docs/advanced/callback_of_component.html b/docs/advanced/callback_of_component.html index 9bf7183d..d185c8dc 100644 --- a/docs/advanced/callback_of_component.html +++ b/docs/advanced/callback_of_component.html @@ -8,10 +8,10 @@ - + - + @@ -80,7 +80,7 @@ this.name = "尊敬的:" + this.name; } }

通过该回调接口,你可以更灵活的添加一些自定义的逻辑。

- + \ No newline at end of file diff --git a/docs/advanced/combination_annotation.html b/docs/advanced/combination_annotation.html index 500e26e3..f045b3e1 100644 --- a/docs/advanced/combination_annotation.html +++ b/docs/advanced/combination_annotation.html @@ -8,10 +8,10 @@ - + - + @@ -35,7 +35,7 @@ private Integer id; private String name; }

crane4j 几乎所有的注解都支持组合注解机制。

实际上,在非 Spring 环境,你也可以通过替换 AnnotationFinder 实现类似的功能(比如基于 Hutool 的 SynthesizedAnnotation )。

WARNING

注意,不支持解析复数可重复的组合注解,即若 A 是可重复注解,则当在一个元素上添加多个 A 时,将无法正确解析到该注解。

- + \ No newline at end of file diff --git a/docs/advanced/operation_annotation_handler.html b/docs/advanced/operation_annotation_handler.html index fd45ffad..179e7280 100644 --- a/docs/advanced/operation_annotation_handler.html +++ b/docs/advanced/operation_annotation_handler.html @@ -8,10 +8,10 @@ - + - + @@ -97,7 +97,7 @@ Crane4jTemplate crane4jTemplate = SpringUtil.getBean(Crane4jTemplate.class); crane4jTemplate.opsForComponent() .registerOperationAnnotationHandler(handler); - + \ No newline at end of file diff --git a/docs/advanced/operator_interface.html b/docs/advanced/operator_interface.html index b0e596e7..94dcec9d 100644 --- a/docs/advanced/operator_interface.html +++ b/docs/advanced/operator_interface.html @@ -8,10 +8,10 @@ - + - + @@ -120,7 +120,7 @@ }

在此处,@AutoOperate 注解的使用方式与自动填充中完全一致,具体内容请参见文档:触发填充-自动填充

3.方法工厂

与 Spring 中基于 @EventListener 注解的声明式监听器机制类似,操作者接口中抽象方法的适配基于不同的方法工厂 OperatorProxyMethodFactory 实现,默认的四种实现调用顺序如下:

当有多个方法工厂时,将会使用首个匹配的工厂去生成代理方法。因此,若有必要,用户也可以自行实现接口并提高工厂的优先级以替换默认策略。

在 Spring 环境中,只需将自定义工厂类声明为 Spring Bean,即可自动注册,不过你也可以通过操作门面手动注册:

java
Crane4jTemplate crane4jTemplate = SpringUtil.getBean(Crane4jTemplate.class);
 crane4jTemplate.opsForProxy()
     .registerOperatorProxyMethodFactory(new CustomMethodFactory());
- + \ No newline at end of file diff --git a/docs/advanced/reflection_factory.html b/docs/advanced/reflection_factory.html index cea9432d..80718d4b 100644 --- a/docs/advanced/reflection_factory.html +++ b/docs/advanced/reflection_factory.html @@ -8,10 +8,10 @@ - + - + @@ -25,7 +25,7 @@ PropertyOperator delegate = decoratedPropertyOperator.getPropertyOperator(); delegate = new CustomPropertyOperator(delegate); propertyOperatorHolder.setPropertyOperator(delegate);

WARNING

注意,装饰器是 crane4j 一些独特功能的来源,比如对 Map 对象的支持,或者对链式操作符的支持等,不过同时它们也会带来额外的性能消耗。

如果你更在乎性能,且用不到这些额外的功能,那么可以选择性的放弃一些装饰器。

- + \ No newline at end of file diff --git a/docs/advanced/type_converter.html b/docs/advanced/type_converter.html index 4dbb3cd3..1137abff 100644 --- a/docs/advanced/type_converter.html +++ b/docs/advanced/type_converter.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

类型转换器

crane4j 中有不少需要通过反射调用有参方法的场景,包括且不限于:

  • 在字段映射时调用的 setter 方法;
  • 从方法数据源容器调用适配方法以获取数据源;
  • 调用操作接口以填充对象的参数;

这些方法底层都依赖于类型转换器管理器 ConverterManager 来实现参数的自动转换。换句话说,如果方法的参数类型是 A,而输入的参数类型是 B,ConverterManager 将会自动尝试将 B 转换为 A 类型。

ConverterManager 目前提供了三套实现:

转换器说明使用情况
SimpleConverterManager直接通过 (R)t 这种方式强转,作用有限基本只在测试用例中使用
HutoolConverterManager基于 Hutool 的 Convert 实现,参见 Hutool 参考文档中的 自定义类型转换-ConverterRegistry 一节在非 Spring 环境中使用
SpringConverterManager基于 Spring 的 ConversionService 实现,功能强大在 Spring 环境下使用

基于此,如果你要添加新的类型转换器,那么在 Spring 环境,你只需要与 Spring 对接,而在非 Spring 环境,你只需要与 Hutool 对接。

不过,你也可以实现 ConverterManager 接口,定义你的自己的类型转换器。

- + \ No newline at end of file diff --git a/docs/assets/app.DOylvEfW.js b/docs/assets/app.BOX6W8hO.js similarity index 95% rename from docs/assets/app.DOylvEfW.js rename to docs/assets/app.BOX6W8hO.js index fb29578c..5a247a20 100644 --- a/docs/assets/app.DOylvEfW.js +++ b/docs/assets/app.BOX6W8hO.js @@ -1 +1 @@ -import{j as o,a5 as p,a6 as u,a7 as l,a8 as c,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,Y as P,d as _,u as v,l as y,z as C,af as E,ag as b,ah as w,ai as R}from"./chunks/framework.4aTu-Nia.js";import{t as S}from"./chunks/theme.t6V-Z8HN.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=_({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&E(),b(),w(),s.setup&&s.setup(),()=>R(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=L(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function L(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{D as createApp}; +import{j as o,a5 as p,a6 as u,a7 as l,a8 as c,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,Y as P,d as _,u as v,l as y,z as C,af as E,ag as b,ah as w,ai as R}from"./chunks/framework.4aTu-Nia.js";import{t as S}from"./chunks/theme.Bg6LE-Bp.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=_({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&E(),b(),w(),s.setup&&s.setup(),()=>R(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=L(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function L(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/docs/assets/basic_container_method_container.md.CjLNZMuu.js b/docs/assets/basic_container_method_container.md.DO6Zq6fD.js similarity index 99% rename from docs/assets/basic_container_method_container.md.CjLNZMuu.js rename to docs/assets/basic_container_method_container.md.DO6Zq6fD.js index ebb5e65f..99d785ba 100644 --- a/docs/assets/basic_container_method_container.md.CjLNZMuu.js +++ b/docs/assets/basic_container_method_container.md.DO6Zq6fD.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const t="/assets/image-20240505121816627.Dfq5w0uA.png",c=JSON.parse('{"title":"方法容器","description":"","frontmatter":{},"headers":[],"relativePath":"basic/container/method_container.md","filePath":"basic/container/method_container.md","lastUpdated":1717773258000}'),h={name:"basic/container/method_container.md"},p=n(`

方法容器

方法容器指以实例方法或静态方法作为数据源的容器,它是我们在日常中最经常使用的容器之一。

和其他的容器不同,方法容器通常不直接创建使用,而是通过在目标方法上添加注解的方式,将该方法 “声明” 为一个方法容器。你可以直接将带有容器方法的类交由 crane4j 进行解析,而在 Spring 环境中,crane4j 将会通过后处理器自动解析并注册。

crane4j 在设计上参考了 Spring 处理监听器注解 @EventListener 的责任链机制,它基于注解处理器 MethodContainerAnnotationProcessor 和方法容器工厂链 MethodContainerFactory 实现了扫描和适配的功能,你可以通过添加自己的 MethodContainerFactory 实现从而扩展这部分功能。

1.声明容器

你可以直接在类或方法上添加 @ContainerMethod 注解,在 Spring 环境中,当项目启动后,会在后处理阶段扫描该方法,并将其注册为一个方法容器。

声明在方法上

java
@ContainerMethod(
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const t="/assets/image-20240505121816627.Dfq5w0uA.png",c=JSON.parse('{"title":"方法容器","description":"","frontmatter":{},"headers":[],"relativePath":"basic/container/method_container.md","filePath":"basic/container/method_container.md","lastUpdated":1719745657000}'),h={name:"basic/container/method_container.md"},p=n(`

方法容器

方法容器指以实例方法或静态方法作为数据源的容器,它是我们在日常中最经常使用的容器之一。

和其他的容器不同,方法容器通常不直接创建使用,而是通过在目标方法上添加注解的方式,将该方法 “声明” 为一个方法容器。你可以直接将带有容器方法的类交由 crane4j 进行解析,而在 Spring 环境中,crane4j 将会通过后处理器自动解析并注册。

crane4j 在设计上参考了 Spring 处理监听器注解 @EventListener 的责任链机制,它基于注解处理器 MethodContainerAnnotationProcessor 和方法容器工厂链 MethodContainerFactory 实现了扫描和适配的功能,你可以通过添加自己的 MethodContainerFactory 实现从而扩展这部分功能。

1.声明容器

你可以直接在类或方法上添加 @ContainerMethod 注解,在 Spring 环境中,当项目启动后,会在后处理阶段扫描该方法,并将其注册为一个方法容器。

声明在方法上

java
@ContainerMethod(
     namespace = "onoToOneMethod",
     resultType = Foo.class, resultKey = "id" // 返回的数据源对象类型为 Foo,并且需要按 id 分组
 )
diff --git a/docs/assets/basic_container_method_container.md.CjLNZMuu.lean.js b/docs/assets/basic_container_method_container.md.DO6Zq6fD.lean.js
similarity index 87%
rename from docs/assets/basic_container_method_container.md.CjLNZMuu.lean.js
rename to docs/assets/basic_container_method_container.md.DO6Zq6fD.lean.js
index b02432f4..e3adb07b 100644
--- a/docs/assets/basic_container_method_container.md.CjLNZMuu.lean.js
+++ b/docs/assets/basic_container_method_container.md.DO6Zq6fD.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const t="/assets/image-20240505121816627.Dfq5w0uA.png",c=JSON.parse('{"title":"方法容器","description":"","frontmatter":{},"headers":[],"relativePath":"basic/container/method_container.md","filePath":"basic/container/method_container.md","lastUpdated":1717773258000}'),h={name:"basic/container/method_container.md"},p=n("",64),l=[p];function k(e,d,E,r,g,y){return a(),i("div",null,l)}const F=s(h,[["render",k]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const t="/assets/image-20240505121816627.Dfq5w0uA.png",c=JSON.parse('{"title":"方法容器","description":"","frontmatter":{},"headers":[],"relativePath":"basic/container/method_container.md","filePath":"basic/container/method_container.md","lastUpdated":1719745657000}'),h={name:"basic/container/method_container.md"},p=n("",64),l=[p];function k(e,d,E,r,g,y){return a(),i("div",null,l)}const F=s(h,[["render",k]]);export{c as __pageData,F as default};
diff --git a/docs/assets/basic_operation_sort.md.DA87PCXN.js b/docs/assets/basic_operation_sort.md.9FdGdiak.js
similarity index 67%
rename from docs/assets/basic_operation_sort.md.DA87PCXN.js
rename to docs/assets/basic_operation_sort.md.9FdGdiak.js
index f95d9f4c..0ac1a500 100644
--- a/docs/assets/basic_operation_sort.md.DA87PCXN.js
+++ b/docs/assets/basic_operation_sort.md.9FdGdiak.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const o=JSON.parse('{"title":"操作排序","description":"","frontmatter":{},"headers":[],"relativePath":"basic/operation_sort.md","filePath":"basic/operation_sort.md","lastUpdated":1717773258000}'),h={name:"basic/operation_sort.md"},t=n(`

操作排序

crane4j 中,操作的执行顺序基本按如下规则:

  • 同一个属性上的操作,按对应注解的声明顺序进行排序;
  • 同一个类中操作,按属性的声明顺序排序;
  • 同一个类继承树中的操作,按它们所属类在树中的高度排序,子类中的操作优先于父类;

不过因为各种原因,这个规则并不总是准确的,比如通过属性得到的注解顺序可能与代码中不一致,或者顺序不同的操作由于引用了同个数据源容器而被自动合并等等.....。

因此,如果你希望严格按照预期的顺序执行,那么你就需要显式的在配置时指定操作的执行顺序。

1.配置排序规则

通过 @Assemble 注解的 sort 属性可以指定操作值,其中:

  • 值越小,操作的排序越靠前;
  • @Assemble注解的sort属性优先于Spring的@Order注解;

例如:

java
public class Student {
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const c=JSON.parse('{"title":"操作排序","description":"","frontmatter":{},"headers":[],"relativePath":"basic/operation_sort.md","filePath":"basic/operation_sort.md","lastUpdated":1717773258000}'),h={name:"basic/operation_sort.md"},t=n(`

操作排序

crane4j 中,操作的执行顺序基本按如下规则:

  • 同一个属性上的操作,按对应注解的声明顺序进行排序;
  • 同一个类中操作,按属性的声明顺序排序;
  • 同一个类继承树中的操作,按它们所属类在树中的高度排序,子类中的操作优先于父类;

不过因为各种原因,这个规则并不总是准确的,比如通过属性得到的注解顺序可能与代码中不一致,或者顺序不同的操作由于引用了同个数据源容器而被自动合并等等.....。

因此,如果你希望严格按照预期的顺序执行,那么你就需要显式的在配置时指定操作的执行顺序。

1.配置排序规则

通过 @Assemble 注解的 sort 属性可以指定操作值,其中:

  • 值越小,操作的排序越靠前;
  • @Assemble注解的sort属性优先于Spring的@Order注解;

例如:

java
public class Student {
     
     // id1 -> id2
     @Assemble(container = "id", sort = 0, props = @Mapping(ref = "id2"))
@@ -20,7 +20,7 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const o
 @AutoOperate(type = Student.class, executorType = OrderedBeanOperationExecutor.class)
 public List<Student> listStudent(List<Integer> ids) {
     // do something
-}

TIP

  • 拆卸操作也可以排序,不过它总是先于装配操作完成,所以一般情况下对拆卸操作排序没什么意义;
  • 关于执行器,请参照 "基本概念" 一节中执行器部分内容;

3.与嵌套填充配合使用

出于批量操作的性能考虑,拆卸操作(即使用 @Disassemble 声明的嵌套填充操作)总是先于装配操作执行,因此你无法通过类似下面这种方式来指定两者的执行顺序

java
public class Dept {
+}

TIP

  • 拆卸操作也可以排序,不过它总是先于装配操作完成,所以一般情况下对拆卸操作排序没什么意义;
  • 关于执行器,请参照 "基本概念" 一节中执行器部分内容;

3.与嵌套填充配合使用

3.1.平铺操作执行器

出于批量操作的性能考虑,当使用默认的操作执行器时,拆卸操作(即使用 @Disassemble 声明的嵌套填充操作)总是先于装配操作执行,因此你无法通过类似下面这种方式来指定两者的执行顺序

java
public class Dept {
     
   	// 根据部门管理查询员工,然后填充到 emps 属性
     @Assemble(container = "emp", prop = ":emps", order = 1)
@@ -39,4 +39,31 @@ import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const o
   	Crane4jTemplate template = SpringUtil.getBean(Crane4jTemplate.class); // 获取操作门面进行手动填充
   	template.execute(emps);
   	return emps;
-}

TIP

`,31),p=[t];function l(k,e,E,d,r,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{o as __pageData,c as default}; +}

TIP

3.2.递归操作执行器

在 2.9.0 及以上版本,新增了三个支持递归填充的操作执行器,它们支持先执行装配操作,再执行拆卸操作,然后再对提取出来的嵌套对象执行装配操作……直到递归完成整个填充过程:

  • DisorderedBeanOperationRecursiveExecutor:递归版本的 DisorderedBeanOperationExecutor
  • OrderedBeanOperationRecursiveExecutor:递归版本的 OrderedBeanOperationExecutor
  • AsyncBeanOperationRecursiveExecutor:递归版本的 AsyncBeanOperationExecutor

它们的操作逻辑非常类似于树的递归构件过程,你可以基于下面的示例感受一下:

java
@Component
+public class NodeService {
+  	@ContainerMethod(namespace = "children", resultType = Node.class)
+  	public List<Node> selectChildrenNodesById(String nodeId) {
+      	// 根据节点ID查询子节点
+    }
+}
+
+@Data
+@RequiredArgsConstructor
+public static class Node {
+  	// 根据 ID 填充子节点,然后再递归子节点重复该填充过程
+    @Assemble(container = "children", prop = ":children")
+    private final Integer id;
+    private String name;
+    @Disassemble(type = Foo.class)
+    private List<Node> children;
+}
+
+@Service
+public class ExampleService {
+  
+  	// 指定执行器为无序的递归执行器
+  	@AutoOperate(executorType = OrderedBeanOperationRecursiveExecutor.class)
+  	public Node getTree(String id) {
+      	return new Node(0);
+    }
+}

在上述代码中,你只需返回一个根节点,执行器将根据你的配置为你完成树的构建。

TIP

WARNING

当前版本的递归执行器实际上是基于栈实现的,因此一般情况下不必担心栈溢出。

不过由于在每一层级都要进行查询,因此当层级过多的时候会比较影响性能,为了保证性能,请不要在非必要的场景使用该类型的执行器。

`,39),l=[t];function p(k,e,E,r,d,g){return a(),i("div",null,l)}const o=s(h,[["render",p]]);export{c as __pageData,o as default}; diff --git a/docs/assets/basic_operation_sort.md.9FdGdiak.lean.js b/docs/assets/basic_operation_sort.md.9FdGdiak.lean.js new file mode 100644 index 00000000..563349e7 --- /dev/null +++ b/docs/assets/basic_operation_sort.md.9FdGdiak.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const c=JSON.parse('{"title":"操作排序","description":"","frontmatter":{},"headers":[],"relativePath":"basic/operation_sort.md","filePath":"basic/operation_sort.md","lastUpdated":1717773258000}'),h={name:"basic/operation_sort.md"},t=n("",39),l=[t];function p(k,e,E,r,d,g){return a(),i("div",null,l)}const o=s(h,[["render",p]]);export{c as __pageData,o as default}; diff --git a/docs/assets/basic_operation_sort.md.DA87PCXN.lean.js b/docs/assets/basic_operation_sort.md.DA87PCXN.lean.js deleted file mode 100644 index b655b583..00000000 --- a/docs/assets/basic_operation_sort.md.DA87PCXN.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.4aTu-Nia.js";const o=JSON.parse('{"title":"操作排序","description":"","frontmatter":{},"headers":[],"relativePath":"basic/operation_sort.md","filePath":"basic/operation_sort.md","lastUpdated":1717773258000}'),h={name:"basic/operation_sort.md"},t=n("",31),p=[t];function l(k,e,E,d,r,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{o as __pageData,c as default}; diff --git a/docs/assets/chunks/@localSearchIndexroot.B8Cr8_z5.js b/docs/assets/chunks/@localSearchIndexroot.B8Cr8_z5.js deleted file mode 100644 index ed2a4512..00000000 --- a/docs/assets/chunks/@localSearchIndexroot.B8Cr8_z5.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":335,"nextId":335,"documentIds":{"0":"/advanced/async_executor.html#异步填充","1":"/advanced/async_executor.html#_1-启用执行器","2":"/advanced/async_executor.html#_2-使用执行器","3":"/advanced/async_executor.html#_2-1-在自动填充时使用","4":"/advanced/async_executor.html#_2-2-在手动填充时使用","5":"/advanced/async_executor.html#_2-3-在操作者接口中使用","6":"/advanced/async_executor.html#_3-批量大小","7":"/advanced/callback_of_component.html#组件的回调接口","8":"/advanced/callback_of_component.html#_1-容器生命周期处理器","9":"/advanced/callback_of_component.html#_2-容器生命周期接口","10":"/advanced/callback_of_component.html#_3-对象回调接口","11":"/advanced/cache.html#缓存","12":"/advanced/cache.html#_1-使用","13":"/advanced/cache.html#_1-1-通过注解配置","14":"/advanced/cache.html#_1-2-使用配置文件配置","15":"/advanced/cache.html#_3-3-手动配置","16":"/advanced/cache.html#_2-缓存管理器","17":"/advanced/cache.html#_2-1-指定缓存管理器","18":"/advanced/cache.html#_2-2-使用内置管理器","19":"/advanced/cache.html#_2-3-刷新缓存","20":"/advanced/cache.html#_3-自定义缓存","21":"/advanced/operation_annotation_handler.html#注解处理器","22":"/advanced/operation_annotation_handler.html#_1-内置处理器","23":"/advanced/operation_annotation_handler.html#_2-自定义注解处理器","24":"/advanced/combination_annotation.html#组合注解","25":"/advanced/reflection_factory.html#反射工厂","26":"/advanced/type_converter.html#类型转换器","27":"/advanced/operator_interface.html#操作者接口","28":"/advanced/operator_interface.html#_1-统一填充方法参数","29":"/advanced/operator_interface.html#_1-1-声明装配操作","30":"/advanced/operator_interface.html#_1-2-创建代理对象","31":"/advanced/operator_interface.html#_1-3-对入参进行填充","32":"/advanced/operator_interface.html#_1-4-指定执行器和解析器","33":"/advanced/operator_interface.html#_1-5-将其它参数作为数据源","34":"/advanced/operator_interface.html#_2-分别填充方法参数","35":"/advanced/operator_interface.html#_2-1-简单使用","36":"/advanced/operator_interface.html#_2-2-使用-autooperate-注解","37":"/advanced/operator_interface.html#_3-方法工厂","38":"/basic/assemble_operation_handler.html#装配处理器","39":"/basic/assemble_operation_handler.html#_1-一对一","40":"/basic/assemble_operation_handler.html#_2-一对多","41":"/basic/assemble_operation_handler.html#_2-1-使用一对多装配处理器","42":"/basic/assemble_operation_handler.html#_2-2-使用参数对象作为-key-值","43":"/basic/assemble_operation_handler.html#_3-多对多","44":"/basic/assemble_operation_handler.html#_3-1-使用多对多装配处理器","45":"/basic/assemble_operation_handler.html#_3-2-更换分隔符","46":"/basic/assemble_operation_handler.html#_3-3-拼接字符串","47":"/basic/container/constant_container.html#常量容器","48":"/basic/container/constant_container.html#_1-创建容器","49":"/basic/container/constant_container.html#_2-可配置项","50":"/basic/container/constant_container.html#_3-批量扫描","51":"/basic/container/constant_container.html#_4-选项式配置","52":"/basic/container/container_abstract.html#数据源容器","53":"/basic/container/container_provider.html#容器提供者","54":"/basic/container/container_provider.html#_1-创建并注册","55":"/basic/container/container_provider.html#_2-在配置中引用","56":"/basic/container/custom_container.html#自定义容器","57":"/basic/container/enum_container.html#枚举容器","58":"/basic/container/enum_container.html#_1-创建容器","59":"/basic/container/enum_container.html#_2-可配置项","60":"/basic/container/enum_container.html#_3-批量扫描","61":"/basic/container/enum_container.html#_4-选项式配置","62":"/basic/container/introspection_container.html#对象内省","63":"/basic/container/introspection_container.html#_1-对象内省","64":"/basic/container/introspection_container.html#_2-键值映射","65":"/basic/container/introspection_container.html#_2-1-配置","66":"/basic/container/introspection_container.html#_2-2-使用","67":"/basic/container/introspection_container.html#_2-3-获取注解元素","68":"/basic/container/lambda_container.html#lambda-容器","69":"/basic/container/map_container.html#集合容器","70":"/basic/container/method_container.html#方法容器","71":"/basic/container/method_container.html#_1-声明容器","72":"/basic/container/method_container.html#_2-可选配置项","73":"/basic/container/method_container.html#_3-对结果分组","74":"/basic/container/method_container.html#_4-接受参数对象","75":"/basic/container/method_container.html#_5-缓存","76":"/basic/container/method_container.html#_6-手动注册","77":"/basic/container/method_container.html#_7-包装类提取","78":"/basic/container/method_container.html#_8-空值处理","79":"/basic/container/method_container.html#_9-选项式配置","80":"/basic/container/object_container.html#对象容器","81":"/basic/container/register_container.html#注册数据源容器","82":"/basic/container/register_container.html#_1-自动注册","83":"/basic/container/register_container.html#_2-手动注册","84":"/basic/declare_assemble_operation.html#声明一个装配操作","85":"/basic/declare_assemble_operation.html#_1-声明装配操作","86":"/basic/declare_assemble_operation.html#_1-1-在属性上声明","87":"/basic/declare_assemble_operation.html#_1-2-在方法上声明","88":"/basic/declare_assemble_operation.html#_1-3-在类上声明","89":"/basic/declare_assemble_operation.html#_1-4-重复声明","90":"/basic/declare_assemble_operation.html#_2-显式指定key类型","91":"/basic/declare_assemble_operation.html#_3-键的解析策略","92":"/basic/declare_assemble_operation.html#_3-1-将属性值合成为参数对象","93":"/basic/declare_assemble_operation.html#_3-2-将字符串按分隔符拆分","94":"/basic/declare_assemble_operation.html#_3-3-为键值指定别名","95":"/basic/declare_assemble_operation.html#_3-4-自定义解析器","96":"/basic/declare_assemble_operation.html#_4-属性映射策略","97":"/basic/declare_assemble_operation.html#_4-1-指定策略","98":"/basic/declare_assemble_operation.html#_4-2-自定义策略","99":"/basic/declare_assemble_operation.html#_5-表达式支持","100":"/basic/declare_disassemble_operation.html#填充嵌套对象","101":"/basic/declare_disassemble_operation.html#_1-声明拆卸操作","102":"/basic/declare_disassemble_operation.html#_1-1-在属性上声明","103":"/basic/declare_disassemble_operation.html#_1-2-在方法上声明","104":"/basic/declare_disassemble_operation.html#_1-3-在类上声明","105":"/basic/declare_disassemble_operation.html#_1-3-递归拆卸","106":"/basic/declare_disassemble_operation.html#_2-自动推断类型","107":"/basic/declare_disassemble_operation.html#_3-拆卸操作处理器","108":"/basic/operation_condition.html#设置操作触发条件","109":"/basic/operation_condition.html#_1-使用","110":"/basic/operation_condition.html#_1-1-配置","111":"/basic/operation_condition.html#_1-2-绑定到操作","112":"/basic/operation_condition.html#_1-3-取反","113":"/basic/operation_condition.html#_1-4-组合","114":"/basic/operation_condition.html#_1-5-注解的作用域","115":"/basic/operation_condition.html#_2-内置注解","116":"/basic/operation_condition.html#_2-1-当表达式结果为真","117":"/basic/operation_condition.html#_2-2-当指定属性值等于指定值","118":"/basic/operation_condition.html#_2-3-当指定属性值非空","119":"/basic/operation_condition.html#_2-4-当填充对象为指定类型","120":"/basic/operation_condition.html#_2-5-当存在指定数据源容器","121":"/basic/operation_condition.html#_3-自定义条件","122":"/basic/operation_group.html#操作分组","123":"/basic/operation_group.html#_1-配置分组","124":"/basic/operation_group.html#_2-按操作组执行","125":"/basic/operation_sort.html#操作排序","126":"/basic/operation_sort.html#_1-配置排序规则","127":"/basic/operation_sort.html#_2-按顺序执行","128":"/basic/operation_sort.html#_2-1-手动填充","129":"/basic/operation_sort.html#_2-2-自动填充","130":"/basic/operation_sort.html#_3-与嵌套填充配合使用","131":"/basic/property_mapping.html#配置属性映射","132":"/basic/property_mapping.html#_1-属性到属性","133":"/basic/property_mapping.html#_1-1-同名属性","134":"/basic/property_mapping.html#_1-2-自动类型转换","135":"/basic/property_mapping.html#_2-对象到属性","136":"/basic/property_mapping.html#_3-属性到键","137":"/basic/property_mapping.html#_4-对象到键","138":"/basic/property_mapping.html#_5-批量映射","139":"/basic/property_mapping.html#_6-属性映射模板","140":"/basic/property_mapping.html#_7-链式操作符","141":"/basic/property_mapping.html#_8-属性映射策略","142":"/basic/property_mapping.html#_8-1-指定策略","143":"/basic/property_mapping.html#_8-2-自定义策略","144":"/basic/trigger_operation.html#触发操作","145":"/basic/trigger_operation.html#_1-手动填充","146":"/basic/trigger_operation.html#_2-自动填充","147":"/basic/trigger_operation.html#_2-1-配置","148":"/basic/trigger_operation.html#_2-2-自动类型推断","149":"/basic/trigger_operation.html#_2-3-包装类提取","150":"/basic/trigger_operation.html#_2-4-条件表达式","151":"/basic/trigger_operation.html#_2-5-指定分组","152":"/basic/trigger_operation.html#_2-6-指定执行器","153":"/basic/trigger_operation.html#_2-7-从注解元素获取配置","154":"/extension/jackson_extension.html#jackson-插件","155":"/extension/jackson_extension.html#_1-安装","156":"/extension/jackson_extension.html#_2-启用插件","157":"/extension/jackson_extension.html#_2-1-在-spring-环境","158":"/extension/jackson_extension.html#_2-2-在非-spring-环境","159":"/extension/jackson_extension.html#_2-使用","160":"/extension/jackson_extension.html#_3-可选配置","161":"/extension/mybatis_plus_extension.html#mybatisplus-插件","162":"/extension/mybatis_plus_extension.html#_1-安装","163":"/extension/mybatis_plus_extension.html#_2-注册mapper","164":"/extension/mybatis_plus_extension.html#_2-1-懒加载","165":"/extension/mybatis_plus_extension.html#_2-2-自动注册","166":"/extension/mybatis_plus_extension.html#_2-3-手动注册","167":"/extension/mybatis_plus_extension.html#_3-使用","168":"/extension/mybatis_plus_extension.html#_3-1-根据主键查询全部字段","169":"/extension/mybatis_plus_extension.html#_3-2-根据主键查询指定字段","170":"/extension/mybatis_plus_extension.html#_3-3-根据指定外键查询全部字段","171":"/extension/mybatis_plus_extension.html#_3-4-根据指定外键查询指定字段","172":"/extension/mybatis_plus_extension.html#_4-指定查询字段-sql","173":"/extension/mybatis_plus_extension.html#_5-对结果分组","174":"/extension/redis_extension.html#redis-插件","175":"/extension/redis_extension.html#_1-安装","176":"/extension/redis_extension.html#_2-启用缓存管理器","177":"/extension/redis_extension.html#_3-键前缀","178":"/extension/redis_extension.html#_4-清空缓存","179":"/other/How-To-Ask-Questions-The-Smart-Way.html#在提问之前","180":"/other/How-To-Ask-Questions-The-Smart-Way.html#当你提问时","181":"/other/How-To-Ask-Questions-The-Smart-Way.html#慎选提问的论坛","182":"/other/How-To-Ask-Questions-The-Smart-Way.html#stack-overflow","183":"/other/How-To-Ask-Questions-The-Smart-Way.html#网站和-irc-论坛","184":"/other/How-To-Ask-Questions-The-Smart-Way.html#第二步-使用项目邮件列表","185":"/other/How-To-Ask-Questions-The-Smart-Way.html#使用有意义且描述明确的标题","186":"/other/How-To-Ask-Questions-The-Smart-Way.html#使问题容易回复","187":"/other/How-To-Ask-Questions-The-Smart-Way.html#使用易于读取且标准的文件格式发送问题","188":"/other/How-To-Ask-Questions-The-Smart-Way.html#精确地描述问题并言之有物","189":"/other/How-To-Ask-Questions-The-Smart-Way.html#话不在多而在精","190":"/other/How-To-Ask-Questions-The-Smart-Way.html#别动辄声称找到-bug","191":"/other/How-To-Ask-Questions-The-Smart-Way.html#低声下气不能代替你的功课","192":"/other/How-To-Ask-Questions-The-Smart-Way.html#描述问题症状而非你的猜测","193":"/other/How-To-Ask-Questions-The-Smart-Way.html#按发生时间先后列出问题症状","194":"/other/How-To-Ask-Questions-The-Smart-Way.html#描述目标而不是过程","195":"/other/How-To-Ask-Questions-The-Smart-Way.html#别要求使用私人电邮回复","196":"/other/How-To-Ask-Questions-The-Smart-Way.html#清楚明确地表达你的问题以及需求","197":"/other/How-To-Ask-Questions-The-Smart-Way.html#询问有关代码的问题时","198":"/other/How-To-Ask-Questions-The-Smart-Way.html#别把自己家庭作业的问题贴上来","199":"/other/How-To-Ask-Questions-The-Smart-Way.html#去掉无意义的提问句","200":"/other/How-To-Ask-Questions-The-Smart-Way.html#即使你很急也不要在标题写紧急","201":"/other/How-To-Ask-Questions-The-Smart-Way.html#礼多人不怪-而且有时还很有帮助","202":"/other/How-To-Ask-Questions-The-Smart-Way.html#问题解决后-加个简短的补充说明","203":"/other/How-To-Ask-Questions-The-Smart-Way.html#如何解读答案","204":"/other/How-To-Ask-Questions-The-Smart-Way.html#rtfm-和-stfw-如何知道你已完全搞砸了","205":"/other/How-To-Ask-Questions-The-Smart-Way.html#如果还是搞不懂","206":"/other/How-To-Ask-Questions-The-Smart-Way.html#处理无礼的回应","207":"/other/How-To-Ask-Questions-The-Smart-Way.html#如何避免扮演失败者","208":"/other/How-To-Ask-Questions-The-Smart-Way.html#不该问的问题","209":"/other/How-To-Ask-Questions-The-Smart-Way.html#好问题与蠢问题","210":"/other/How-To-Ask-Questions-The-Smart-Way.html#如果得不到回答","211":"/other/How-To-Ask-Questions-The-Smart-Way.html#如何更好地回答问题","212":"/other/How-To-Ask-Questions-The-Smart-Way.html#相关资源","213":"/other/How-To-Ask-Questions-The-Smart-Way.html#鸣谢","214":"/other/changelog.html#_1-0-0-2023-03-23","215":"/other/changelog.html#_1-1-0-2023-03-30","216":"/other/changelog.html#_1-2-0-2023-04-09","217":"/other/changelog.html#_1-3-0-alpha-2023-05-10","218":"/other/changelog.html#_2-0-0-alpha-2023-07-08","219":"/other/changelog.html#_2-0-0-bate-2023-07-30","220":"/other/changelog.html#_2-0-0-2023-08-06","221":"/other/changelog.html#_2-1-0-2023-08-21","222":"/other/changelog.html#_2-2-0-2023-09-25","223":"/other/changelog.html#_2-3-0-2023-10-18","224":"/other/changelog.html#_2-3-1-2023-12-10","225":"/other/changelog.html#_2-4-0-2024-01-15","226":"/other/changelog.html#_2-5-0-2024-02-01","227":"/other/changelog.html#_2-6-0-2024-02-23","228":"/other/changelog.html#_2-6-1-2024-03-13","229":"/other/changelog.html#_2-6-2-2024-03-27","230":"/other/changelog.html#_2-7-0-2024-04-08","231":"/other/changelog.html#_2-8-0-2024-05-07","232":"/other/changelog.html#_2-8-1-2024-06-05","233":"/other/changelog.html#_2-8-2-2024-06-16","234":"/other/changelog.html#_2-9-0-2024-06-30","235":"/other/configuration_properties.html#配置文件","236":"/other/configuration_properties.html#_1-反射","237":"/other/configuration_properties.html#_1-1-是否启用字节码反射","238":"/other/configuration_properties.html#_1-2-是否支持处理map对象","239":"/other/configuration_properties.html#_1-3-是否支持链式操作符","240":"/other/configuration_properties.html#_2-容器","241":"/other/configuration_properties.html#_2-1-扫描常量容器","242":"/other/configuration_properties.html#_2-2-扫描枚举容器","243":"/other/configuration_properties.html#_2-3-扫描方法容器","244":"/other/configuration_properties.html#_2-4-容器缓存配置","245":"/other/configuration_properties.html#_3-自动填充","246":"/other/configuration_properties.html#_4-操作配置预解析","247":"/other/configuration_properties.html#_5-是否忽略-key-值为-null-的操作","248":"/use_case/example_additional_action.html#示例-如何在填充后进行附加操作","249":"/use_case/example_exclude_operation.html#示例-如何在执行时排除某些操作","250":"/use_case/example_exclude_operation.html#_1-进行分组填充","251":"/use_case/example_exclude_operation.html#_2-设置条件填充","252":"/use_case/example_exclude_operation.html#_3-手动排除","253":"/use_case/example_fill_enum.html#示例-如何基于枚举进行填充","254":"/use_case/example_fill_enum.html#_1-准备","255":"/use_case/example_fill_enum.html#_2-使用","256":"/use_case/example_fill_enum.html#_3-组合式配置","257":"/use_case/example_fill_method.html#示例-如何基于方法填充","258":"/use_case/example_fill_method.html#_1-准备","259":"/use_case/example_fill_method.html#_2-使用","260":"/use_case/example_fill_method.html#_3-选项式配置","261":"/use_case/example_fill_relations.html#示例-如何级联填充","262":"/use_case/example_fill_relations.html#_1-指定填充顺序","263":"/use_case/example_fill_relations.html#_2-在数据源层面处理级联关系","264":"/use_case/example_fill_wrapped_return_value.html#示例-如何填充被包装的返回值","265":"/use_case/example_fill_wrapped_return_value.html#_1-填充被包装的数据","266":"/use_case/example_fill_wrapped_return_value.html#_2-填充被多级包装的数据","267":"/use_case/example_multi_datasource.html#示例-如何填充一个复杂对象","268":"/use_case/example_multi_datasource.html#_1-原始代码","269":"/use_case/example_multi_datasource.html#_1-1-实体类与数据结构","270":"/use_case/example_multi_datasource.html#_1-2-实现代码","271":"/use_case/example_multi_datasource.html#_2-使用选项式风格配置","272":"/use_case/example_multi_datasource.html#_3-使用组合式风格配置","273":"/use_case/example_multi_datasource.html#_4-使用组合注解简化配置","274":"/use_case/example_multi_key.html#示例-如何通过多个key关联数据","275":"/use_case/example_multi_key.html#_1-使用对象容器","276":"/use_case/example_multi_key.html#_2-使用方法容器","277":"/use_case/example_multi_key.html#_3-配合容器提供者使用","278":"/user_guide/basic_concept.html#基本概念","279":"/user_guide/basic_concept.html#_1-全局配置","280":"/user_guide/basic_concept.html#_2-数据源容器","281":"/user_guide/basic_concept.html#_3-操作配置-解析器","282":"/user_guide/basic_concept.html#_4-注解处理器","283":"/user_guide/basic_concept.html#_5-操作执行器","284":"/user_guide/basic_concept.html#_6-填充方式","285":"/user_guide/basic_concept.html#_7-配置风格","286":"/user_guide/faq.html#faq","287":"/user_guide/faq.html#填充不生效","288":"/user_guide/faq.html#如何实现嵌套填充","289":"/user_guide/faq.html#如何实现级联填充","290":"/user_guide/faq.html#如何处理一对多的情况","291":"/user_guide/faq.html#键字段可以是按分隔符拼接的字符串吗","292":"/user_guide/faq.html#键字段可以是集合或数组吗","293":"/user_guide/faq.html#为什么使用异步执行器的时候报错","294":"/user_guide/faq.html#怎么刷新容器的数据","295":"/user_guide/faq.html#怎么忽略掉某些字段不进行填充","296":"/user_guide/faq.html#为什么-containermethod-注解不生效","297":"/user_guide/faq.html#为什么-autooperate-注解不生效","298":"/user_guide/faq.html#为什么引了-guava-和-hutool","299":"/user_guide/faq.html#支持-jdk9-springboot3-吗","300":"/user_guide/faq.html#容器可以做一些自定义的初始化-销毁操作吗","301":"/user_guide/faq.html#可以支持同时根据多个-key-字段填充数据吗","302":"/user_guide/faq.html#启动应用报错-no-servletcontext-set","303":"/user_guide/faq.html#可以多线程填充吗","304":"/user_guide/getting_started/getting_started_abstract.html#快速开始","305":"/user_guide/getting_started/getting_started_with_spring.html#在-spring-环境使用","306":"/user_guide/getting_started/getting_started_with_spring.html#_1-安装","307":"/user_guide/getting_started/getting_started_with_spring.html#_2-启用配置","308":"/user_guide/getting_started/getting_started_with_spring.html#_3-配置数据源","309":"/user_guide/getting_started/getting_started_with_spring.html#_4-配置填充操作","310":"/user_guide/getting_started/getting_started_with_spring.html#_5-触发填充","311":"/user_guide/getting_started/getting_started_with_spring.html#_5-1-手动填充","312":"/user_guide/getting_started/getting_started_with_spring.html#_5-2-自动填充","313":"/user_guide/getting_started/getting_started_with_spring.html#_6-完整代码","314":"/user_guide/getting_started/getting_started_with_springboot.html#在-springboot-环境使用","315":"/user_guide/getting_started/getting_started_with_springboot.html#_1-安装","316":"/user_guide/getting_started/getting_started_with_springboot.html#_2-配置数据源","317":"/user_guide/getting_started/getting_started_with_springboot.html#_3-配置填充操作","318":"/user_guide/getting_started/getting_started_with_springboot.html#_4-触发填充","319":"/user_guide/getting_started/getting_started_with_springboot.html#_4-1-手动填充","320":"/user_guide/getting_started/getting_started_with_springboot.html#_4-2-自动填充","321":"/user_guide/getting_started/getting_started_with_springboot.html#_5-完整代码","322":"/user_guide/getting_started/getting_started_without_spring.html#在非-spring-环境使用","323":"/user_guide/getting_started/getting_started_without_spring.html#_1-安装","324":"/user_guide/getting_started/getting_started_without_spring.html#_2-创建全局配置","325":"/user_guide/getting_started/getting_started_without_spring.html#_3-配置数据源","326":"/user_guide/getting_started/getting_started_without_spring.html#_4-配置填充操作","327":"/user_guide/getting_started/getting_started_without_spring.html#_5-触发操作","328":"/user_guide/getting_started/getting_started_without_spring.html#_6-完整代码","329":"/user_guide/operational_principle.html#原理","330":"/user_guide/what_is_crane4j.html#简介","331":"/user_guide/what_is_crane4j.html#_1-什么是字段填充","332":"/user_guide/what_is_crane4j.html#_2-用-crane4j-怎么做","333":"/user_guide/what_is_crane4j.html#_3-为什么需要-crane4j","334":"/user_guide/what_is_crane4j.html#_4-如何开始使用"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,19],"1":[2,1,77],"2":[2,1,1],"3":[3,2,27],"4":[2,2,18],"5":[3,2,31],"6":[2,1,95],"7":[1,1,7],"8":[2,1,53],"9":[2,1,65],"10":[2,1,70],"11":[1,1,31],"12":[2,1,1],"13":[2,3,92],"14":[3,3,25],"15":[2,3,41],"16":[2,1,34],"17":[3,3,52],"18":[2,3,62],"19":[3,3,49],"20":[2,1,86],"21":[1,1,31],"22":[2,1,23],"23":[2,1,167],"24":[1,1,68],"25":[1,1,86],"26":[1,1,61],"27":[1,1,58],"28":[2,1,1],"29":[2,3,45],"30":[3,3,57],"31":[3,3,24],"32":[3,3,33],"33":[3,3,98],"34":[2,1,11],"35":[3,3,57],"36":[4,3,28],"37":[2,1,48],"38":[1,1,36],"39":[2,1,26],"40":[2,1,38],"41":[3,3,33],"42":[4,3,50],"43":[2,1,28],"44":[3,3,52],"45":[3,3,43],"46":[2,3,48],"47":[1,1,7],"48":[2,1,50],"49":[2,1,66],"50":[2,1,51],"51":[2,1,73],"52":[1,1,55],"53":[1,1,31],"54":[2,1,30],"55":[2,1,48],"56":[1,1,68],"57":[1,1,9],"58":[2,1,56],"59":[2,1,67],"60":[2,1,59],"61":[2,1,77],"62":[1,1,1],"63":[2,1,27],"64":[2,1,12],"65":[3,3,46],"66":[2,3,20],"67":[3,3,75],"68":[2,1,49],"69":[1,1,34],"70":[1,1,27],"71":[2,1,105],"72":[2,1,61],"73":[2,1,89],"74":[2,1,63],"75":[2,1,43],"76":[2,1,24],"77":[2,1,52],"78":[2,1,31],"79":[2,1,97],"80":[1,1,96],"81":[1,1,1],"82":[2,1,48],"83":[2,1,21],"84":[1,1,34],"85":[2,1,6],"86":[2,3,72],"87":[3,3,31],"88":[3,3,40],"89":[3,3,42],"90":[2,1,73],"91":[2,1,17],"92":[3,3,70],"93":[3,3,42],"94":[2,3,50],"95":[3,3,26],"96":[2,1,18],"97":[3,3,55],"98":[3,3,23],"99":[2,1,29],"100":[1,1,12],"101":[2,1,8],"102":[2,3,28],"103":[3,3,28],"104":[3,3,22],"105":[3,3,27],"106":[2,1,30],"107":[2,1,35],"108":[1,1,13],"109":[2,1,1],"110":[2,3,50],"111":[3,3,30],"112":[3,3,25],"113":[3,3,50],"114":[3,3,27],"115":[2,1,1],"116":[3,3,37],"117":[2,3,62],"118":[3,3,51],"119":[3,3,39],"120":[3,3,24],"121":[2,1,118],"122":[1,1,18],"123":[2,1,58],"124":[2,1,54],"125":[1,1,19],"126":[2,1,43],"127":[2,1,12],"128":[3,3,23],"129":[2,3,32],"130":[2,1,78],"131":[1,1,46],"132":[2,1,48],"133":[2,3,33],"134":[3,3,9],"135":[2,1,40],"136":[2,1,43],"137":[2,1,34],"138":[2,1,84],"139":[2,1,48],"140":[2,1,53],"141":[2,1,18],"142":[3,3,45],"143":[3,3,108],"144":[1,1,17],"145":[2,1,44],"146":[2,1,34],"147":[3,3,43],"148":[2,3,30],"149":[3,3,76],"150":[3,3,60],"151":[3,3,36],"152":[3,3,37],"153":[3,3,52],"154":[2,1,27],"155":[2,2,31],"156":[2,2,9],"157":[5,4,31],"158":[4,4,32],"159":[2,2,114],"160":[2,2,39],"161":[2,1,10],"162":[2,2,32],"163":[2,2,8],"164":[3,4,13],"165":[2,4,28],"166":[3,4,12],"167":[2,2,44],"168":[3,4,28],"169":[3,4,40],"170":[2,4,24],"171":[3,4,35],"172":[3,2,57],"173":[2,2,54],"174":[2,1,13],"175":[2,1,31],"176":[2,1,57],"177":[2,1,84],"178":[2,1,47],"179":[1,1,91],"180":[1,1,1],"181":[1,1,78],"182":[2,1,52],"183":[3,1,45],"184":[2,1,61],"185":[1,1,100],"186":[1,1,18],"187":[1,1,78],"188":[1,1,35],"189":[1,1,16],"190":[2,1,37],"191":[1,1,18],"192":[1,1,72],"193":[1,1,27],"194":[1,1,25],"195":[1,1,22],"196":[1,1,35],"197":[1,1,51],"198":[1,1,16],"199":[1,1,22],"200":[1,1,37],"201":[2,1,28],"202":[2,1,62],"203":[1,1,1],"204":[4,1,41],"205":[1,1,30],"206":[1,1,46],"207":[1,1,72],"208":[1,1,124],"209":[1,1,125],"210":[1,1,42],"211":[1,1,61],"212":[1,1,8],"213":[1,1,7],"214":[6,1,56],"215":[6,1,28],"216":[7,1,35],"217":[8,1,59],"218":[7,1,51],"219":[7,1,43],"220":[6,1,85],"221":[7,1,45],"222":[6,1,66],"223":[7,1,36],"224":[7,1,7],"225":[7,1,31],"226":[7,1,52],"227":[7,1,37],"228":[7,1,8],"229":[6,1,8],"230":[7,1,39],"231":[7,1,55],"232":[7,1,16],"233":[6,1,17],"234":[7,1,57],"235":[1,1,7],"236":[2,1,1],"237":[2,3,21],"238":[3,3,16],"239":[3,3,10],"240":[2,1,1],"241":[3,3,17],"242":[2,3,24],"243":[3,3,15],"244":[3,3,15],"245":[2,1,18],"246":[2,1,21],"247":[6,1,35],"248":[2,1,66],"249":[2,1,32],"250":[2,2,45],"251":[2,2,44],"252":[2,2,73],"253":[2,1,8],"254":[2,2,52],"255":[2,2,97],"256":[2,2,55],"257":[2,1,8],"258":[2,2,52],"259":[2,2,90],"260":[2,2,59],"261":[2,1,8],"262":[2,2,67],"263":[2,2,110],"264":[2,1,11],"265":[2,2,49],"266":[2,2,37],"267":[2,1,10],"268":[2,2,5],"269":[2,4,38],"270":[3,4,98],"271":[2,2,67],"272":[2,2,65],"273":[2,2,61],"274":[2,1,33],"275":[2,2,102],"276":[2,2,68],"277":[2,2,62],"278":[1,1,14],"279":[2,1,25],"280":[2,1,85],"281":[4,1,91],"282":[2,1,14],"283":[2,1,53],"284":[2,1,43],"285":[2,1,105],"286":[1,1,4],"287":[2,1,62],"288":[2,1,6],"289":[2,1,5],"290":[2,1,21],"291":[2,1,21],"292":[2,1,22],"293":[2,1,8],"294":[2,1,16],"295":[2,1,5],"296":[4,1,18],"297":[4,1,25],"298":[5,1,19],"299":[5,1,2],"300":[3,1,7],"301":[4,1,5],"302":[5,1,25],"303":[2,1,7],"304":[1,1,30],"305":[3,1,8],"306":[2,3,43],"307":[2,3,39],"308":[2,3,46],"309":[2,3,35],"310":[2,3,7],"311":[3,5,27],"312":[3,5,41],"313":[2,3,77],"314":[3,1,8],"315":[2,3,50],"316":[2,3,46],"317":[2,3,35],"318":[2,3,7],"319":[3,5,27],"320":[3,5,41],"321":[2,3,76],"322":[3,1,8],"323":[2,3,28],"324":[2,3,8],"325":[2,3,43],"326":[2,3,35],"327":[2,3,29],"328":[2,3,65],"329":[1,1,48],"330":[1,1,38],"331":[3,1,80],"332":[5,1,48],"333":[4,1,58],"334":[3,1,15]},"averageFieldLength":[2.4298507462686554,1.7313432835820892,40.650746268656704],"storedFields":{"0":{"title":"异步填充","titles":[]},"1":{"title":"1.启用执行器","titles":[]},"2":{"title":"2.使用执行器","titles":[]},"3":{"title":"2.1.在自动填充时使用","titles":["2.使用执行器"]},"4":{"title":"2.2.在手动填充时使用","titles":["2.使用执行器"]},"5":{"title":"2.3.在操作者接口中使用","titles":["2.使用执行器"]},"6":{"title":"3.批量大小","titles":[]},"7":{"title":"组件的回调接口","titles":[]},"8":{"title":"1.容器生命周期处理器","titles":["组件的回调接口"]},"9":{"title":"2.容器生命周期接口","titles":["组件的回调接口"]},"10":{"title":"3.对象回调接口","titles":["组件的回调接口"]},"11":{"title":"缓存","titles":[]},"12":{"title":"1.使用","titles":["缓存"]},"13":{"title":"1.1.通过注解配置","titles":["缓存","1.使用"]},"14":{"title":"1.2.使用配置文件配置","titles":["缓存","1.使用"]},"15":{"title":"3.3.手动配置","titles":["缓存","1.使用"]},"16":{"title":"2.缓存管理器","titles":["缓存"]},"17":{"title":"2.1.指定缓存管理器","titles":["缓存","2.缓存管理器"]},"18":{"title":"2.2.使用内置管理器","titles":["缓存","2.缓存管理器"]},"19":{"title":"2.3.刷新缓存","titles":["缓存","2.缓存管理器"]},"20":{"title":"3.自定义缓存","titles":["缓存"]},"21":{"title":"注解处理器","titles":[]},"22":{"title":"1.内置处理器","titles":["注解处理器"]},"23":{"title":"2.自定义注解处理器","titles":["注解处理器"]},"24":{"title":"组合注解","titles":[]},"25":{"title":"反射工厂","titles":[]},"26":{"title":"类型转换器","titles":[]},"27":{"title":"操作者接口","titles":[]},"28":{"title":"1.统一填充方法参数","titles":["操作者接口"]},"29":{"title":"1.1.声明装配操作","titles":["操作者接口","1.统一填充方法参数"]},"30":{"title":"1.2.创建代理对象","titles":["操作者接口","1.统一填充方法参数"]},"31":{"title":"1.3.对入参进行填充","titles":["操作者接口","1.统一填充方法参数"]},"32":{"title":"1.4.指定执行器和解析器","titles":["操作者接口","1.统一填充方法参数"]},"33":{"title":"1.5.将其它参数作为数据源","titles":["操作者接口","1.统一填充方法参数"]},"34":{"title":"2.分别填充方法参数","titles":["操作者接口"]},"35":{"title":"2.1.简单使用","titles":["操作者接口","2.分别填充方法参数"]},"36":{"title":"2.2.使用 @AutoOperate 注解","titles":["操作者接口","2.分别填充方法参数"]},"37":{"title":"3.方法工厂","titles":["操作者接口"]},"38":{"title":"装配处理器","titles":[]},"39":{"title":"1.一对一","titles":["装配处理器"]},"40":{"title":"2.一对多","titles":["装配处理器"]},"41":{"title":"2.1.使用一对多装配处理器","titles":["装配处理器","2.一对多"]},"42":{"title":"2.2.使用参数对象作为 Key 值","titles":["装配处理器","2.一对多"]},"43":{"title":"3.多对多","titles":["装配处理器"]},"44":{"title":"3.1.使用多对多装配处理器","titles":["装配处理器","3.多对多"]},"45":{"title":"3.2.更换分隔符","titles":["装配处理器","3.多对多"]},"46":{"title":"3.3.拼接字符串","titles":["装配处理器","3.多对多"]},"47":{"title":"常量容器","titles":[]},"48":{"title":"1.创建容器","titles":["常量容器"]},"49":{"title":"2.可配置项","titles":["常量容器"]},"50":{"title":"3.批量扫描","titles":["常量容器"]},"51":{"title":"4.选项式配置","titles":["常量容器"]},"52":{"title":"数据源容器","titles":[]},"53":{"title":"容器提供者","titles":[]},"54":{"title":"1.创建并注册","titles":["容器提供者"]},"55":{"title":"2.在配置中引用","titles":["容器提供者"]},"56":{"title":"自定义容器","titles":[]},"57":{"title":"枚举容器","titles":[]},"58":{"title":"1.创建容器","titles":["枚举容器"]},"59":{"title":"2.可配置项","titles":["枚举容器"]},"60":{"title":"3.批量扫描","titles":["枚举容器"]},"61":{"title":"4.选项式配置","titles":["枚举容器"]},"62":{"title":"对象内省","titles":[]},"63":{"title":"1.对象内省","titles":["对象内省"]},"64":{"title":"2.键值映射","titles":["对象内省"]},"65":{"title":"2.1.配置","titles":["对象内省","2.键值映射"]},"66":{"title":"2.2.使用","titles":["对象内省","2.键值映射"]},"67":{"title":"2.3.获取注解元素","titles":["对象内省","2.键值映射"]},"68":{"title":"Lambda 容器","titles":[]},"69":{"title":"集合容器","titles":[]},"70":{"title":"方法容器","titles":[]},"71":{"title":"1.声明容器","titles":["方法容器"]},"72":{"title":"2.可选配置项","titles":["方法容器"]},"73":{"title":"3.对结果分组","titles":["方法容器"]},"74":{"title":"4.接受参数对象","titles":["方法容器"]},"75":{"title":"5.缓存","titles":["方法容器"]},"76":{"title":"6.手动注册","titles":["方法容器"]},"77":{"title":"7.包装类提取","titles":["方法容器"]},"78":{"title":"8.空值处理","titles":["方法容器"]},"79":{"title":"9.选项式配置","titles":["方法容器"]},"80":{"title":"对象容器","titles":[]},"81":{"title":"注册数据源容器","titles":[]},"82":{"title":"1..自动注册","titles":["注册数据源容器"]},"83":{"title":"2.手动注册","titles":["注册数据源容器"]},"84":{"title":"声明一个装配操作","titles":[]},"85":{"title":"1.声明装配操作","titles":["声明一个装配操作"]},"86":{"title":"1.1.在属性上声明","titles":["声明一个装配操作","1.声明装配操作"]},"87":{"title":"1.2.在方法上声明","titles":["声明一个装配操作","1.声明装配操作"]},"88":{"title":"1.3.在类上声明","titles":["声明一个装配操作","1.声明装配操作"]},"89":{"title":"1.4.重复声明","titles":["声明一个装配操作","1.声明装配操作"]},"90":{"title":"2.显式指定key类型","titles":["声明一个装配操作"]},"91":{"title":"3.键的解析策略","titles":["声明一个装配操作"]},"92":{"title":"3.1.将属性值合成为参数对象","titles":["声明一个装配操作","3.键的解析策略"]},"93":{"title":"3.2.将字符串按分隔符拆分","titles":["声明一个装配操作","3.键的解析策略"]},"94":{"title":"3.3.为键值指定别名","titles":["声明一个装配操作","3.键的解析策略"]},"95":{"title":"3.4.自定义解析器","titles":["声明一个装配操作","3.键的解析策略"]},"96":{"title":"4.属性映射策略","titles":["声明一个装配操作"]},"97":{"title":"4.1.指定策略","titles":["声明一个装配操作","4.属性映射策略"]},"98":{"title":"4.2.自定义策略","titles":["声明一个装配操作","4.属性映射策略"]},"99":{"title":"5.表达式支持","titles":["声明一个装配操作"]},"100":{"title":"填充嵌套对象","titles":[]},"101":{"title":"1.声明拆卸操作","titles":["填充嵌套对象"]},"102":{"title":"1.1.在属性上声明","titles":["填充嵌套对象","1.声明拆卸操作"]},"103":{"title":"1.2.在方法上声明","titles":["填充嵌套对象","1.声明拆卸操作"]},"104":{"title":"1.3.在类上声明","titles":["填充嵌套对象","1.声明拆卸操作"]},"105":{"title":"1.3.递归拆卸","titles":["填充嵌套对象","1.声明拆卸操作"]},"106":{"title":"2.自动推断类型","titles":["填充嵌套对象"]},"107":{"title":"3.拆卸操作处理器","titles":["填充嵌套对象"]},"108":{"title":"设置操作触发条件","titles":[]},"109":{"title":"1.使用","titles":["设置操作触发条件"]},"110":{"title":"1.1.配置","titles":["设置操作触发条件","1.使用"]},"111":{"title":"1.2.绑定到操作","titles":["设置操作触发条件","1.使用"]},"112":{"title":"1.3.取反","titles":["设置操作触发条件","1.使用"]},"113":{"title":"1.4.组合","titles":["设置操作触发条件","1.使用"]},"114":{"title":"1.5.注解的作用域","titles":["设置操作触发条件","1.使用"]},"115":{"title":"2.内置注解","titles":["设置操作触发条件"]},"116":{"title":"2.1.当表达式结果为真","titles":["设置操作触发条件","2.内置注解"]},"117":{"title":"2.2.当指定属性值等于指定值","titles":["设置操作触发条件","2.内置注解"]},"118":{"title":"2.3.当指定属性值非空","titles":["设置操作触发条件","2.内置注解"]},"119":{"title":"2.4.当填充对象为指定类型","titles":["设置操作触发条件","2.内置注解"]},"120":{"title":"2.5.当存在指定数据源容器","titles":["设置操作触发条件","2.内置注解"]},"121":{"title":"3.自定义条件","titles":["设置操作触发条件"]},"122":{"title":"操作分组","titles":[]},"123":{"title":"1.配置分组","titles":["操作分组"]},"124":{"title":"2.按操作组执行","titles":["操作分组"]},"125":{"title":"操作排序","titles":[]},"126":{"title":"1.配置排序规则","titles":["操作排序"]},"127":{"title":"2.按顺序执行","titles":["操作排序"]},"128":{"title":"2.1.手动填充","titles":["操作排序","2.按顺序执行"]},"129":{"title":"2.2.自动填充","titles":["操作排序","2.按顺序执行"]},"130":{"title":"3.与嵌套填充配合使用","titles":["操作排序"]},"131":{"title":"配置属性映射","titles":[]},"132":{"title":"1.属性到属性","titles":["配置属性映射"]},"133":{"title":"1.1.同名属性","titles":["配置属性映射","1.属性到属性"]},"134":{"title":"1.2.自动类型转换","titles":["配置属性映射","1.属性到属性"]},"135":{"title":"2.对象到属性","titles":["配置属性映射"]},"136":{"title":"3.属性到键","titles":["配置属性映射"]},"137":{"title":"4.对象到键","titles":["配置属性映射"]},"138":{"title":"5.批量映射","titles":["配置属性映射"]},"139":{"title":"6.属性映射模板","titles":["配置属性映射"]},"140":{"title":"7.链式操作符","titles":["配置属性映射"]},"141":{"title":"8.属性映射策略","titles":["配置属性映射"]},"142":{"title":"8.1.指定策略","titles":["配置属性映射","8.属性映射策略"]},"143":{"title":"8.2.自定义策略","titles":["配置属性映射","8.属性映射策略"]},"144":{"title":"触发操作","titles":[]},"145":{"title":"1.手动填充","titles":["触发操作"]},"146":{"title":"2.自动填充","titles":["触发操作"]},"147":{"title":"2.1.配置","titles":["触发操作","2.自动填充"]},"148":{"title":"2.2.自动类型推断","titles":["触发操作","2.自动填充"]},"149":{"title":"2.3.包装类提取","titles":["触发操作","2.自动填充"]},"150":{"title":"2.4.条件表达式","titles":["触发操作","2.自动填充"]},"151":{"title":"2.5.指定分组","titles":["触发操作","2.自动填充"]},"152":{"title":"2.6.指定执行器","titles":["触发操作","2.自动填充"]},"153":{"title":"2.7.从注解元素获取配置","titles":["触发操作","2.自动填充"]},"154":{"title":"Jackson 插件","titles":[]},"155":{"title":"1.安装","titles":["Jackson 插件"]},"156":{"title":"2.启用插件","titles":["Jackson 插件"]},"157":{"title":"2.1.在 Spring 环境","titles":["Jackson 插件","2.启用插件"]},"158":{"title":"2.2.在非 Spring 环境","titles":["Jackson 插件","2.启用插件"]},"159":{"title":"2.使用","titles":["Jackson 插件"]},"160":{"title":"3.可选配置","titles":["Jackson 插件"]},"161":{"title":"MybatisPlus 插件","titles":[]},"162":{"title":"1.安装","titles":["MybatisPlus 插件"]},"163":{"title":"2.注册Mapper","titles":["MybatisPlus 插件"]},"164":{"title":"2.1.懒加载","titles":["MybatisPlus 插件","2.注册Mapper"]},"165":{"title":"2.2.自动注册","titles":["MybatisPlus 插件","2.注册Mapper"]},"166":{"title":"2.3.手动注册","titles":["MybatisPlus 插件","2.注册Mapper"]},"167":{"title":"3.使用","titles":["MybatisPlus 插件"]},"168":{"title":"3.1.根据主键查询全部字段","titles":["MybatisPlus 插件","3.使用"]},"169":{"title":"3.2.根据主键查询指定字段","titles":["MybatisPlus 插件","3.使用"]},"170":{"title":"3.3.根据指定外键查询全部字段","titles":["MybatisPlus 插件","3.使用"]},"171":{"title":"3.4.根据指定外键查询指定字段","titles":["MybatisPlus 插件","3.使用"]},"172":{"title":"4.指定查询字段 SQL","titles":["MybatisPlus 插件"]},"173":{"title":"5.对结果分组","titles":["MybatisPlus 插件"]},"174":{"title":"Redis 插件","titles":[]},"175":{"title":"1.安装","titles":[]},"176":{"title":"2.启用缓存管理器","titles":[]},"177":{"title":"3.键前缀","titles":[]},"178":{"title":"4.清空缓存","titles":[]},"179":{"title":"在提问之前","titles":[]},"180":{"title":"当你提问时","titles":[]},"181":{"title":"慎选提问的论坛","titles":["当你提问时"]},"182":{"title":"Stack Overflow","titles":["当你提问时"]},"183":{"title":"网站和 IRC 论坛","titles":["当你提问时"]},"184":{"title":"第二步,使用项目邮件列表","titles":["当你提问时"]},"185":{"title":"使用有意义且描述明确的标题","titles":["当你提问时"]},"186":{"title":"使问题容易回复","titles":["当你提问时"]},"187":{"title":"使用易于读取且标准的文件格式发送问题","titles":["当你提问时"]},"188":{"title":"精确地描述问题并言之有物","titles":["当你提问时"]},"189":{"title":"话不在多而在精","titles":["当你提问时"]},"190":{"title":"别动辄声称找到 Bug","titles":["当你提问时"]},"191":{"title":"低声下气不能代替你的功课","titles":["当你提问时"]},"192":{"title":"描述问题症状而非你的猜测","titles":["当你提问时"]},"193":{"title":"按发生时间先后列出问题症状","titles":["当你提问时"]},"194":{"title":"描述目标而不是过程","titles":["当你提问时"]},"195":{"title":"别要求使用私人电邮回复","titles":["当你提问时"]},"196":{"title":"清楚明确地表达你的问题以及需求","titles":["当你提问时"]},"197":{"title":"询问有关代码的问题时","titles":["当你提问时"]},"198":{"title":"别把自己家庭作业的问题贴上来","titles":["当你提问时"]},"199":{"title":"去掉无意义的提问句","titles":["当你提问时"]},"200":{"title":"即使你很急也不要在标题写紧急","titles":["当你提问时"]},"201":{"title":"礼多人不怪,而且有时还很有帮助","titles":["当你提问时"]},"202":{"title":"问题解决后,加个简短的补充说明","titles":["当你提问时"]},"203":{"title":"如何解读答案","titles":[]},"204":{"title":"RTFM 和 STFW:如何知道你已完全搞砸了","titles":["如何解读答案"]},"205":{"title":"如果还是搞不懂","titles":["如何解读答案"]},"206":{"title":"处理无礼的回应","titles":["如何解读答案"]},"207":{"title":"如何避免扮演失败者","titles":[]},"208":{"title":"不该问的问题","titles":[]},"209":{"title":"好问题与蠢问题","titles":[]},"210":{"title":"如果得不到回答","titles":[]},"211":{"title":"如何更好地回答问题","titles":[]},"212":{"title":"相关资源","titles":[]},"213":{"title":"鸣谢","titles":[]},"214":{"title":"1.0.0 (2023-03-23)","titles":[]},"215":{"title":"1.1.0 (2023-03-30)","titles":[]},"216":{"title":"1.2.0 (2023-04-09)","titles":[]},"217":{"title":"1.3.0-ALPHA (2023-05-10)","titles":[]},"218":{"title":"2.0.0-ALPHA (2023-07-08)","titles":[]},"219":{"title":"2.0.0-BATE (2023-07-30)","titles":[]},"220":{"title":"2.0.0 (2023-08-06)","titles":[]},"221":{"title":"2.1.0 (2023-08-21)","titles":[]},"222":{"title":"2.2.0 (2023-09-25)","titles":[]},"223":{"title":"2.3.0 (2023-10-18)","titles":[]},"224":{"title":"2.3.1 (2023-12-10)","titles":[]},"225":{"title":"2.4.0 (2024-01-15)","titles":[]},"226":{"title":"2.5.0 (2024-02-01)","titles":[]},"227":{"title":"2.6.0 (2024-02-23)","titles":[]},"228":{"title":"2.6.1 (2024-03-13)","titles":[]},"229":{"title":"2.6.2 (2024-03-27)","titles":[]},"230":{"title":"2.7.0 (2024-04-08)","titles":[]},"231":{"title":"2.8.0 (2024-05-07)","titles":[]},"232":{"title":"2.8.1 (2024-06-05)","titles":[]},"233":{"title":"2.8.2 (2024-06-16)","titles":[]},"234":{"title":"2.9.0 (2024-06-30)","titles":[]},"235":{"title":"配置文件","titles":[]},"236":{"title":"1.反射","titles":["配置文件"]},"237":{"title":"1.1.是否启用字节码反射","titles":["配置文件","1.反射"]},"238":{"title":"1.2.是否支持处理Map对象","titles":["配置文件","1.反射"]},"239":{"title":"1.3.是否支持链式操作符","titles":["配置文件","1.反射"]},"240":{"title":"2.容器","titles":["配置文件"]},"241":{"title":"2.1.扫描常量容器","titles":["配置文件","2.容器"]},"242":{"title":"2.2.扫描枚举容器","titles":["配置文件","2.容器"]},"243":{"title":"2.3.扫描方法容器","titles":["配置文件","2.容器"]},"244":{"title":"2.4.容器缓存配置","titles":["配置文件","2.容器"]},"245":{"title":"3.自动填充","titles":["配置文件"]},"246":{"title":"4.操作配置预解析","titles":["配置文件"]},"247":{"title":"5.是否忽略 key 值为 null 的操作","titles":["配置文件"]},"248":{"title":"示例:如何在填充后进行附加操作","titles":[]},"249":{"title":"示例:如何在执行时排除某些操作","titles":[]},"250":{"title":"1.进行分组填充","titles":["示例:如何在执行时排除某些操作"]},"251":{"title":"2.设置条件填充","titles":["示例:如何在执行时排除某些操作"]},"252":{"title":"3.手动排除","titles":["示例:如何在执行时排除某些操作"]},"253":{"title":"示例:如何基于枚举进行填充","titles":[]},"254":{"title":"1.准备","titles":["示例:如何基于枚举进行填充"]},"255":{"title":"2.使用","titles":["示例:如何基于枚举进行填充"]},"256":{"title":"3.组合式配置","titles":["示例:如何基于枚举进行填充"]},"257":{"title":"示例:如何基于方法填充","titles":[]},"258":{"title":"1.准备","titles":["示例:如何基于方法填充"]},"259":{"title":"2.使用","titles":["示例:如何基于方法填充"]},"260":{"title":"3.选项式配置","titles":["示例:如何基于方法填充"]},"261":{"title":"示例:如何级联填充","titles":[]},"262":{"title":"1.指定填充顺序","titles":["示例:如何级联填充"]},"263":{"title":"2.在数据源层面处理级联关系","titles":["示例:如何级联填充"]},"264":{"title":"示例:如何填充被包装的返回值","titles":[]},"265":{"title":"1.填充被包装的数据","titles":["示例:如何填充被包装的返回值"]},"266":{"title":"2.填充被多级包装的数据","titles":["示例:如何填充被包装的返回值"]},"267":{"title":"示例: 如何填充一个复杂对象","titles":[]},"268":{"title":"1.原始代码","titles":["示例: 如何填充一个复杂对象"]},"269":{"title":"1.1.实体类与数据结构","titles":["示例: 如何填充一个复杂对象","1.原始代码"]},"270":{"title":"1.2.实现代码","titles":["示例: 如何填充一个复杂对象","1.原始代码"]},"271":{"title":"2.使用选项式风格配置","titles":["示例: 如何填充一个复杂对象"]},"272":{"title":"3.使用组合式风格配置","titles":["示例: 如何填充一个复杂对象"]},"273":{"title":"4.使用组合注解简化配置","titles":["示例: 如何填充一个复杂对象"]},"274":{"title":"示例:如何通过多个Key关联数据","titles":[]},"275":{"title":"1.使用对象容器","titles":["示例:如何通过多个Key关联数据"]},"276":{"title":"2.使用方法容器","titles":["示例:如何通过多个Key关联数据"]},"277":{"title":"3.配合容器提供者使用","titles":["示例:如何通过多个Key关联数据"]},"278":{"title":"基本概念","titles":[]},"279":{"title":"1.全局配置","titles":["基本概念"]},"280":{"title":"2.数据源容器","titles":["基本概念"]},"281":{"title":"3.操作配置&解析器","titles":["基本概念"]},"282":{"title":"4.注解处理器","titles":["基本概念"]},"283":{"title":"5.操作执行器","titles":["基本概念"]},"284":{"title":"6.填充方式","titles":["基本概念"]},"285":{"title":"7.配置风格","titles":["基本概念"]},"286":{"title":"FAQ","titles":[]},"287":{"title":"填充不生效?","titles":["FAQ"]},"288":{"title":"如何实现嵌套填充?","titles":["FAQ"]},"289":{"title":"如何实现级联填充?","titles":["FAQ"]},"290":{"title":"如何处理一对多的情况?","titles":["FAQ"]},"291":{"title":"键字段可以是按分隔符拼接的字符串吗?","titles":["FAQ"]},"292":{"title":"键字段可以是集合或数组吗?","titles":["FAQ"]},"293":{"title":"为什么使用异步执行器的时候报错?","titles":["FAQ"]},"294":{"title":"怎么刷新容器的数据 ?","titles":["FAQ"]},"295":{"title":"怎么忽略掉某些字段不进行填充?","titles":["FAQ"]},"296":{"title":"为什么 @ContainerMethod 注解不生效?","titles":["FAQ"]},"297":{"title":"为什么 @AutoOperate 注解不生效?","titles":["FAQ"]},"298":{"title":"为什么引了 guava 和 hutool ?","titles":["FAQ"]},"299":{"title":"支持 jdk9+ / springboot3 吗?","titles":["FAQ"]},"300":{"title":"容器可以做一些自定义的初始化/销毁操作吗?","titles":["FAQ"]},"301":{"title":"可以支持同时根据多个 key 字段填充数据吗?","titles":["FAQ"]},"302":{"title":"启动应用报错 “No ServletContext set”","titles":["FAQ"]},"303":{"title":"可以多线程填充吗?","titles":["FAQ"]},"304":{"title":"快速开始","titles":[]},"305":{"title":"在 Spring 环境使用","titles":[]},"306":{"title":"1.安装","titles":["在 Spring 环境使用"]},"307":{"title":"2.启用配置","titles":["在 Spring 环境使用"]},"308":{"title":"3.配置数据源","titles":["在 Spring 环境使用"]},"309":{"title":"4.配置填充操作","titles":["在 Spring 环境使用"]},"310":{"title":"5.触发填充","titles":["在 Spring 环境使用"]},"311":{"title":"5.1.手动填充","titles":["在 Spring 环境使用","5.触发填充"]},"312":{"title":"5.2.自动填充","titles":["在 Spring 环境使用","5.触发填充"]},"313":{"title":"6.完整代码","titles":["在 Spring 环境使用"]},"314":{"title":"在 SpringBoot 环境使用","titles":[]},"315":{"title":"1.安装","titles":["在 SpringBoot 环境使用"]},"316":{"title":"2.配置数据源","titles":["在 SpringBoot 环境使用"]},"317":{"title":"3.配置填充操作","titles":["在 SpringBoot 环境使用"]},"318":{"title":"4.触发填充","titles":["在 SpringBoot 环境使用"]},"319":{"title":"4.1.手动填充","titles":["在 SpringBoot 环境使用","4.触发填充"]},"320":{"title":"4.2.自动填充","titles":["在 SpringBoot 环境使用","4.触发填充"]},"321":{"title":"5.完整代码","titles":["在 SpringBoot 环境使用"]},"322":{"title":"在非 Spring 环境使用","titles":[]},"323":{"title":"1.安装","titles":["在非 Spring 环境使用"]},"324":{"title":"2.创建全局配置","titles":["在非 Spring 环境使用"]},"325":{"title":"3.配置数据源","titles":["在非 Spring 环境使用"]},"326":{"title":"4.配置填充操作","titles":["在非 Spring 环境使用"]},"327":{"title":"5.触发操作","titles":["在非 Spring 环境使用"]},"328":{"title":"6.完整代码","titles":["在非 Spring 环境使用"]},"329":{"title":"原理","titles":[]},"330":{"title":"简介","titles":[]},"331":{"title":"1.什么是字段填充?","titles":["简介"]},"332":{"title":"2.用 crane4j 怎么做?","titles":["简介"]},"333":{"title":"3.为什么需要 crane4j?","titles":["简介"]},"334":{"title":"4.如何开始使用?","titles":["简介"]}},"dirtCount":0,"index":[["权限等级等等",{"2":{"333":1}}],["繁多的数据源",{"2":{"333":1}}],["复杂的数据结构",{"2":{"333":1}}],["复制下来并加入足够重现这个状况的代码",{"2":{"197":1}}],["灵活而直观的",{"2":{"333":1}}],["灵活度高",{"2":{"285":1}}],["效果与执行之前的代码完全一致",{"2":{"332":1}}],["步",{"2":{"331":1}}],["什么是字段填充",{"0":{"331":1}}],["什么是最精简的测试用例",{"2":{"197":1}}],["经过半年多的更新",{"2":{"330":1}}],["经常寻求技术帮助的人在心中有个更高层次的目标",{"2":{"194":1}}],["于是花了时间写一个小插件",{"2":{"330":1}}],["输入要处理的对象",{"2":{"329":1}}],["成功拦截到该注解方法",{"2":{"312":1,"320":1}}],["成自己选定的色码",{"2":{"194":1}}],["数值或单个对象",{"2":{"312":1,"320":1}}],["数据",{"2":{"222":1,"277":1,"331":1}}],["数据应该原样包含",{"2":{"187":1}}],["数据结构的特殊性",{"2":{"159":1}}],["数据源",{"2":{"258":1}}],["数据源等同于基于",{"2":{"168":1}}],["数据源对象的属性",{"2":{"131":1}}],["数据源的",{"2":{"59":2}}],["数据源容器提供者",{"2":{"277":1}}],["数据源容器支持接受对象类型参数",{"2":{"230":1}}],["数据源容器是填充中最重要的一环",{"2":{"52":1}}],["数据源容器",{"0":{"52":1,"280":1},"2":{"42":1,"84":1,"278":1,"280":1,"308":1,"316":1,"325":1}}],["了解如何在你的本地项目中整合与使用",{"2":{"304":1}}],["涉及到的功能都会在对应的文档上进行强调",{"2":{"304":1}}],["涉及的组件或概念",{"2":{"278":1}}],["推荐与",{"2":{"304":1}}],["推荐为你的自定义注解一并加上一些通用属性",{"2":{"23":1}}],["快速开始",{"0":{"304":1},"2":{"334":2}}],["销毁操作吗",{"0":{"300":1}}],["销毁方法",{"2":{"9":1}}],["拦截方法调用",{"2":{"297":1}}],["怎么做",{"0":{"332":1}}],["怎么忽略掉某些字段不进行填充",{"0":{"295":1}}],["怎么刷新容器的数据",{"0":{"294":1}}],["怎么制作最精简的测试用例",{"2":{"197":1}}],["得到的",{"2":{"287":1}}],["得到它",{"2":{"281":1}}],["确认",{"2":{"287":1}}],["确认待填充的对象可以通过",{"2":{"287":1}}],["确认你填充的对象是否都已经被收集到",{"2":{"287":1}}],["确认通过上述",{"2":{"287":1}}],["确认通过",{"2":{"287":1}}],["确认指定的数据源容器确实有根据",{"2":{"287":1}}],["确认目标对象对应的",{"2":{"287":1}}],["确认操作涉及的属性存在",{"2":{"287":1}}],["确认在",{"2":{"287":1}}],["确保",{"2":{"255":1,"312":1,"320":1}}],["缺点",{"2":{"285":1}}],["缺少用于润滑人类社会正常交往所需的神经",{"2":{"206":1}}],["优点",{"2":{"285":1}}],["优化在",{"2":{"231":1}}],["优化字段映射的执行效率",{"2":{"230":1}}],["优化了一些功能",{"2":{"231":1}}],["优化了很多旧功能",{"2":{"220":1}}],["优化了大量的代码与逻辑",{"2":{"218":1}}],["优化",{"2":{"218":1,"220":1,"221":1,"222":1}}],["框架获取",{"2":{"333":1}}],["框架",{"2":{"285":1}}],["各有优劣",{"2":{"285":1}}],["各个组件的特定阶段插入自定义逻辑",{"2":{"7":1}}],["全自动",{"2":{"284":2}}],["全局配置对象通常是唯一的",{"2":{"279":1}}],["全局配置",{"0":{"279":1},"2":{"278":1}}],["全局配置类后才可以使用",{"2":{"280":1}}],["全局配置类",{"2":{"53":1,"279":1}}],["全局过滤掉",{"2":{"118":1}}],["每种注解处理器都专注于将某一类注解解析为相应的转配操作",{"2":{"282":1}}],["每个开发者至少会对应到上万名用户",{"2":{"210":1}}],["每个填充操作都需要对应一个数据源",{"2":{"52":1,"280":1}}],["每个解析器根据规则将",{"2":{"21":1}}],["泛指一切通过需要",{"2":{"281":1}}],["配合容器提供者使用",{"0":{"277":1}}],["配置解析阶段最终的产物是",{"2":{"329":1}}],["配置解析阶段",{"2":{"329":1}}],["配置解析器应当支持所有的annotatedelement类型对象的注解配置",{"2":{"217":1,"218":1,"220":1}}],["配置填充操作",{"0":{"309":1,"317":1,"326":1}}],["配置数据源",{"0":{"308":1,"316":1,"325":1}}],["配置较为零散",{"2":{"285":1}}],["配置方便",{"2":{"285":1}}],["配置风格",{"0":{"285":1}}],["配置实体类包路径",{"2":{"246":1}}],["配置文件",{"0":{"235":1},"1":{"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1}}],["配置不生效",{"2":{"231":1}}],["配置类",{"2":{"307":1}}],["配置类的工厂方法中使用",{"2":{"227":1}}],["配置类中重新声明一个",{"2":{"25":1}}],["配置了",{"2":{"223":1}}],["配置自动填充",{"2":{"130":1}}],["配置排序规则",{"0":{"126":1}}],["配置分组",{"0":{"123":1}}],["配置属性映射",{"0":{"131":1},"1":{"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1},"2":{"92":1,"259":1,"260":1}}],["配置为指定的数据源容器添加缓存功能",{"2":{"244":1}}],["配置为",{"2":{"78":1}}],["配置",{"0":{"65":1,"110":1,"147":1},"2":{"131":1,"155":1,"162":1,"175":1,"241":1,"242":1}}],["配置对象",{"2":{"21":1}}],["配置过期时间",{"2":{"13":2,"75":1}}],["到",{"2":{"302":1}}],["到既然你已经可以在容器中直接拿到要填充的对象了",{"2":{"275":1}}],["到那去就是了",{"2":{"191":1}}],["遍历订单中的管理商品",{"2":{"270":1}}],["客户类型",{"2":{"270":1}}],["客气一点肯定会增加你得到有用回应的机会",{"2":{"201":1}}],["里面用于存放框架运行时所需要的所有组件和各种配置信息",{"2":{"279":1}}],["里面",{"2":{"258":1,"329":1}}],["里面的方法",{"2":{"79":1}}],["切面触发",{"2":{"255":1}}],["切面类",{"2":{"147":2}}],["找到关联的数据",{"2":{"274":1}}],["找到对应的",{"2":{"258":1}}],["找到对应的枚举",{"2":{"254":1}}],["找到项目的邮件列表并使用它",{"2":{"184":1}}],["回调接口来排除某些操作",{"2":{"252":1}}],["回答",{"2":{"208":9,"211":1}}],["回答者认为你应该到他妈的网上搜索",{"2":{"204":1}}],["回答者认为你应该去读他妈的手册",{"2":{"204":1}}],["小朋友",{"2":{"248":2}}],["小心选择你要提问的场合",{"2":{"181":1}}],["小心别问错了问题",{"2":{"179":1}}],["岁且小于",{"2":{"248":1}}],["岁",{"2":{"248":3}}],["示例",{"0":{"248":1,"249":1,"253":1,"257":1,"261":1,"264":1,"267":1,"274":1},"1":{"250":1,"251":1,"252":1,"254":1,"255":1,"256":1,"258":1,"259":1,"260":1,"262":1,"263":1,"265":1,"266":1,"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"275":1,"276":1,"277":1},"2":{"289":1,"295":1,"301":1}}],["解析获得对应的操作配置对象",{"2":{"329":1}}],["解析类后",{"2":{"287":1}}],["解析器",{"0":{"281":1}}],["解析而来",{"2":{"246":1}}],["解析为",{"2":{"167":1}}],["皆由对应的",{"2":{"246":1}}],["皆不为空时表示两个将",{"2":{"132":1}}],["刷新容器缓存数据的",{"2":{"234":1}}],["刷新缓存",{"0":{"19":1}}],["改为使用",{"2":{"230":1}}],["改为字符串",{"2":{"143":1}}],["验证或者支持在更高的",{"2":{"226":1}}],["警告",{"2":{"222":1}}],["导致在项目中",{"2":{"221":1}}],["覆盖已有的属性值",{"2":{"221":1}}],["覆写策略",{"2":{"97":1,"142":1}}],["异常",{"2":{"226":1}}],["异常需要更详细的信息",{"2":{"219":1,"220":1}}],["异步执行器支持指定支持指定批量大小",{"2":{"226":1}}],["异步执行器执行的时候",{"2":{"6":1}}],["异步填充一节",{"2":{"152":1,"283":1}}],["异步填充",{"0":{"0":1},"2":{"145":1,"333":1}}],["逻辑校验不通过而抛出异常时",{"2":{"219":1,"220":1}}],["升级2",{"2":{"222":1}}],["升级重构计划",{"2":{"218":1,"220":1}}],["升级而来",{"2":{"218":1}}],["部分",{"2":{"218":1}}],["部分内容",{"2":{"140":1,"304":1}}],["修复版本",{"2":{"224":1,"228":1,"229":1,"232":1,"233":1}}],["修复了一些已知问题",{"2":{"234":1}}],["修复了一些问题",{"2":{"221":1,"230":1,"231":1}}],["修复了",{"2":{"226":1}}],["修复了引入",{"2":{"217":1}}],["修饰的属性",{"2":{"49":1}}],["移除mappingtype",{"2":{"231":1}}],["移除了",{"2":{"218":1,"220":1}}],["移除",{"2":{"217":1,"234":1}}],["移除缓存",{"2":{"19":1}}],["减少对",{"2":{"217":1}}],["文档优化计划",{"2":{"223":1}}],["文档重构",{"2":{"215":1}}],["文件转换为",{"2":{"208":2}}],["文件转换工具将",{"2":{"208":2}}],["文件等",{"2":{"187":1}}],["增强了一些新功能",{"2":{"215":1,"216":1}}],["流程",{"2":{"214":1}}],["代理",{"2":{"297":1}}],["代理非接口类型",{"2":{"231":1}}],["代理工厂支持基于",{"2":{"231":1}}],["代理填充方法支持设置临时容器",{"2":{"217":1,"218":1,"220":1}}],["代码注释国际化",{"2":{"214":1}}],["代替原本的复杂配置",{"2":{"24":1}}],["补充文档",{"2":{"217":1,"218":1,"220":1}}],["补充",{"2":{"214":1}}],["补充说明不必很长或是很深入",{"2":{"202":1}}],["模拟返回数据",{"2":{"255":1}}],["模式的字典项填充",{"2":{"220":1,"221":1}}],["模块即可",{"2":{"323":1}}],["模块",{"2":{"214":1}}],["模板类",{"2":{"121":1}}],["模板类可以大大减少工作量",{"2":{"20":1}}],["添加了一些新功能",{"2":{"234":1}}],["添加了对条件操作的支持",{"2":{"227":1}}],["添加缓存后",{"2":{"233":1,"234":1}}],["添加容器适配器管理器",{"2":{"222":1}}],["添加容器工厂组件以隔离和丰富获取数据源容器的渠道",{"2":{"214":1}}],["添加",{"2":{"222":1,"231":1}}],["添加一个全局的排序器静态单例",{"2":{"218":1,"220":1}}],["添加基于接口代理的填充方法",{"2":{"217":1}}],["添加自动化",{"2":{"214":1}}],["添加官方站点配置",{"2":{"214":1}}],["添加示例项目",{"2":{"214":1}}],["添加扩展模块",{"2":{"214":1}}],["添加默认的组合注解扩展包",{"2":{"214":1}}],["贡献了一些特别有价值的建议和改进",{"2":{"213":1}}],["贡献了一些愚蠢问题例子并启发了编写如何更好地回答问题这一节",{"2":{"213":1}}],["鸣谢",{"0":{"213":1}}],["系统和网络基本原理",{"2":{"212":1}}],["系统和网络如何运作的基础知识",{"2":{"212":1}}],["展现你的技巧而不是直接端出结果",{"2":{"211":1}}],["展示测试用例",{"2":{"197":1}}],["帮助你的社区从问题中学习",{"2":{"211":1}}],["帮我救救这个毛茸茸的小海豹",{"2":{"200":1}}],["给提问者与同行都树个好榜样",{"2":{"211":1}}],["给黑客一个可以重现你的问题的环境尤其重要",{"2":{"188":1}}],["态度和善一点",{"2":{"211":1}}],["根本不可能由一个人来处理来自上万名用户的求助电话",{"2":{"210":1}}],["根据外键查询出各种关联信息",{"2":{"331":1}}],["根据客户id获取对应的客户名称",{"2":{"270":1}}],["根据订单类型编码获取对应的名称",{"2":{"270":1}}],["根据情况动态决定是否应用",{"2":{"226":1,"227":1}}],["根据部门",{"2":{"173":1}}],["根据部门管理查询员工",{"2":{"130":1}}],["根据主键查询指定字段",{"0":{"169":1}}],["根据主键查询全部字段",{"0":{"168":1}}],["根据指定外键查询指定字段",{"0":{"171":1},"2":{"167":1}}],["根据指定外键查询全部字段",{"0":{"170":1},"2":{"167":1}}],["根据默认主键查询指定字段",{"2":{"167":1}}],["根据默认主键查询全部字段",{"2":{"167":1}}],["根据排序值",{"2":{"126":1}}],["根据分隔符拼接为字符串",{"2":{"46":1}}],["根据",{"2":{"44":1,"84":1,"135":1,"136":1,"138":1,"254":1,"280":1,"281":1,"285":2,"309":2,"313":1,"317":2,"321":1,"326":2,"328":1,"329":1,"331":3}}],["根据id查询客户",{"2":{"40":1}}],["根据字典分类查询关联的字典项",{"2":{"23":1}}],["毕竟授人以鱼不如授人以渔",{"2":{"211":1}}],["毕竟",{"2":{"210":1}}],["毕竟你没有为这种服务支付任何报酬",{"2":{"179":1}}],["知道你问题答案的人可能生活在不同的时区",{"2":{"210":1}}],["虽然不可否认这种差别很难区分",{"2":{"210":1}}],["主要修复了一些问题",{"2":{"222":1,"223":1}}],["主板上观察到了这种无法解释的锁定现象",{"2":{"209":1}}],["主机板上引起",{"2":{"209":1}}],["主机板上试过了",{"2":{"209":1}}],["主机板搭载",{"2":{"192":1}}],["月在",{"2":{"209":1}}],["年初",{"2":{"330":1}}],["年",{"2":{"209":1}}],["年时的讲话",{"2":{"192":1}}],["正面地回答问题",{"2":{"211":1}}],["正在",{"2":{"209":1}}],["正确地处理被包装的返回值",{"2":{"264":1}}],["正确",{"2":{"201":1}}],["看起来他真的遇到了麻烦",{"2":{"209":1}}],["看来似乎是",{"2":{"205":1}}],["谁来帮我",{"2":{"209":1}}],["谁知道上哪儿去找对这种设备编程的资料",{"2":{"209":1}}],["谁能给点提示",{"2":{"179":1}}],["想找个黑客帮你",{"2":{"208":1}}],["想要这样做",{"2":{"208":1}}],["扔掉微软的垃圾",{"2":{"208":1}}],["希望可以不需要在注解中指定",{"2":{"226":1}}],["希望返回值可以支持",{"2":{"225":1}}],["希望你能搞定",{"2":{"208":1}}],["希望着你会从问题的回答",{"2":{"179":1}}],["真糟糕",{"2":{"208":1}}],["程序",{"2":{"208":1}}],["程序或",{"2":{"208":2}}],["等到方法调用后",{"2":{"332":1}}],["等",{"2":{"278":1}}],["等相关注解",{"2":{"234":1}}],["等他们把问题搞清楚了再说",{"2":{"208":1}}],["等效于",{"2":{"51":1,"61":1}}],["难道还有人不会用",{"2":{"208":1}}],["天哪",{"2":{"208":1}}],["白痴",{"2":{"208":1}}],["读别人的邮件呢",{"2":{"208":2}}],["特点",{"2":{"284":1}}],["特权",{"2":{"208":2}}],["特别是当你觉得遇到的也许只是相对简单或者很普通的问题时",{"2":{"183":1}}],["特别是编程语言",{"2":{"182":1}}],["窃取",{"2":{"208":2}}],["帐号",{"2":{"208":2}}],["电脑有问题",{"2":{"208":2}}],["电子邮件则大多为项目开发者间的交流而保留",{"2":{"183":1}}],["语句",{"2":{"208":1}}],["语句没有用",{"2":{"208":1}}],["语言可能是必须的",{"2":{"187":1}}],["做了大幅度的重构",{"2":{"220":1}}],["做了方法级缓存",{"2":{"13":1}}],["做",{"2":{"208":2}}],["资源",{"2":{"208":2}}],["抱怨倒是真的会把问题搞砸",{"2":{"207":1}}],["告诉你别再这样做时",{"2":{"207":1}}],["告诉黑客们你认为问题是怎样造成的并没什么帮助",{"2":{"192":1}}],["友善",{"2":{"207":1}}],["夸张的讲法是",{"2":{"207":1}}],["禁止参与者张贴任何对别人帖子挑毛病的消息",{"2":{"207":1}}],["受过高礼节要求的误导",{"2":{"207":1}}],["坚持声称受到个人攻击也毫无益处",{"2":{"207":1}}],["社区的标准不会自行维持",{"2":{"207":1}}],["社区已经成为回答技术及其他问题的主要渠道",{"2":{"182":1}}],["熬过去",{"2":{"207":1}}],["威胁诉诸法律",{"2":{"207":1}}],["威盛",{"2":{"192":1}}],["憋闷气",{"2":{"207":1}}],["高声尖叫",{"2":{"207":1}}],["宣称被言语攻击",{"2":{"207":1}}],["宣称紧急极有可能事与愿违",{"2":{"200":1}}],["兴许你认为我们脑袋有问题还能帮助你应付我们的古怪行为",{"2":{"206":1}}],["避开这种莽撞的机会并不高",{"2":{"206":1}}],["避免过早初始化",{"2":{"231":1}}],["避免重复请求相同的数据源",{"2":{"222":1}}],["避免盲点的部分应放在正确的解决方案和其它总结材料之后",{"2":{"202":1}}],["避免用",{"2":{"199":1}}],["避免用无意义的话结束提问",{"2":{"199":1}}],["避免误删",{"2":{"178":1}}],["避免每次判断都要进行类型转换",{"2":{"117":1}}],["纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔",{"2":{"206":1}}],["很多黑客圈子中看似无礼的行为并不是存心冒犯",{"2":{"206":1}}],["zentries",{"2":{"205":1}}],["zentry",{"2":{"205":2}}],["z",{"2":{"205":1,"209":1,"211":2}}],["哦~~~我看过说明了但是只有",{"2":{"205":1}}],["卡住了",{"2":{"205":1}}],["身边的高手",{"2":{"205":1}}],["网络",{"2":{"205":1}}],["网站和",{"0":{"183":1}}],["网站们往往会是搜索结果中最前面几个",{"2":{"182":1}}],["网站上也许还有报告",{"2":{"181":1}}],["利用手册",{"2":{"205":1}}],["像你以前试着自己解决问题时那样",{"2":{"205":1}}],["像微软公司的",{"2":{"187":1}}],["他建议我记下这件事",{"2":{"209":1}}],["他觉得我的问题得到解决并非由于我是这个列表中的名人",{"2":{"209":1}}],["他觉得都是别人的错",{"2":{"209":1}}],["他表现出了解决问题的能力",{"2":{"209":1}}],["他的问题值得被关注",{"2":{"209":1}}],["他正在为关心你和他的社区而行动",{"2":{"207":1}}],["他已经表示了对你一定程度的关注",{"2":{"204":1}}],["他们忙是因为要亲自完成大部分工作",{"2":{"196":1}}],["他们也很厌恶这么做",{"2":{"187":1}}],["他们能从你的提问看出你做了多少阅读与思考",{"2":{"179":1}}],["思考一下怎样才能避免他人将来也遇到类似的问题",{"2":{"202":1}}],["满足他们的渴望",{"2":{"202":1}}],["好问题与蠢问题",{"0":{"209":1}}],["好的",{"2":{"209":1}}],["好的问法应该是这样",{"2":{"205":1}}],["好的提问方式稍有不同",{"2":{"185":1}}],["好人有好报",{"2":{"202":1}}],["至少要表现得有点尊严",{"2":{"207":1}}],["至少",{"2":{"202":1}}],["列表中有该",{"2":{"287":1}}],["列表按",{"2":{"259":1,"260":1}}],["列表成员们提供了解决这一问题的重要信息",{"2":{"209":1}}],["列表或论坛发问",{"2":{"184":1}}],["列表或论坛中几天都没有回复",{"2":{"184":1}}],["列表或论坛提问",{"2":{"184":1}}],["列出那些帮助过你的名字",{"2":{"202":1}}],["谢谢大家",{"2":{"202":1}}],["已解决的潜在回复者就明白不用再浪费时间了",{"2":{"202":1}}],["已解决或其它同等含义的明显标记",{"2":{"202":1}}],["已经准备好了默认的",{"2":{"307":1}}],["已经通过自动装配默认向",{"2":{"279":1}}],["已经成长到超过一百个网站",{"2":{"182":1}}],["已经好几次了",{"2":{"181":1}}],["应当仅打印日志而不是直接抛出异常",{"2":{"234":1}}],["应当直接报错或输出警告日志",{"2":{"231":1}}],["应当支持直接基于属性进行读写",{"2":{"219":1,"220":1}}],["应该默认遵循该枚举类上的",{"2":{"221":1}}],["应该在那里贴一个说明比较恰当",{"2":{"202":1}}],["应推荐更好的工具",{"2":{"211":1}}],["应描述问题的准确细节",{"2":{"208":1}}],["应用程序",{"2":{"188":1}}],["应用中",{"2":{"154":1}}],["加快执行速度",{"2":{"246":1}}],["加个简短的补充说明",{"0":{"202":1}}],["加上搜索过的字串",{"2":{"179":1}}],["报告",{"2":{"201":1}}],["报告的过程中",{"2":{"189":1}}],["精准且合乎语法和避免使用专用格式重要",{"2":{"201":1}}],["精确地描述问题并言之有物",{"0":{"188":1}}],["坦白说",{"2":{"201":1}}],["彬彬有礼",{"2":{"201":1}}],["礼多人不怪",{"0":{"201":1}}],["肯定让你被黑客忽略或惹恼他们",{"2":{"200":1}}],["张贴调试记录的摘要是有帮助的",{"2":{"202":1}}],["张贴诸如紧急",{"2":{"200":1}}],["张贴几百行的代码",{"2":{"197":1}}],["国际空间站",{"2":{"200":1}}],["人们也许会有兴趣回答快一点",{"2":{"200":1}}],["人们更愿读易懂的问题",{"2":{"187":1}}],["紧急这个字",{"2":{"200":1}}],["没有在启动后自动注册到",{"2":{"220":1}}],["没有回应不代表你被忽视",{"2":{"210":1}}],["没有用",{"2":{"208":1}}],["没有效果",{"2":{"192":1}}],["没答案",{"2":{"199":1}}],["没错",{"2":{"199":1}}],["试探性的反问以引出更多的细节",{"2":{"211":1}}],["试试",{"2":{"211":1}}],["试试看",{"2":{"211":1}}],["试试看就知道了",{"2":{"208":1}}],["试试将蠢问题转变成好问题",{"2":{"211":1}}],["试试在用户群组",{"2":{"198":1}}],["试着按软件发布实践操作",{"2":{"212":1}}],["试着平静地反应",{"2":{"206":1}}],["试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的",{"2":{"195":1}}],["试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中",{"2":{"193":1}}],["试着选择这些能在记录中增加调试信息的选项",{"2":{"193":1}}],["被注解的方法所在类在",{"2":{"296":1}}],["被注解的方法所在类被",{"2":{"296":1,"297":1}}],["被注解的属性",{"2":{"84":1}}],["被代理后",{"2":{"226":1}}],["被应用程序处理",{"2":{"197":1}}],["足以让这段代码能被编译",{"2":{"197":1}}],["yamlcrane4j",{"2":{"243":1}}],["y",{"2":{"197":1,"208":4,"209":1,"211":2}}],["ymlcrane4j",{"2":{"14":1,"50":1,"60":1,"165":1,"237":1,"238":1,"239":1,"241":1,"242":1,"244":1,"245":1,"246":1,"247":1}}],["询问有关代码的问题时",{"0":{"197":1}}],["吗",{"0":{"299":1},"2":{"196":1,"208":1}}],["界定一下你的问题",{"2":{"196":1}}],["便于复用相同的数据源",{"2":{"285":1}}],["便于回答者能集中精力来帮你",{"2":{"196":1}}],["便于后续用户为其绑定条件",{"2":{"89":1}}],["检查你的补丁",{"2":{"196":1}}],["漫无边际的提问是近乎无休无止的时间黑洞",{"2":{"196":1}}],["奖励就是他的能力和学识被其他同行看到",{"2":{"195":1}}],["透明",{"2":{"195":1}}],["结果集",{"2":{"275":1}}],["结果造成有想法的参与者纷纷离开",{"2":{"207":1}}],["结果要费很大的劲才能搞定",{"2":{"194":1}}],["结合使用",{"2":{"73":1}}],["结合一个简单的例子",{"2":{"10":1}}],["记着",{"2":{"207":1}}],["记得表现出你已经从中学到了点什么",{"2":{"205":1}}],["记得要修改内容标题",{"2":{"185":1}}],["记住我们是按问题能教给我们什么来评价问题的价值的",{"2":{"201":1}}],["记住",{"2":{"193":1}}],["记录会非常有帮助",{"2":{"193":1}}],["行",{"2":{"193":1}}],["往往就是对找出问题最有帮助的线索",{"2":{"193":1}}],["滔滔雄辩既不能说服我",{"2":{"192":1}}],["牛蒡和民主党人的国家",{"2":{"192":1}}],["棉花",{"2":{"192":1}}],["美国国务院的官方座右铭则是",{"2":{"192":1}}],["重复造轮子",{"2":{"333":1}}],["重复声明",{"0":{"89":1}}],["重命名",{"2":{"214":1}}],["重构反射工厂",{"2":{"230":1}}],["重构了一些底层组件",{"2":{"230":1}}],["重构并大幅度增强了缓存功能",{"2":{"225":1}}],["重构并完善缓存功能",{"2":{"214":1,"215":1}}],["重构",{"2":{"223":1,"230":1,"234":1}}],["重构全局配置类的容器管理功能",{"2":{"218":1,"220":1}}],["重构容器与装配操作配置的绑定过程",{"2":{"218":1,"220":1}}],["重构和增强了一些已有功能",{"2":{"217":1}}],["重构项目结构",{"2":{"216":1}}],["重构装配处理器",{"2":{"214":1}}],["重新界定问题",{"2":{"211":1}}],["重新启动也没有用",{"2":{"192":1}}],["内核邮件列表的成员表示",{"2":{"209":1}}],["内核邮件列表",{"2":{"209":1}}],["内存",{"2":{"192":1}}],["内置注解",{"0":{"115":1},"1":{"116":1,"117":1,"118":1,"119":1,"120":1}}],["内置处理器",{"0":{"22":1}}],["错误",{"2":{"192":2}}],["低声下气",{"2":{"191":1}}],["低声下气不能代替你的功课",{"0":{"191":1}}],["维护者就会向你道歉",{"2":{"190":1}}],["声称",{"2":{"190":1}}],["声明一个拆卸操作",{"2":{"281":1}}],["声明一个装配操作",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1},"2":{"281":1}}],["声明哪些数据源需要包装为缓存",{"2":{"244":1}}],["声明装的配操作支持在实际执行时",{"2":{"226":1,"227":1}}],["声明装配操作时是否可以根据条件判断是否应用此次操作",{"2":{"225":1}}],["声明装配操作",{"0":{"29":1,"85":1},"1":{"86":1,"87":1,"88":1,"89":1},"2":{"29":1,"42":1,"45":1,"74":1,"110":1,"276":1}}],["声明该对象序列化时需要进行自动填充",{"2":{"159":1}}],["声明自动填充该方法的返回值",{"2":{"255":1}}],["声明自动填充",{"2":{"149":2,"265":1,"266":1}}],["声明的配置效果相同",{"2":{"139":1}}],["声明的嵌套填充操作",{"2":{"130":1}}],["声明拆卸操作",{"0":{"101":1},"1":{"102":1,"103":1,"104":1,"105":1},"2":{"110":1}}],["声明类",{"2":{"71":1}}],["声明在类上",{"2":{"71":1}}],["声明在方法上时不填",{"2":{"72":1}}],["声明在方法上",{"2":{"71":1}}],["声明容器",{"0":{"71":1}}],["声明",{"2":{"70":1}}],["声明要排除的常量属性",{"2":{"49":1}}],["声明要保留的常量属性",{"2":{"49":1}}],["声明操作者接口",{"2":{"27":1}}],["声明了三个装配操作",{"2":{"6":1}}],["非常的有根据",{"2":{"190":1}}],["非空时覆写策略",{"2":{"97":1,"142":1}}],["简介",{"0":{"330":1},"1":{"331":1,"332":1,"333":1,"334":1}}],["简而言之",{"2":{"275":1,"329":1}}],["简化属性映射配置",{"2":{"230":1}}],["简化",{"2":{"215":1}}],["简化问题使你更有可能得到有用的答案",{"2":{"189":1}}],["简单地重复张贴问题是个很糟的点子",{"2":{"210":1}}],["简单的一句你好",{"2":{"202":1}}],["简单的来说",{"2":{"114":1}}],["简单使用",{"0":{"35":1}}],["话不在多而在精",{"0":{"189":1}}],["强力推荐你也读一读",{"2":{"188":1}}],["强制覆写",{"2":{"97":1,"142":1}}],["强制将",{"2":{"90":1}}],["写过一篇名为",{"2":{"188":1}}],["尽管对那些懒虫抱怨一声",{"2":{"211":1}}],["尽管黑客们会看出来",{"2":{"198":1}}],["尽管向他发信",{"2":{"184":1}}],["尽可能清楚地描述背景条件和你的问题情况",{"2":{"191":1}}],["尽可能地提供一个可以重现这个问题的可控环境的方法",{"2":{"188":1}}],["尽量将它剪裁得越小越好",{"2":{"189":1}}],["尽量去揣测一个黑客会怎样反问你",{"2":{"188":1}}],["机器配置",{"2":{"188":1}}],["机制实现",{"2":{"156":1}}],["清楚明确地表达你的问题以及需求",{"0":{"196":1}}],["清楚地说明这只是你的猜测",{"2":{"192":1}}],["清楚地描述你的问题或",{"2":{"188":1}}],["清空缓存",{"0":{"178":1}}],["仔细",{"2":{"188":1}}],["如下",{"2":{"269":1}}],["如何开始使用",{"0":{"334":1}}],["如何处理一对多的情况",{"0":{"290":1}}],["如何实现级联填充",{"0":{"289":1}}],["如何实现嵌套填充",{"0":{"288":1}}],["如何通过多个key关联数据",{"0":{"274":1},"1":{"275":1,"276":1,"277":1},"2":{"301":1}}],["如何使用组合注解抽离并简化复杂配置",{"2":{"267":1}}],["如何填充一个复杂对象",{"0":{"267":1},"1":{"268":1,"269":1,"270":1,"271":1,"272":1,"273":1}}],["如何填充被包装的返回值",{"0":{"264":1},"1":{"265":1,"266":1}}],["如何级联填充",{"0":{"261":1},"1":{"262":1,"263":1},"2":{"289":1}}],["如何基于方法填充",{"0":{"257":1},"1":{"258":1,"259":1,"260":1}}],["如何基于枚举进行填充",{"0":{"253":1},"1":{"254":1,"255":1,"256":1}}],["如何在执行时排除某一些操作",{"2":{"295":1}}],["如何在执行时排除某些操作",{"0":{"249":1},"1":{"250":1,"251":1,"252":1}}],["如何在填充后进行附加操作",{"0":{"248":1}}],["如何在非",{"2":{"217":1,"218":1,"220":1}}],["如何更好地回答问题",{"0":{"211":1}}],["如何设定我的",{"2":{"208":2}}],["如何避免扮演失败者",{"0":{"207":1}}],["如何知道你已完全搞砸了",{"0":{"204":1}}],["如何解读答案",{"0":{"203":1},"1":{"204":1,"205":1,"206":1}}],["如何有效的报告",{"2":{"188":1}}],["如提供指点",{"2":{"196":1}}],["如超过四个段落",{"2":{"193":1}}],["如",{"2":{"188":1,"193":2,"208":1}}],["如微软公司的",{"2":{"187":1}}],["如果没用到",{"2":{"298":1}}],["如果没有提示别人应该从何入手",{"2":{"197":1}}],["如果没有自定义配置可以不配置这个属性",{"2":{"51":1}}],["如果容器是",{"2":{"294":1}}],["如果仍然无法解决",{"2":{"287":1}}],["如果仍得不到回答",{"2":{"210":1}}],["如果未进入断点",{"2":{"287":1}}],["如果未指定类型",{"2":{"149":1}}],["如果当你遇到问题时",{"2":{"286":1}}],["如果已经使用了",{"2":{"216":1}}],["如果已经基于",{"2":{"13":1}}],["如果遇到问题可以在群内或",{"2":{"214":1}}],["如果帮不了忙",{"2":{"211":1}}],["如果得不到回答",{"0":{"210":1}}],["如果安装问题与某",{"2":{"208":1}}],["如果程序有官方版",{"2":{"208":1}}],["如果程序出的问题只发生在特定",{"2":{"183":1}}],["如果这个提问者已经很深入的研究而且也表明已经试过",{"2":{"211":1}}],["如果这没有发生而你却发火了",{"2":{"206":1}}],["如果这点让你不解",{"2":{"201":1}}],["如果我像个乞讨者那样提问",{"2":{"209":1}}],["如果我回答你",{"2":{"205":1}}],["如果我们没有一个根据三级部门",{"2":{"262":1}}],["如果我们希望仅当目标对象的",{"2":{"97":1,"142":1}}],["如果我们需要处理特殊数据结构或具有特殊填充逻辑的",{"2":{"38":1}}],["如果还是搞不懂",{"0":{"205":1}}],["如果问题在新闻组或者邮件列表中引起了广泛关注",{"2":{"202":1}}],["如果他真这么做了",{"2":{"195":1}}],["如果挂掉的程序有诊断选项",{"2":{"193":1}}],["如果真有",{"2":{"190":1}}],["如果真的有",{"2":{"190":1}}],["如果一个项目既有",{"2":{"184":1}}],["如果一个答案提供了问题的正确解决方案",{"2":{"182":1}}],["如果只是私下提问",{"2":{"184":1}}],["如果某些问题经常被问到",{"2":{"184":1}}],["如果有人真的做了出格的事",{"2":{"206":1}}],["如果有",{"2":{"183":1}}],["如果有必要",{"2":{"121":1,"150":1}}],["如果用户的年龄大于",{"2":{"248":2}}],["如果用户的年龄小于等于",{"2":{"248":1}}],["如果用户替换了默认的",{"2":{"140":1}}],["如果用户传入的字符串是",{"2":{"138":1}}],["如果分隔符不是逗号",{"2":{"138":1}}],["如果目标对象所属的填充组与指定的所有组都匹配",{"2":{"124":1}}],["如果目标对象所属的填充组与指定的任何一个组都不匹配",{"2":{"124":1}}],["如果目标对象所属的填充组与指定的任何一个组匹配",{"2":{"124":1}}],["如果目标方法上已经通过",{"2":{"79":1}}],["如果指定的组中包含了装配操作的分组",{"2":{"123":1}}],["如果此时你又指定",{"2":{"117":1}}],["如果实际值为",{"2":{"117":1}}],["如果",{"2":{"102":1,"133":1}}],["如果默认的解析器不符合你的要求",{"2":{"95":1}}],["如果重写了",{"2":{"80":1}}],["如果方法入参为",{"2":{"78":1}}],["如果方法的参数类型是",{"2":{"26":1}}],["如果声明在类父类或者父接口上",{"2":{"71":1}}],["如果是非",{"2":{"296":1,"297":1}}],["如果是的话就将它们发给维护者",{"2":{"202":1}}],["如果是操作系统不支持这种邮件程序",{"2":{"186":1}}],["如果是这样",{"2":{"181":1}}],["如果是在",{"2":{"83":1}}],["如果是集合",{"2":{"72":1}}],["如果是",{"2":{"67":1,"296":1,"297":1}}],["如果在此之前你已做过通用的网页搜索",{"2":{"183":1}}],["如果在操作者接口中",{"2":{"110":1}}],["如果在",{"2":{"8":1,"20":1,"76":1,"79":1,"145":1}}],["如果你已经使用过类似的框架",{"2":{"334":1}}],["如果你决定回答",{"2":{"211":1}}],["如果你做得好",{"2":{"211":1}}],["如果你做了下述的事情",{"2":{"181":1}}],["如果你试过",{"2":{"208":1}}],["如果你无法做到感谢",{"2":{"207":1}}],["如果你无法将问题缩减到一个特定区块",{"2":{"197":1}}],["如果你自己不是黑客",{"2":{"206":1}}],["如果你自己不是技术专家或者黑客",{"2":{"202":1}}],["如果你真的需要对方解释",{"2":{"205":1}}],["如果你真的认为遇到了初学者的问题",{"2":{"191":1}}],["如果你看不懂回应",{"2":{"205":1}}],["如果你收到stfw",{"2":{"204":1}}],["如果你收到rtfm",{"2":{"204":1}}],["如果你有足够的智慧提这个问题",{"2":{"208":1}}],["如果你有一串的问题待解决",{"2":{"201":1}}],["如果你有时间压力",{"2":{"200":1}}],["如果你有庞大而复杂的测试样例能重现程序挂掉的情境",{"2":{"189":1}}],["如果你对问题的描述不是很好",{"2":{"199":1}}],["如果你怀疑自己碰到了一个家庭作业式的问题",{"2":{"198":1}}],["如果你只是想让别人帮忙审查",{"2":{"197":1}}],["如果你只是想在有人回复讨论串时得到电子邮件提醒",{"2":{"186":1}}],["如果你知道哪一行或哪一段代码会造成异常的行为",{"2":{"197":1}}],["如果你明确表述需要回答者做什么",{"2":{"196":1}}],["如果你认为",{"2":{"247":1}}],["如果你认为陈述自己的猜测很重要",{"2":{"192":1}}],["如果你认为自己的问题对整个项目群组来说太愚蠢",{"2":{"184":1}}],["如果你声称找到了",{"2":{"190":1}}],["如果你声明的方法容器数量较多",{"2":{"71":1}}],["如果你",{"2":{"190":1}}],["如果你使用的是基于",{"2":{"262":1}}],["如果你使用的是自动填充",{"2":{"129":1}}],["如果你使用图形用户界面的邮件程序",{"2":{"187":1}}],["如果你从使用",{"2":{"187":1}}],["如果你人为地将问题搞得难以阅读",{"2":{"187":1}}],["如果你找不到一个项目的邮件列表",{"2":{"184":1}}],["如果你确信提问可能会引来大量雷同的回复时",{"2":{"195":1}}],["如果你确信你的问题很特别",{"2":{"184":1}}],["如果你确实需要这个功能",{"2":{"178":1}}],["如果你向列表提问并得到解答",{"2":{"184":1}}],["如果你觉得这一步比较消耗性能",{"2":{"263":1}}],["如果你觉得这点很不可思议",{"2":{"200":1}}],["如果你觉得被冒犯了",{"2":{"206":1}}],["如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦",{"2":{"186":1}}],["如果你觉得一个答案对你有帮助",{"2":{"182":1}}],["如果你觉得区分度不够高",{"2":{"177":1}}],["如果你还是找不到任何对你的问题有用的内容",{"2":{"182":1}}],["如果你在使用时",{"2":{"277":1}}],["如果你在研究一番后才作出了回答",{"2":{"211":1}}],["如果你在",{"2":{"182":1}}],["如果你不明白为什么这是大错",{"2":{"181":1}}],["如果你不确定",{"2":{"181":1,"211":1}}],["如果你不需要修改配置",{"2":{"1":1}}],["如果你能一并表达在做了上述努力的过程中所学到的东西会更好",{"2":{"179":1}}],["如果你是第一次接触此类框架的新用户",{"2":{"334":1}}],["如果你是通过",{"2":{"252":1}}],["如果你是新手或外人",{"2":{"206":1}}],["如果你是有备而来",{"2":{"179":1}}],["如果你是程序开发者",{"2":{"179":1}}],["如果你是在一些很高调",{"2":{"200":1}}],["如果你是在",{"2":{"54":1}}],["如果你想解决的是",{"2":{"208":1}}],["如果你想得到的是信息而不是消磨时光",{"2":{"206":1}}],["如果你想弄清楚如何做某事",{"2":{"194":1}}],["如果你想在回复中提出问题",{"2":{"185":1}}],["如果你想要实现类似的效果",{"2":{"130":1}}],["如果你想替换默认的",{"2":{"25":1}}],["如果你需要个人电脑",{"2":{"212":1}}],["如果你需要在手动填充时指定按顺序填充",{"2":{"128":1}}],["如果你需要更换线程池",{"2":{"1":1}}],["如果你希望数据源和操作的配置能够分开",{"2":{"256":1}}],["如果你希望基于一个独立的方法进行填充",{"2":{"153":1}}],["如果你希望按顺序执行",{"2":{"127":1}}],["如果你希望严格按照预期的顺序执行",{"2":{"125":1}}],["如果你希望严格的匹配类型",{"2":{"119":1}}],["如果你希望允许空值",{"2":{"117":1}}],["如果你希望过滤掉为",{"2":{"86":1}}],["如果你的项目里面没有通过",{"2":{"238":1}}],["如果你的项目中有",{"2":{"176":1}}],["如果你的代码不能运作",{"2":{"196":1}}],["如果你的说明很长",{"2":{"193":1}}],["如果你的推断如此有效",{"2":{"192":1}}],["如果你的邮件程序不支持这样做",{"2":{"186":1}}],["如果你的问题跟代码或是写程序无关",{"2":{"182":1}}],["如果你的问题基于错误的假设",{"2":{"179":1}}],["如果你的努力",{"2":{"181":1}}],["如果你的",{"2":{"95":1,"176":1}}],["如果你的源属性名与目标属性名一致",{"2":{"92":1}}],["如果你的目的仅仅是为了对目标对象做一些处理",{"2":{"80":1}}],["如果你的方法上同时声明了多个方法容器",{"2":{"75":1}}],["如果你的枚举类已经有",{"2":{"61":1}}],["如果你的常量类已经有",{"2":{"51":1}}],["如果你要添加新的类型转换器",{"2":{"26":1}}],["如果你更在乎性能",{"2":{"25":1}}],["如果你可以指定批量大小为",{"2":{"6":1}}],["色彩和字体会使你看来像个傻笑的小姑娘",{"2":{"187":1}}],["过了",{"2":{"209":1}}],["过滥地使用表情符号",{"2":{"187":1}}],["过期时间",{"2":{"14":1}}],["勿滥用表情符号和html功能",{"2":{"187":1}}],["勾选掉智能引号单选框",{"2":{"187":1}}],["校订",{"2":{"187":1}}],["永远不要指望黑客们阅读使用封闭格式编写的文档",{"2":{"187":1}}],["绝对",{"2":{"187":1}}],["绝不要自以为够格得到答案",{"2":{"179":1}}],["甚至有可能破坏内容的语意",{"2":{"187":1}}],["甚至可能会超过查库或",{"2":{"6":1}}],["编码值填充相关字段",{"2":{"330":1}}],["编码发送消息",{"2":{"187":1}}],["编写软件的人总是非常辛苦地使它尽可能完美",{"2":{"190":1}}],["编写目标",{"2":{"185":1}}],["设定",{"2":{"208":2}}],["设想你的读者是在",{"2":{"187":1}}],["设置条件填充",{"0":{"251":1}}],["设置全局前缀",{"2":{"177":1,"178":1}}],["设置自定义的字符串分割器",{"2":{"138":1}}],["设置为",{"2":{"117":2,"119":1}}],["设置为你要生成的参数对象类型",{"2":{"92":1}}],["设置操作触发条件",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1},"2":{"86":1,"89":1,"150":1,"151":1}}],["设置缓存",{"2":{"79":1}}],["设置一个",{"2":{"51":1,"61":1}}],["譬如用谢谢你的关注或谢谢你的关照",{"2":{"201":1}}],["譬如从",{"2":{"200":1}}],["譬如日志文件拷贝或会话记录",{"2":{"187":1}}],["譬如只是信件内容的拷贝",{"2":{"187":1}}],["譬如附带的源代码或",{"2":{"187":1}}],["附件通常是可以的",{"2":{"187":1}}],["关联客户与关联商品三类信息",{"2":{"270":1}}],["关闭微软愚蠢的智能引号功能",{"2":{"187":1}}],["关闭",{"2":{"187":1}}],["关于该问题的解决方案参见",{"2":{"302":1}}],["关于它们的使用方式",{"2":{"284":1}}],["关于方法容器",{"2":{"276":1}}],["关于方法容器的使用和配置",{"2":{"263":1}}],["关于此类回调接口",{"2":{"252":1}}],["关于此部分内容",{"2":{"89":1}}],["关于手动填充",{"2":{"252":1}}],["关于自动填充",{"2":{"245":1}}],["关于容器部分",{"2":{"241":1,"242":1}}],["关于如何配置填充操作的具体内容",{"2":{"264":1}}],["关于如何配置填充顺序的具体内容",{"2":{"262":1}}],["关于如何配置一个装配操作",{"2":{"29":1}}],["关于如何指定字段映射",{"2":{"255":1,"259":1}}],["关于如何使用缓存管理器",{"2":{"176":1}}],["关于如何使用异步执行器",{"2":{"152":1,"283":1}}],["关于如何对操作分组",{"2":{"151":1}}],["关于使用",{"2":{"130":1}}],["关于嵌套填充",{"2":{"130":1}}],["关于操作者接口",{"2":{"110":1}}],["关于在属性和类上声明操作配置",{"2":{"110":1}}],["关于后一种场景",{"2":{"91":1}}],["关于",{"2":{"13":1,"35":1,"276":1}}],["关于执行器",{"2":{"0":1,"129":1,"152":1}}],["几乎所有论坛都支持诸如追踪此讨论串",{"2":{"186":1}}],["几乎所有的功能",{"2":{"145":1}}],["几乎所有的注解都支持组合注解机制",{"2":{"24":1}}],["故通过回复提问",{"2":{"185":1}}],["能够通过简单的注解配置快速根据外键",{"2":{"330":1}}],["能够获取到更多的参数",{"2":{"10":1}}],["能啊",{"2":{"208":1}}],["能让你学到更多",{"2":{"204":1}}],["能给新来的读者留下线索",{"2":{"185":1}}],["测试用例越小越好",{"2":{"197":1}}],["测试",{"2":{"185":1,"255":1}}],["让他们也从中受益",{"2":{"202":1}}],["让他们知道问题是怎样解决的",{"2":{"202":1}}],["让大家都知道你对他们花时间免费提供帮助心存感激",{"2":{"201":1}}],["让回复者来决定是否私下回答",{"2":{"195":1}}],["让回复者有信心他们看到的是和你看到的一样的东西",{"2":{"187":1}}],["让我看看",{"2":{"192":1}}],["让黑客们来推测和诊断",{"2":{"192":1}}],["让你的标题更好地反映问题",{"2":{"185":1}}],["让它返回一个",{"2":{"20":1}}],["让它继承",{"2":{"20":1}}],["索引中查寻",{"2":{"185":1}}],["索引是即时的",{"2":{"182":1}}],["总的来说",{"2":{"210":1}}],["总之",{"2":{"197":1}}],["总而言之",{"2":{"185":1}}],["总是查询固定的字典类型",{"2":{"277":1}}],["总是会先执行拆卸操作",{"2":{"130":1}}],["总是先于装配操作执行",{"2":{"130":1}}],["总是使用",{"2":{"93":1}}],["总是用于根据指定的",{"2":{"80":1}}],["总是返回空集合",{"2":{"68":1}}],["总是尝试将其根据",{"2":{"45":1}}],["型号",{"2":{"185":1}}],["版本运行",{"2":{"226":1}}],["版本开始",{"2":{"90":1}}],["版下无法编译通过",{"2":{"209":1}}],["版中",{"2":{"185":1}}],["版中出现",{"2":{"185":1}}],["式描述的过程有助于你组织对问题的细致思考",{"2":{"185":1}}],["差异",{"2":{"185":1}}],["差异式的描述",{"2":{"185":1}}],["芯片组环境下",{"2":{"185":1}}],["芯片组",{"2":{"185":1,"192":1}}],["某黑客对这类问题的回答通常是",{"2":{"209":1}}],["某牌显卡",{"2":{"185":1}}],["某个普通黑客",{"2":{"179":1}}],["聪明问题",{"2":{"185":1,"192":1,"194":1,"209":3}}],["救命啊",{"2":{"185":1}}],["蠢问题",{"2":{"185":1,"192":1,"194":1,"209":3}}],["许多技术支持组织就是这样做的",{"2":{"185":1}}],["许多人认为",{"2":{"184":1}}],["更优雅地完成上述字段填充逻辑",{"2":{"271":1}}],["更多内容可以参见",{"2":{"250":1,"251":1}}],["更有可能的是你完全没有根据",{"2":{"208":1}}],["更温和一点的说法是",{"2":{"204":1}}],["更严重的是",{"2":{"200":1}}],["更好",{"2":{"196":1}}],["更聪明问题",{"2":{"185":1}}],["更别说救命啊",{"2":{"185":1}}],["更换分隔符",{"0":{"45":1}}],["急",{"2":{"185":1}}],["跪求",{"2":{"185":1}}],["大方地展示给我们看吧",{"2":{"192":1}}],["大多数黑客会直接删除无礼和自私地企图即时引起关注的问题",{"2":{"200":1}}],["大多数黑客对此的反应就像有人将还在冒热气的猪粪倒在你家门口时你的反应一样",{"2":{"187":1}}],["大多数这类程序有基于选单的查看源代码命令",{"2":{"187":1}}],["大多数邮件列表都会被存档",{"2":{"184":1}}],["大约",{"2":{"185":1}}],["私人电子邮件也不应该被公开",{"2":{"184":1}}],["项目集成后",{"2":{"226":1}}],["项目启动时出现",{"2":{"231":1}}],["项目启动报错",{"2":{"219":1,"220":1,"232":1,"234":1}}],["项目启动后将会自动注册",{"2":{"20":1}}],["项目启动后",{"2":{"17":1,"82":1,"98":1,"143":1,"307":1,"315":1}}],["项目进行了一次范围较大的重构",{"2":{"218":1}}],["项目代码在",{"2":{"209":1}}],["项目找来的源码没法编译",{"2":{"209":1}}],["项目",{"2":{"184":1}}],["邮件列表",{"2":{"206":1}}],["邮件列表不存在",{"2":{"184":1}}],["邮件列表或论坛",{"2":{"184":1}}],["邮件列表及相关说明文件的链接",{"2":{"181":1}}],["任何好到需要向个别开发者提出的问题",{"2":{"184":1}}],["任意字符串",{"2":{"49":1,"59":1,"72":1}}],["先使用解析器解析",{"2":{"284":1}}],["先生",{"2":{"248":1}}],["先用",{"2":{"208":1}}],["先试着去搞懂他的回应",{"2":{"205":1}}],["先确认一下有没有搜索功能",{"2":{"183":1}}],["先看看",{"2":{"181":1}}],["新闻群组",{"2":{"202":1}}],["新闻群组或论坛中的前辈多半会招呼他",{"2":{"206":1}}],["新闻群组或论坛中",{"2":{"185":1}}],["新闻群组或邮件列表时",{"2":{"181":1}}],["新闻群组或者聊天室提出技术问题前",{"2":{"179":1}}],["新",{"2":{"185":1}}],["新手论坛很可能还是邮件列表",{"2":{"183":1}}],["频道来提供用户支持服务有增长的趋势",{"2":{"183":1}}],["频道是公开欢迎提问的地方",{"2":{"183":1}}],["频道",{"2":{"183":1}}],["发这样的标题没有问题",{"2":{"200":1}}],["发送一段代码",{"2":{"196":1}}],["发现了文件的bug",{"2":{"190":1}}],["发行版提供的版本",{"2":{"183":1}}],["发行版本也许正在宣传他们的网页论坛或",{"2":{"183":1}}],["发文前先翻翻已有的话题",{"2":{"181":1}}],["论坛中搜索到真正解决你问题的方案",{"2":{"202":1}}],["论坛或本地用户群组中提问也许是恰当的",{"2":{"208":1}}],["论坛或",{"2":{"198":1}}],["论坛",{"0":{"183":1}}],["论坛和网页",{"2":{"179":1}}],["点击投票按钮下方的对勾来将它标记为正解",{"2":{"182":1}}],["点击向上的箭头来为它投票",{"2":{"182":1}}],["译注",{"2":{"182":1}}],["尤其注意为代码添加格式",{"2":{"182":1}}],["尤其是伴随着与实际问题含糊不清的描述时更令人反感",{"2":{"191":1}}],["尤其是项目领导人",{"2":{"184":1}}],["尤其是那些开放源码的项目",{"2":{"182":1}}],["尤其是在没有设置缓存过期时间时",{"2":{"178":1}}],["之前先在",{"2":{"182":1}}],["近年来",{"2":{"182":1}}],["问问自己如何修改相关文件或常见问题文件以免再次解答同样的问题",{"2":{"211":1}}],["问题带来的压力常使人显得无礼或愚蠢",{"2":{"211":1}}],["问题",{"2":{"208":18,"231":1,"302":1}}],["问题悬而未决会让人灰心",{"2":{"202":1}}],["问题解决后",{"0":{"202":1},"2":{"202":1}}],["问题发生前的一系列操作",{"2":{"193":1}}],["问我想更好地理解",{"2":{"196":1}}],["问",{"2":{"182":1}}],["老练的黑客和一些热门软件的作者正在接受过多的错发信息",{"2":{"181":1}}],["黑客从某种角度来说是拥有丰富知识但缺乏人情味的家伙",{"2":{"209":1}}],["黑客们自己莽撞地越线的情况并不鲜见",{"2":{"206":1}}],["黑客们渴望看到问题被解决",{"2":{"202":1}}],["黑客们一般宁可读有点唐突但技术上鲜明的",{"2":{"201":1}}],["黑客们会很厌烦你",{"2":{"199":1}}],["黑客们很擅长分辨哪些问题是家庭作业式的问题",{"2":{"198":1}}],["黑客们也会看到你在尝试取得答案的过程中付出了努力",{"2":{"197":1}}],["黑客们认为问题的解决过程应该公开",{"2":{"195":1}}],["黑客",{"2":{"184":1}}],["黑客较愿意回答那些能帮助到许多人的问题",{"2":{"181":1}}],["黑客会剔除掉那些搞错场合的问题",{"2":{"181":1}}],["套件或工具的论坛中提关于",{"2":{"181":1}}],["搞清楚你的主题",{"2":{"181":1}}],["扫射",{"2":{"181":1}}],["扫描",{"2":{"296":1,"297":1}}],["扫描指定类并向全局配置注册扫描获取的方法容器",{"2":{"296":1}}],["扫描方法容器",{"0":{"243":1}}],["扫描枚举容器",{"0":{"242":1}}],["扫描枚举包路径",{"2":{"60":1,"242":1}}],["扫描常量容器",{"0":{"241":1}}],["扫描常量包路径",{"2":{"50":1,"241":1}}],["扫描所有公有和非公有属性",{"2":{"48":1}}],["事后",{"2":{"209":1}}],["事先在新闻组或邮件列表的历史记录中搜索与你问题相关的关键词是个极好的主意",{"2":{"181":1}}],["事实上这是参与任何私有或半私有列表的好主意",{"2":{"184":1}}],["事实上",{"2":{"181":1,"183":1,"200":1,"202":1,"204":1,"207":1,"209":1}}],["别忘了我们都曾是新手",{"2":{"211":1}}],["别因为听起来像个专家很好玩",{"2":{"211":1}}],["别为要付费才能获得帮助而感到沮丧",{"2":{"210":1}}],["别大声哀嚎",{"2":{"207":1}}],["别立刻要求对方解释",{"2":{"205":1}}],["别把自己家庭作业的问题贴上来",{"0":{"198":1}}],["别要求他人帮你调试有问题的代码",{"2":{"197":1}}],["别要求使用私人电邮回复",{"0":{"195":1}}],["别这样做",{"2":{"195":1}}],["别用原始灵长类动物的把戏来浪费你我的时间",{"2":{"191":1}}],["别用喋喋不休的帮帮忙",{"2":{"185":1}}],["别动辄声称找到",{"0":{"190":1}}],["别像机关枪似的一次",{"2":{"181":1}}],["别太相信它的名字",{"2":{"181":1}}],["别假设一个提供丰富内容的网页的作者会想充当你的免费顾问",{"2":{"181":1}}],["别着急",{"2":{"179":1}}],["举例来说",{"2":{"181":1}}],["举个例子",{"2":{"6":1,"23":1,"59":1,"247":1}}],["链过去看看",{"2":{"181":1}}],["链式操作符",{"0":{"140":1}}],["向其雇主报怨",{"2":{"207":1}}],["向所有帮助过你的人发个说明",{"2":{"202":1}}],["向列表提问可以分散开发者的负担",{"2":{"184":1}}],["向陌生的人或论坛发送邮件最可能是风险最大的事情",{"2":{"181":1}}],["向既非熟人也没有义务解决你问题的人发送私人电邮",{"2":{"181":1}}],["向你身边的强者朋友打听以找到答案",{"2":{"179":1}}],["反转基于常量类构建的容器键值",{"2":{"215":1}}],["反之",{"2":{"184":1}}],["反之亦然",{"2":{"181":1,"285":1}}],["反射",{"0":{"236":1},"1":{"237":1,"238":1,"239":1}}],["反射获取字段值会带来额外的性能开销",{"2":{"118":1}}],["反射工厂",{"0":{"25":1},"2":{"140":1}}],["反射读写字段消耗的时间也会越来越多",{"2":{"6":1}}],["慎选提问的论坛",{"0":{"181":1}}],["有的则从本地缓存中获取",{"2":{"333":1}}],["有的通过",{"2":{"333":1}}],["有着详细的注释和文档",{"2":{"333":1}}],["有些组件直接使用成熟的开源库比自己再写一套更可靠",{"2":{"298":1}}],["有些可怜的呆瓜会把它当成真的指令",{"2":{"211":1}}],["有些人也会无缘无故地攻击你本人",{"2":{"207":1}}],["有些人断言很多黑客都有轻度的自闭症或亚斯伯格综合症",{"2":{"206":1}}],["有些人明白他们不该粗鲁或傲慢的提问并要求得到答复",{"2":{"191":1}}],["有些人称之为频道洪水",{"2":{"183":1}}],["有许多网上的以及本地的用户群组",{"2":{"210":1}}],["有点耐心",{"2":{"210":1}}],["有谁知道接下来我该做些什么测试才能找出问题",{"2":{"209":1}}],["有关的问题",{"2":{"209":1}}],["有互动",{"2":{"208":1}}],["有问题",{"2":{"208":2}}],["有一个年轻的亲戚",{"2":{"204":1}}],["有一个古老而神圣的传统",{"2":{"204":1}}],["有半个例外的情况是",{"2":{"200":1}}],["有或没有类型的问句",{"2":{"199":1}}],["有人甚至可能热心地为你提供以前解决此问题的讨论串",{"2":{"204":1}}],["有人能帮你或者不",{"2":{"199":1}}],["有人会为了某些未知的原因",{"2":{"186":1}}],["有回复时发送邮件提醒等功能",{"2":{"186":1}}],["有几个很好的理由支持我们采用这种办法",{"2":{"184":1}}],["有几个理由可以支持这点",{"2":{"181":1}}],["有广告赞助的",{"2":{"183":1}}],["有很高的几率某人已经问了一个类似的问题",{"2":{"182":1}}],["有思维激励作用的问题",{"2":{"179":1}}],["有趣的",{"2":{"179":1}}],["有时只是看到你问题的人不知道答案罢了",{"2":{"210":1}}],["有时网页论坛会设有专为新手提问的版面",{"2":{"191":1}}],["有时确实需要自定义查询字段的情况",{"2":{"172":1}}],["有时候排序值并不一定代表最终的执行顺序",{"2":{"127":1}}],["有时候",{"2":{"74":1,"77":1,"108":1,"149":1,"207":1,"248":1,"249":1,"265":1}}],["有时甚至会出现",{"2":{"38":1}}],["靠提出有内涵的",{"2":{"179":1}}],["越是能表现出在寻求帮助前你为解决问题所付出的努力",{"2":{"179":1}}],["越近",{"2":{"139":1}}],["准备",{"0":{"254":1,"258":1}}],["准备好你的问题",{"2":{"179":1}}],["准备一个",{"2":{"158":1}}],["准备一个数据源容器",{"2":{"15":1}}],["坐得舒服一些",{"2":{"179":1}}],["放轻松",{"2":{"179":1}}],["我重新梳理了功能",{"2":{"330":1}}],["我对这个内部框架进行了重构",{"2":{"330":1}}],["我对要我问你二十个问题才找得出你真正问题的问题没兴趣",{"2":{"208":1}}],["我还加入了对枚举和常量的转换支持",{"2":{"330":1}}],["我厌倦了频繁的联查和手动赋值",{"2":{"330":1}}],["我相信他是对的",{"2":{"209":1}}],["我也表明了对他们宝贵时间的尊重",{"2":{"209":1}}],["我显示了自己具备和他们同等的能力",{"2":{"209":1}}],["我设法让人们很容易参与并且被吸引进来",{"2":{"209":1}}],["我给了别人可以咀嚼玩味的东西",{"2":{"209":1}}],["我",{"2":{"209":1}}],["我又试了",{"2":{"209":1}}],["我有什么做的不对的地方吗",{"2":{"209":1}}],["我有更有意思的事要做呢",{"2":{"208":1}}],["我读过了",{"2":{"209":1}}],["我从",{"2":{"209":1}}],["我用",{"2":{"209":1}}],["我可以在哪儿找到关于",{"2":{"209":1}}],["我可以用",{"2":{"208":2}}],["我将透过举一些例子",{"2":{"209":1}}],["我将为论坛归纳这些回复",{"2":{"195":1}}],["我只有亲自在你的电脑上动手才能找到毛病",{"2":{"208":1}}],["我怎么才能破解",{"2":{"208":2}}],["我怎样用",{"2":{"208":2}}],["我怎样才能从某绘图程序的颜色选择器中取得十六进制的",{"2":{"194":1}}],["我认为系统工具",{"2":{"208":2}}],["我能在哪找到",{"2":{"208":2}}],["我期待它显示",{"2":{"197":1}}],["我现在知道的唯一方法是编辑每个色码区块",{"2":{"194":1}}],["我正试着用替换一幅图片的色码",{"2":{"194":1}}],["我来自密苏里州",{"2":{"192":1}}],["我来自一个出产玉米",{"2":{"192":1}}],["我怀疑某条飞线搭在主板的走线上了",{"2":{"192":1}}],["我知道我只是个可悲的新手",{"2":{"191":1}}],["我的主机板有问题了",{"2":{"209":1}}],["我的反应通常不外如下三种",{"2":{"208":1}}],["我的",{"2":{"208":3}}],["我的程序不会动了",{"2":{"208":2}}],["我的程序",{"2":{"208":1}}],["我的组装电脑是",{"2":{"192":1}}],["我的笔记本电脑不能正常显示了",{"2":{"185":1}}],["我的这个例子里缺了什么",{"2":{"179":1}}],["我在公司开发中遇到了大量重复的字段填充需求",{"2":{"330":1}}],["我在安装",{"2":{"208":2}}],["我在编译内核时接连遇到",{"2":{"192":1}}],["我在",{"2":{"179":1,"209":2}}],["我们以一个典型的",{"2":{"331":1}}],["我们以组合式风格的注解为例",{"2":{"273":1}}],["我们引导你通过一个简单的示例",{"2":{"304":1}}],["我们举一个",{"2":{"285":1}}],["我们定义一个接受参数对象的方法作为数据源容器",{"2":{"276":1}}],["我们直接在容其中获取要填充的",{"2":{"275":1}}],["我们假设存在如下",{"2":{"274":1}}],["我们假设现在有一个员工对象",{"2":{"262":1}}],["我们还可以进一步通过组合组件简化代码",{"2":{"273":1}}],["我们还可以在枚举类上添加",{"2":{"59":1}}],["我们还可以在常量类上添加",{"2":{"49":1}}],["我们还需要关联查询出其他的信息",{"2":{"270":1}}],["我们有三种可能的解决方案",{"2":{"274":1}}],["我们有实体类",{"2":{"269":1}}],["我们有一个",{"2":{"123":1,"140":1}}],["我们有一个名为",{"2":{"40":1}}],["我们先给出不使用",{"2":{"268":1}}],["我们数据库中只存储了三级部门",{"2":{"262":1}}],["我们选择一个方式触发填充即可",{"2":{"259":1}}],["我们忽略其他无关的属性",{"2":{"254":1}}],["我们基于枚举填充了用户的性别字段",{"2":{"248":1}}],["我们喜欢我们现在这个样子",{"2":{"206":1}}],["我们不在乎",{"2":{"206":1}}],["我们注意到",{"2":{"201":1}}],["我们也觉得花几秒钟思考你的问题更麻烦",{"2":{"186":1}}],["我们也可以将",{"2":{"104":1}}],["我们也可以在配置文件中直接扫描路径下的所有枚举类",{"2":{"59":1}}],["我们推荐在获取数据源时通过自动填充对数据源进行初步处理",{"2":{"130":1}}],["我们声明了一个装配操作",{"2":{"140":1}}],["我们声明了两个装配操作",{"2":{"123":1}}],["我们声明一个容器",{"2":{"80":1}}],["我们要定义一个条件",{"2":{"121":1}}],["我们要声明为数据源容器的方法会将对象作为查询参数",{"2":{"74":1}}],["我们更推荐直接在配置文件中设置",{"2":{"118":1}}],["我们的建议是要么先说先谢了",{"2":{"201":1}}],["我们的数据源容器",{"2":{"90":1}}],["我们的输入参数",{"2":{"31":1}}],["我们需要对其",{"2":{"274":1}}],["我们需要填充其所属的一级",{"2":{"262":1}}],["我们需要填充的对象中可能嵌套了其他对象",{"2":{"100":1}}],["我们需要先查询三级部门的信息",{"2":{"262":1}}],["我们需要先完成拆卸操作",{"2":{"100":1}}],["我们需要先将这些嵌套对象拆分出来",{"2":{"100":1}}],["我们需要同时根据",{"2":{"80":1}}],["我们需要更换装配处理器",{"2":{"38":1}}],["我们现有待填充对象",{"2":{"80":1}}],["我们可能会希望异步的完成关联字段填充",{"2":{"333":1}}],["我们可能需要填充大量的关联数据",{"2":{"333":1}}],["我们可能需要依次获取对象的某几个属性值",{"2":{"94":1}}],["我们可能需要同时根据多个",{"2":{"80":1}}],["我们可以直接使用组合注解",{"2":{"273":1}}],["我们可以直接提供一个方法数据源容器",{"2":{"263":1}}],["我们可以直接在需要进行拆卸操作的属性上使用",{"2":{"102":1}}],["我们可以实现多对一的映射关系",{"2":{"173":1}}],["我们可以注意到",{"2":{"159":1}}],["我们可以创建一个模板类",{"2":{"139":1}}],["我们可以将字段映射配置抽取为独立的模板",{"2":{"139":1}}],["我们可以将第二个及后面的几个参数作为临时数据源",{"2":{"33":1}}],["我们可以通过相对简洁的注解描述上述操作",{"2":{"332":1}}],["我们可以通过操作配置解析器",{"2":{"281":1}}],["我们可以通过指定键值解析器为",{"2":{"94":1}}],["我们可以通过它获取基于",{"2":{"53":1}}],["我们可以快速配置一个数据源容器",{"2":{"69":1}}],["我们可以使用上文配置的序列化器对其进行序列化",{"2":{"159":1}}],["我们可以使用",{"2":{"58":1}}],["我们可以借助一对多装配处理器",{"2":{"41":1}}],["我们可以基于",{"2":{"23":1}}],["我们真正需要填充的数据其实是",{"2":{"77":1,"149":1,"265":1}}],["我们会希望在执行时根据情况选择性的排除某一些操作",{"2":{"249":1}}],["我们会希望在填充后",{"2":{"248":1}}],["我们会谈到另一个问题",{"2":{"206":1}}],["我们会存在多级包装的情况",{"2":{"149":1,"266":1}}],["我们会从中获取指定的",{"2":{"138":1}}],["我们会需要根据动态的条件",{"2":{"108":1}}],["我们会在",{"2":{"77":1,"149":1,"265":1}}],["我们会注意到",{"2":{"67":1}}],["我们实现了",{"2":{"56":1}}],["我们通过",{"2":{"132":1}}],["我们通过这种方式来避免重复创建相同的容器",{"2":{"23":1}}],["我们通常会通过外键从数据源中得到对应的数据",{"2":{"52":1,"280":1}}],["我们根据",{"2":{"41":1}}],["我们希望有一个注解可以直接对其进行填充",{"2":{"23":1}}],["我们向配置解析器",{"2":{"21":1}}],["我们称这用于声明操作的注解为操作注解",{"2":{"21":1}}],["我们创建了一个缓存全部字典项的容器",{"2":{"9":1}}],["我们在需要填充的类属性上添加注解",{"2":{"309":1,"317":1,"326":1}}],["我们在部门对象上直接引用相关属性即可",{"2":{"263":1}}],["我们在自动填充时配置只填充属于",{"2":{"250":1}}],["我们在类上添加",{"2":{"80":1}}],["我们在",{"2":{"6":1}}],["搜索关键词",{"2":{"211":1}}],["搜索过",{"2":{"209":1}}],["搜索引擎的那一头",{"2":{"208":1}}],["搜索引擎有可能没来得及索引此论坛的全部内容",{"2":{"183":1}}],["搜索能让你更缩小你的搜索结果",{"2":{"182":1}}],["搜索就能解决一个复杂的问题",{"2":{"179":1}}],["搜索",{"2":{"179":1,"182":2}}],["搜索你所遇到的各种错误信息",{"2":{"179":1}}],["运用某些策略",{"2":{"179":1}}],["运行时",{"2":{"116":1,"117":1,"118":1,"119":1,"120":1}}],["删除数据",{"2":{"178":2}}],["构建",{"2":{"169":1}}],["构建并执行了",{"2":{"169":1,"170":1,"171":1}}],["quickstart",{"2":{"328":1}}],["quickstartwithspringboottest",{"2":{"321":2}}],["quickstartwithspringtest",{"2":{"313":1}}],["querydeptwithparentbythirddept",{"2":{"263":1}}],["querywrapper",{"2":{"169":1,"170":1,"171":1,"172":1}}],["quot",{"2":{"0":2,"51":2,"61":2,"67":2,"72":2,"129":2,"131":14,"152":2,"209":2,"248":8,"250":2}}],["名称",{"2":{"290":1,"291":1,"292":1}}],["名称默认为",{"2":{"167":1}}],["名称为",{"2":{"49":1}}],["规则的",{"2":{"165":1}}],["开发者",{"2":{"184":2}}],["开发者可以利用此信息来改进说明文件或软件本身",{"2":{"184":1}}],["开启了",{"2":{"297":1}}],["开启后可以一定程度上提升字段映射的性能",{"2":{"237":1}}],["开启反射增强功能",{"2":{"237":1}}],["开启这个功能",{"2":{"178":1}}],["开启自动注册",{"2":{"165":1}}],["开始",{"2":{"10":1,"78":1}}],["懒加载",{"0":{"164":1}}],["允许将当前对象作为",{"2":{"219":1,"220":1}}],["允许自定义注解",{"2":{"216":1}}],["允许用户按讨论串排序并通过折叠讨论串来隐藏消息",{"2":{"185":1}}],["允许从",{"2":{"178":1}}],["允许基于",{"2":{"161":1}}],["允许你自定义一些逻辑",{"2":{"10":1}}],["把你的返回值序列化为",{"2":{"159":1}}],["库",{"2":{"159":1}}],["显然",{"2":{"209":1}}],["显示指定",{"2":{"159":1}}],["显式指定操作执行器",{"2":{"129":1,"262":1}}],["显式指定key类型",{"0":{"90":1}}],["动态的增添或替换",{"2":{"159":1}}],["动态根据表达式的计算结果决定是否执行",{"2":{"150":1}}],["生成待完成的任务",{"2":{"329":1}}],["生成构造器",{"2":{"309":1,"313":1,"317":1,"321":1,"326":1,"328":1}}],["生成",{"2":{"159":1,"269":2}}],["生成对应代理对象",{"2":{"27":1}}],["保证默认的属性操作者",{"2":{"158":1}}],["序列化对象时",{"2":{"157":1}}],["依次类推",{"2":{"262":1}}],["依然会拿着",{"2":{"247":1}}],["依然会认为它是一个有效值",{"2":{"86":1}}],["依然认为其为有效值",{"2":{"247":1}}],["依照黑客的标准",{"2":{"204":1}}],["依赖注入获取被",{"2":{"217":1}}],["依赖来使用基于",{"2":{"174":1}}],["依赖",{"2":{"155":1,"162":1,"175":1,"306":2,"315":2,"323":1}}],["额外的引入下述依赖",{"2":{"155":1,"162":1,"175":1}}],["请确保",{"2":{"296":1,"297":1}}],["请重新确认上述原因",{"2":{"287":1}}],["请尽快升级",{"2":{"224":1,"228":1,"229":1,"232":1,"233":1}}],["请不要以为我们觉得无法帮助你",{"2":{"210":1}}],["请注意当我尝试",{"2":{"209":1}}],["请把专业技能想像为充裕的资源",{"2":{"196":1}}],["请把你的问题发在与它最相关的网站上",{"2":{"182":1}}],["请记得",{"2":{"190":1}}],["请想像一下你正在一个只显示标题的存档讨论串",{"2":{"185":1}}],["请陈述你已经试过但没有找到合适的邮件列表",{"2":{"184":1}}],["请到这里",{"2":{"182":1}}],["请编辑你的贴子来补充它们",{"2":{"182":1}}],["请尝试阅读源代码以找到答案",{"2":{"179":1}}],["请先确保你已经阅读过快速开始",{"2":{"248":1,"249":1,"253":1,"257":1,"261":1,"264":1,"274":1}}],["请先确保已经引入必要的",{"2":{"155":1,"162":1,"175":1}}],["请先表明你已经做了上述的努力",{"2":{"179":1}}],["请先做到以下事情",{"2":{"179":1}}],["请将",{"2":{"157":1}}],["请参见",{"2":{"13":1,"35":1,"110":2,"151":1,"152":1,"176":1,"262":1,"263":1,"264":1,"283":1}}],["请参照",{"2":{"0":1,"129":1,"152":1}}],["安装",{"0":{"155":1,"162":1,"175":1,"306":1,"315":1,"323":1}}],["凭空",{"2":{"154":1}}],["还支持更多的触发方式",{"2":{"255":1,"259":1}}],["还要帮你拍拍背和换尿布吗",{"2":{"209":1}}],["还列出了错误",{"2":{"209":1}}],["还被特定形势禁锢了思维",{"2":{"208":1}}],["还用向别人求助吗",{"2":{"192":1}}],["还有其他许多用户没遇到你发现的问题",{"2":{"190":1}}],["还提供了一些有用的重载方法",{"2":{"145":1}}],["还是去找你当地的",{"2":{"208":1}}],["还是有用",{"2":{"207":1}}],["还是我看漏了什么",{"2":{"205":1}}],["还是再搜索一下论坛",{"2":{"183":1}}],["还是",{"2":{"121":1}}],["还是推荐把参数类型写全",{"2":{"71":1}}],["顺序填充",{"2":{"145":1}}],["命名参考了",{"2":{"145":1}}],["另一种才是明智的",{"2":{"209":1}}],["另一种则是直接使用最底层的",{"2":{"145":1}}],["另一方面",{"2":{"179":1,"206":1}}],["另外",{"2":{"133":1,"185":1,"210":1}}],["集成使用",{"2":{"304":1}}],["集成的一些问题",{"2":{"226":1}}],["集成后",{"2":{"144":1}}],["集合后直接修改即可",{"2":{"294":1}}],["集合创建数据源容器",{"2":{"308":1,"316":1,"325":1}}],["集合创建一个容器",{"2":{"280":1}}],["集合创建容器",{"2":{"52":1}}],["集合中",{"2":{"173":1}}],["集合中查询",{"2":{"33":1}}],["集合本身",{"2":{"80":1}}],["集合或字符串是否为空",{"2":{"118":1}}],["集合或",{"2":{"71":1}}],["集合作为数据源的容器",{"2":{"69":1}}],["集合缓存指以",{"2":{"69":1}}],["集合容器",{"0":{"69":1}}],["集合将会被拼接位字符串再进行填充",{"2":{"46":1}}],["集合的容器",{"2":{"280":2}}],["集合的",{"2":{"44":1}}],["集合获取按客户组别id分组的客户集合",{"2":{"41":1}}],["集合适配为容器外",{"2":{"33":1}}],["集合",{"2":{"25":1,"40":1,"71":1,"73":1,"101":1,"147":1,"173":1,"280":1,"312":1,"320":1}}],["集合实现的本地缓存管理器",{"2":{"16":1}}],["支持字典",{"2":{"330":1}}],["支持的数据源类型",{"2":{"285":1}}],["支持的容器远远不止这些",{"2":{"280":1}}],["支持组合式和选项式两种的配置风格",{"2":{"285":1}}],["支持将被",{"2":{"243":1}}],["支持将枚举也作为数据源适配为容器",{"2":{"242":1}}],["支持将常量类也作为数据源适配为容器",{"2":{"241":1}}],["支持像",{"2":{"231":1}}],["支持根据策略回填指定字段值",{"2":{"227":1}}],["支持为每个操作都添加一个id作为唯一标识",{"2":{"227":1}}],["支持使用实体类中特定方法返回值作为key值",{"2":{"227":1}}],["支持使用spring的",{"2":{"214":1}}],["支持全量获取数量固定的数据源容器",{"2":{"223":1}}],["支持直接在",{"2":{"226":1}}],["支持直接通过",{"2":{"223":1}}],["支持直接填充",{"2":{"216":1}}],["支持",{"0":{"299":1},"2":{"220":1,"221":1,"222":1,"225":1,"227":1,"299":1}}],["支持刷新缓存内容",{"2":{"218":1,"220":1}}],["支持解析自定义的配置规则",{"2":{"216":1}}],["支持通过各种注解快速的配置填充和拆卸操作",{"2":{"282":1}}],["支持通过字面量的形式配置",{"2":{"230":1}}],["支持通过",{"2":{"215":1,"217":1}}],["支持基于自定义",{"2":{"234":1}}],["支持基于",{"2":{"214":1}}],["支持手动和自动填充",{"2":{"144":1}}],["支持在方法调用前后自动填充方法的入参或者返回值",{"2":{"284":1}}],["支持在非",{"2":{"231":1}}],["支持在被",{"2":{"230":1}}],["支持在启动类上的注解中扫描注解",{"2":{"221":1}}],["支持在注解中通过",{"2":{"214":1}}],["支持在",{"2":{"140":1}}],["支持设置到期时间",{"2":{"18":1}}],["引入你的项目",{"2":{"248":1,"249":1,"253":1,"257":1,"261":1,"264":1,"274":1}}],["引入",{"2":{"155":2,"162":2,"175":2,"306":1,"315":1,"323":1}}],["引入该扩展会带来不少的便利",{"2":{"154":1}}],["引入模板",{"2":{"139":1}}],["引用数据源容器",{"2":{"281":1}}],["引用目标对象",{"2":{"260":1}}],["引用配置好的数据源",{"2":{"259":1}}],["引用",{"2":{"214":1}}],["引用方法的入参",{"2":{"150":1}}],["引用返回值",{"2":{"150":1}}],["引用策略即可",{"2":{"143":1}}],["引用策略",{"2":{"143":1}}],["引用当前要填充的对象",{"2":{"116":1}}],["现有如下配置",{"2":{"139":1}}],["现在你有一个",{"2":{"254":1,"258":1}}],["现在你希望把",{"2":{"143":1}}],["现在我们有了一个新的需求",{"2":{"248":1}}],["现在",{"2":{"6":1,"41":1,"143":1,"254":1,"274":1}}],["替换为对应字典值",{"2":{"137":1}}],["获得数据源",{"2":{"329":1}}],["获得的数据为",{"2":{"137":1}}],["获的默认配置类",{"2":{"279":1}}],["获取关联的数据对象后",{"2":{"281":1}}],["获取字典对应的",{"2":{"275":2}}],["获取所有关联的上级部门",{"2":{"263":1}}],["获取到",{"2":{"140":1}}],["获取与",{"2":{"86":1}}],["获取操作门面进行手动填充",{"2":{"130":1}}],["获取操作门面",{"2":{"76":1,"83":1}}],["获取操作门面并注册容器",{"2":{"68":1}}],["获取注解元素",{"0":{"67":1}}],["获取注解处理器",{"2":{"65":1}}],["获取注解的通用属性",{"2":{"23":1}}],["获取缓存值",{"2":{"176":1}}],["获取缓存",{"2":{"19":1,"176":1}}],["获取",{"2":{"17":2,"55":2,"86":1,"223":1,"294":1}}],["获取它所持有的缓存对象",{"2":{"19":1}}],["获取它",{"2":{"17":1}}],["映射为",{"2":{"143":1}}],["映射到该字段的数据需要从",{"2":{"143":1}}],["映射到",{"2":{"140":1,"255":1,"256":1,"281":1,"332":1}}],["映射回",{"2":{"136":1}}],["映射类型为一对一",{"2":{"259":1,"260":1}}],["映射类型",{"2":{"72":1}}],["查看话不在多而在精一节",{"2":{"197":1}}],["查一查项目的文件和首页",{"2":{"184":1}}],["查找到性别字典对象",{"2":{"136":1}}],["查找到",{"2":{"135":1}}],["查询时",{"2":{"333":1}}],["查询数据",{"2":{"276":1}}],["查询接口",{"2":{"276":1}}],["查询指定",{"2":{"275":2}}],["查询商品信息",{"2":{"270":1}}],["查询订单列表",{"2":{"270":1}}],["查询二级部门",{"2":{"263":1}}],["查询一级部门",{"2":{"263":2}}],["查询全部关联上级部门的接口",{"2":{"262":1}}],["查询员工集合",{"2":{"173":2}}],["查询的接口",{"2":{"262":1}}],["查询的表字段可能与用户的对象属性不一致",{"2":{"172":1}}],["查询的条件字段",{"2":{"170":1,"171":1}}],["查询外键",{"2":{"172":1}}],["查询字段名为实体类中对应的属性名",{"2":{"169":1}}],["查询出的数据将按照用户指定的",{"2":{"170":1,"171":1}}],["查询出的数据将按照",{"2":{"169":1}}],["查询结果集是",{"2":{"73":1}}],["查询结果集已经分好组了",{"2":{"73":1}}],["查询用户信息并填充数据的操作",{"2":{"247":1}}],["查询用户",{"2":{"73":2}}],["查询关联的多个",{"2":{"44":1,"138":1}}],["查询客户",{"2":{"40":1,"285":2}}],["查询",{"2":{"6":5,"331":1}}],["同上",{"2":{"292":1}}],["同学",{"2":{"248":2}}],["同样",{"2":{"198":1}}],["同时存在的复数操作",{"2":{"333":1}}],["同时也没有巧妙地将问题真正的答案藏于其后",{"2":{"207":1}}],["同时",{"2":{"195":1}}],["同步填充",{"2":{"145":1}}],["同名属性",{"0":{"133":1}}],["同一个问题的两种问法被放在一起",{"2":{"209":1}}],["同一个类继承树中的操作",{"2":{"125":1}}],["同一个类中操作",{"2":{"125":1}}],["同一个属性上的操作",{"2":{"125":1}}],["带填充对象的属性",{"2":{"131":1}}],["带填充对象的key类型为string",{"2":{"90":1}}],["指出我还应该做什么诊断工作之间微妙而又重要的区别",{"2":{"209":1}}],["指向的字段是字符串",{"2":{"234":1}}],["指向的属性值映射到",{"2":{"136":1}}],["指向数据源对象本身",{"2":{"131":1}}],["指向",{"2":{"131":2}}],["指定枚举类",{"2":{"332":1}}],["指定枚举类型",{"2":{"61":2}}],["指定操作的执行顺序",{"2":{"281":1}}],["指定操作顺序",{"2":{"262":1}}],["指定操作处理器",{"2":{"107":1}}],["指定顺序执行器会导致该对象中所有的操作都变为同步的",{"2":{"263":1}}],["指定顺序",{"2":{"262":3}}],["指定填充顺序",{"0":{"262":1}}],["指定填充字段",{"2":{"51":1,"61":1}}],["指定数据源为",{"2":{"255":1,"256":1}}],["指定仅填充属于",{"2":{"250":1}}],["指定查询字段",{"0":{"172":1}}],["指定执行器",{"0":{"152":1},"2":{"303":1}}],["指定执行器和解析器",{"0":{"32":1}}],["指定分组",{"0":{"151":1}}],["指定的",{"2":{"152":1}}],["指定的字段名称相同",{"2":{"133":1}}],["指定的期望值转为实际值的类型后再进行比较",{"2":{"117":1}}],["指定的分隔符一致",{"2":{"46":1}}],["指定属性映射策略",{"2":{"97":1,"142":1}}],["指定策略",{"0":{"97":1,"142":1},"2":{"143":1}}],["指定关联三个属性",{"2":{"94":1}}],["指定键值解析器",{"2":{"94":1}}],["指定其需要在执行时将",{"2":{"90":1}}],["指定缓存配置",{"2":{"79":1}}],["指定缓存管理器",{"0":{"17":1},"2":{"17":1}}],["指定绑定方法",{"2":{"79":1}}],["指定调用类的类型全限定名",{"2":{"79":1}}],["指定调用类的类型",{"2":{"79":1}}],["指定要绑定方法的参数类型",{"2":{"71":1}}],["指定要绑定的方法名称",{"2":{"71":1}}],["指定提供value值的属性",{"2":{"58":1}}],["指定提供key值的属性",{"2":{"58":1}}],["指定你需要的容器要从哪个提供者获取",{"2":{"55":1}}],["指定常量类型",{"2":{"51":2}}],["指定",{"2":{"49":1,"58":1,"90":1,"159":1,"160":1}}],["指定命名空间",{"2":{"49":1,"58":1}}],["指定容器命名空间",{"2":{"48":1}}],["指定将分割出的每个",{"2":{"45":1,"93":1}}],["指定如何将属性值映射到参数对象",{"2":{"42":1,"74":1,"92":1}}],["指定参数对象类型",{"2":{"42":1,"74":1,"92":1}}],["指定入参",{"2":{"33":1}}],["指定扫描路径",{"2":{"30":1}}],["指定使用",{"2":{"18":1,"45":1,"46":1,"93":1}}],["指定过期时间单位",{"2":{"13":2,"75":1}}],["指定批量大小",{"2":{"6":1}}],["指定每一批处理对象数",{"2":{"1":1}}],["提高了字段映射的执行性能",{"2":{"230":1}}],["提高测试覆盖率",{"2":{"217":1}}],["提问者可以学到点东西",{"2":{"211":1}}],["提问者已经指明了环境",{"2":{"209":1}}],["提问前应该先搜索一下旧文",{"2":{"204":1}}],["提问时别给出可能并不恰当的方法",{"2":{"208":1}}],["提问时",{"2":{"190":1}}],["提问的时候请善用格式化工具",{"2":{"182":1}}],["提示",{"2":{"190":1,"208":2}}],["提取不到任何值",{"2":{"130":1}}],["提供回调接口或组件",{"2":{"226":1}}],["提供不同环境下的最小依赖",{"2":{"216":1}}],["提供基于方法句柄",{"2":{"222":1}}],["提供基于",{"2":{"214":1,"215":1}}],["提供一个基于",{"2":{"231":1}}],["提供一个操作门面",{"2":{"231":1}}],["提供一个默认的可配置容器注册者实现",{"2":{"217":1,"218":1,"220":1}}],["提供一个不基于",{"2":{"217":1}}],["提供一个自定义的缓存管理器",{"2":{"20":1}}],["提供一段操作记录",{"2":{"193":1}}],["提供经销商的发行版和版本号",{"2":{"188":1}}],["提供",{"2":{"161":1,"214":1,"216":1,"217":1,"234":1}}],["提供的功能",{"2":{"304":1}}],["提供的数据源机制无法很好地解决",{"2":{"248":1}}],["提供的批量接口",{"2":{"177":1}}],["提供的各种",{"2":{"145":1}}],["提供的操作门面",{"2":{"145":1}}],["提供的",{"2":{"99":1}}],["提供对缓存数据的具体增删改查操作",{"2":{"11":1}}],["提供了两类填充方式",{"2":{"284":1}}],["提供了两个操作感知接口",{"2":{"10":1}}],["提供了基于",{"2":{"154":1}}],["提供了分组填充的功能",{"2":{"122":1}}],["提供了用于在序列化过程中进行填充的",{"2":{"90":1}}],["提供了一些可选的配置项",{"2":{"72":1}}],["提供了一套类似",{"2":{"7":1}}],["提供了选项式配置风格的键值映射功能",{"2":{"64":1}}],["提供了属性操作器",{"2":{"25":1}}],["第三",{"2":{"189":1}}],["第一",{"2":{"189":1}}],["第一步是找到对的论坛",{"2":{"181":1}}],["第一个装配操作是根据",{"2":{"123":1}}],["第二种提问法比较聪明",{"2":{"194":1}}],["第二",{"2":{"189":1}}],["第二步",{"0":{"184":1}}],["第二个装配操作是根据",{"2":{"123":1}}],["第二次查询",{"2":{"11":1}}],["层面进行空值过滤",{"2":{"118":1}}],["变量",{"2":{"116":1}}],["取出后再一并填充",{"2":{"281":1}}],["取出并平铺",{"2":{"281":1}}],["取而代之的是",{"2":{"191":1}}],["取反",{"0":{"112":1}}],["取决于",{"2":{"71":1}}],["绑定",{"2":{"260":1}}],["绑定到操作",{"0":{"111":1}}],["绑定方法的参数类型",{"2":{"72":1}}],["绑定方法的名称",{"2":{"72":1}}],["条件填充",{"2":{"251":1,"333":1}}],["条件表达式",{"0":{"150":1}}],["条件要绑定到哪些操作上",{"2":{"121":1}}],["条件装配的机制对此提供了支持",{"2":{"108":1}}],["条件注解",{"2":{"86":1}}],["条件注解等功能",{"2":{"23":1}}],["选择性的填充一批对象中的某一部分",{"2":{"108":1}}],["选项式",{"2":{"285":2}}],["选项式风格配置与组合式风格配置的使用方式与差异",{"2":{"267":1}}],["选项式配置的注解基于注解解析器",{"2":{"285":1}}],["选项式配置",{"0":{"51":1,"61":1,"79":1,"260":1}}],["选项分别替换为",{"2":{"226":1}}],["选项",{"2":{"187":1}}],["选项决定是否要优先遵循枚举类上的注解配置",{"2":{"61":1}}],["选项决定是否要优先遵循常量类上的注解配置",{"2":{"51":1}}],["否则简短可爱的小结比长篇大论更好",{"2":{"202":1}}],["否则你在阅读文件或搜索网页时就应该发现了",{"2":{"190":1}}],["否则你都多半不够完全确信",{"2":{"190":1}}],["否则",{"2":{"123":1,"183":1}}],["否则会栈溢出",{"2":{"105":1}}],["否则各种容器的",{"2":{"71":1}}],["递归填充下级部门",{"2":{"105":1}}],["递归拆卸",{"0":{"105":1}}],["直译",{"2":{"197":1}}],["直到你弄懂了再发文",{"2":{"200":1}}],["直到问题发生",{"2":{"193":1}}],["直到所有的对象都被展开为止",{"2":{"102":1}}],["直接调用操作门面的",{"2":{"327":1}}],["直接使用操作执行器的场景相对罕见",{"2":{"283":1}}],["直接顺带手动的设置一下值",{"2":{"275":1}}],["直接引用即可",{"2":{"256":1}}],["直接处理",{"2":{"238":1}}],["直接直接内嵌一个",{"2":{"225":1}}],["直接将该",{"2":{"135":1}}],["直接在获取数据源的时候就填充",{"2":{"130":1}}],["直接在配置文件里面添加",{"2":{"86":1}}],["直接声明",{"2":{"88":1,"104":1}}],["直接以当前的",{"2":{"80":1}}],["直接指定接口",{"2":{"30":1}}],["直接通过编码来进行判断",{"2":{"113":1}}],["直接通过",{"2":{"26":1,"294":1}}],["嵌套填充商品信息",{"2":{"271":1,"272":1,"273":1}}],["嵌套填充也就无法生效",{"2":{"130":1}}],["嵌套嵌套对象",{"2":{"130":1}}],["嵌套对象可能存在多层级的情况",{"2":{"100":1}}],["嵌套一个",{"2":{"6":1}}],["$",{"2":{"99":2,"150":1,"305":1,"314":1,"322":1}}],["$$defaultprovider",{"2":{"99":1}}],["$$",{"2":{"55":1}}],["才会执行填充操作",{"2":{"150":1}}],["才会执行对",{"2":{"123":1}}],["才会对",{"2":{"96":1,"141":1}}],["才获取",{"2":{"97":1,"142":1}}],["才允许将数据源对象的",{"2":{"97":1,"142":1}}],["符号作为分隔符",{"2":{"93":1}}],["符号分割为字符串集合",{"2":{"45":1}}],["尝试参考用例直接在项目中使用",{"2":{"304":1}}],["尝试自己检查或试验以找到答案",{"2":{"179":1}}],["尝试阅读常见问题文件",{"2":{"179":1}}],["尝试阅读手册以找到答案",{"2":{"179":1}}],["尝试上网搜索以找到答案",{"2":{"179":1}}],["尝试在你准备提问的论坛的旧文章中搜索答案",{"2":{"179":1}}],["尝试通过无参构造器创建一个参数对象",{"2":{"92":1}}],["尝试查出一个对应的数据",{"2":{"86":1}}],["源属性名2",{"2":{"92":1}}],["源属性名1",{"2":{"92":1}}],["插件默认从",{"2":{"90":1}}],["插件",{"0":{"154":1,"161":1,"174":1},"1":{"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1},"2":{"90":1,"159":1,"216":1,"222":1,"234":1}}],["转为",{"2":{"90":1}}],["转换器",{"2":{"26":1}}],["转换为",{"2":{"26":1}}],["仅在有限的地方使用了这些工具类库",{"2":{"298":1}}],["仅在需要使用少部分特殊功能时才会出现",{"2":{"283":1}}],["仅仅改变标题还不够",{"2":{"185":1}}],["仅仅是鼠标指针或者还有其它图形",{"2":{"185":1}}],["仅排除指定",{"2":{"165":1}}],["仅注册指定",{"2":{"165":1}}],["仅需要实体类上添加",{"2":{"159":1}}],["仅执行通过指定过滤器条件的操作",{"2":{"124":1}}],["仅当指定执行操作组为",{"2":{"123":1}}],["仅当存在",{"2":{"120":1}}],["仅当填充对象类型为",{"2":{"119":2}}],["仅当",{"2":{"96":1,"97":2,"110":2,"116":1,"117":3,"118":2,"141":1,"142":2,"251":3}}],["仅接受",{"2":{"90":1}}],["仅包含带有该注解的属性",{"2":{"49":1}}],["所以直接返回一个空集合",{"2":{"275":1}}],["所以他们也倾向于厌恶那些漫无边际的提问",{"2":{"196":1}}],["所以",{"2":{"185":1,"187":1,"192":1,"196":1}}],["所以宁可发一个全新的邮件",{"2":{"185":1}}],["所以最好先在论坛或",{"2":{"183":1}}],["所以一般情况下对拆卸操作排序没什么意义",{"2":{"129":1}}],["所以如果此类判断较多",{"2":{"118":1}}],["所以不用担心重复查询数据库",{"2":{"89":1}}],["所有类型的数据源",{"2":{"285":1}}],["所有内存都换过了",{"2":{"192":1}}],["所有传入的",{"2":{"29":1}}],["所有",{"2":{"18":2}}],["所有的诊断专家都来自密苏里州",{"2":{"192":1}}],["所有的帮助渠道",{"2":{"181":1}}],["所有的操作都会通过",{"2":{"177":1}}],["所有的",{"2":{"85":1}}],["所有的执行器都支持设置批量大小",{"2":{"6":1}}],["所有的填充操作都通过操作执行器",{"2":{"0":1}}],["风格的",{"2":{"87":2,"103":1}}],["再在配置中引用数据源",{"2":{"285":1}}],["再使用执行处理",{"2":{"284":1}}],["再配置操作的配置风格被称为组合式配置",{"2":{"260":1}}],["再进行一些附加操作",{"2":{"248":1}}],["再到程序本身的论坛或邮件列表提问",{"2":{"183":1}}],["再说一次",{"2":{"181":1}}],["再将问题仔细地思考过一遍",{"2":{"179":1}}],["再花点时间思考一下这个问题",{"2":{"179":1}}],["再阅读一下常见问题文件",{"2":{"179":1}}],["再把",{"2":{"84":1,"281":1,"331":1}}],["再根据指定的操作数量进行分组",{"2":{"6":1}}],["操作执行阶段",{"2":{"329":1}}],["操作执行器是影响操作的执行效率和顺序的关键组件",{"2":{"283":1}}],["操作执行器",{"0":{"283":1},"2":{"303":1}}],["操作执行以及配置管理等功能",{"2":{"231":1}}],["操作",{"2":{"281":1}}],["操作配置",{"0":{"281":1},"2":{"278":1}}],["操作配置预解析",{"0":{"246":1},"2":{"246":1}}],["操作系统而不是程序本身造成的回复感到惊讶",{"2":{"208":1}}],["操作系统",{"2":{"188":1}}],["操作系统或库",{"2":{"182":1}}],["操作系统程序界面的问题",{"2":{"181":1}}],["操作的排序越靠前",{"2":{"126":1}}],["操作的执行顺序基本按如下规则",{"2":{"125":1}}],["操作排序",{"0":{"125":1},"1":{"126":1,"127":1,"128":1,"129":1,"130":1}}],["操作分组",{"0":{"122":1},"1":{"123":1,"124":1},"2":{"151":1,"250":1}}],["操作条件的作用域总是仅限于该注解所在的元素本身",{"2":{"114":1}}],["操作门面也针对某些数据结构提供了一些便捷的",{"2":{"83":1}}],["操作者接口中抽象方法的适配基于不同的方法工厂",{"2":{"37":1}}],["操作者接口类似",{"2":{"27":1}}],["操作者接口",{"0":{"27":1},"1":{"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1}}],["去配置一个填充操作",{"2":{"253":1,"257":1}}],["去调用查询用户信息的方法",{"2":{"247":1}}],["去搜索一下吧",{"2":{"204":1}}],["去掉无意义的提问句",{"0":{"199":1}}],["去数据源容器中查询",{"2":{"80":1}}],["去确认一个对应的数据",{"2":{"80":1}}],["去填充",{"2":{"35":1}}],["因为已经手动设置完值了",{"2":{"275":1}}],["因为黑客们兴奋的点多半与你的不同",{"2":{"200":1}}],["因为我们中的大多数都曾自己解决这类问题",{"2":{"198":1}}],["因为我们更乐于回答那些表现出能从答案中学习的人的问题",{"2":{"179":1}}],["因为这会定出一个时间和精力的上限",{"2":{"196":1}}],["因为它们只会被正在查看该标题的人读到",{"2":{"185":1}}],["因为讨论串与特定的信息紧密结合",{"2":{"185":1}}],["因为有些邮件阅读程序",{"2":{"185":1}}],["因为",{"2":{"182":1,"208":1}}],["因为你表现出只要有人能指个正确方向",{"2":{"179":1}}],["因为草率的发问只能得到草率的回答",{"2":{"179":1}}],["因为该注解下面两个操作配置没有被声明在同一个元素上",{"2":{"114":1}}],["因为前者的优先级更高",{"2":{"79":1}}],["因此我们往往需要通过外键从各种数据源中",{"2":{"331":1}}],["因此一些组件或扩展点需要手动启用",{"2":{"304":1}}],["因此该接口实行如下",{"2":{"270":1}}],["因此若解析器具备缓存功能",{"2":{"246":1}}],["因此提供了",{"2":{"241":1,"242":1}}],["因此要确信你原原本本告诉了他们问题的症状",{"2":{"192":1}}],["因此可以利用此时间去解决其它问题",{"2":{"202":1}}],["因此可以直接编写自定义",{"2":{"172":1}}],["因此可以在表达式中使用",{"2":{"150":1}}],["因此如果用户指定了查询字段",{"2":{"171":1}}],["因此和基于方法的返回值或入参自动填充一样",{"2":{"160":1}}],["因此当你的",{"2":{"159":1}}],["因此当使用此插件时",{"2":{"90":1}}],["因此不管在哪个环境使用",{"2":{"156":1}}],["因此你可以非常丝滑的接入",{"2":{"159":1}}],["因此你可以使用这种方式来从被多层包装的对象中提取特定的属性值",{"2":{"149":1}}],["因此你无法通过类似下面这种方式来指定两者的执行顺序",{"2":{"130":1}}],["因此你只需要通过",{"2":{"92":1,"93":1}}],["因此没有指定",{"2":{"106":1,"148":1}}],["因此通过",{"2":{"90":1}}],["因此直接按顺序合并即可",{"2":{"73":1}}],["因此对于",{"2":{"67":1}}],["因此在这种情况下",{"2":{"172":1}}],["因此在序列化过程中",{"2":{"159":1}}],["因此在执行填充操作之前",{"2":{"100":1}}],["因此在",{"2":{"46":1}}],["因此也无法在类上或类的属性上添加注解配置",{"2":{"27":1}}],["因此默认情况下",{"2":{"6":1}}],["因此",{"2":{"0":1,"37":1,"71":1,"80":1,"125":1,"130":1,"176":1,"177":1,"181":1,"193":1,"196":1,"330":1}}],["目前没有提供",{"2":{"307":1}}],["目前仅支持",{"2":{"285":1}}],["目前默认的",{"2":{"107":1}}],["目前提供了三套实现",{"2":{"26":1}}],["目标",{"2":{"258":1}}],["目标属性名2",{"2":{"92":1}}],["目标属性名1",{"2":{"92":1}}],["目标类",{"2":{"79":1}}],["出自国会议员",{"2":{"192":1}}],["出于效率考虑",{"2":{"333":1}}],["出于性能考虑",{"2":{"177":1}}],["出于批量操作的性能考虑",{"2":{"130":1}}],["出于降低理解成本的目的",{"2":{"79":1}}],["出现重复值时直接抛异常",{"2":{"59":1,"72":1}}],["出现重复值时的处理策略",{"2":{"59":1,"72":1}}],["80",{"2":{"187":2}}],["8",{"0":{"78":1,"141":1,"142":1,"143":1,"231":1,"232":1,"233":1},"1":{"142":1,"143":1},"2":{"77":1,"185":3,"209":1}}],["然而我们并不能简单的直接通过",{"2":{"274":1}}],["然而",{"2":{"77":1,"172":1,"184":1,"201":1,"206":1}}],["然后根据需要阅读后续的",{"2":{"334":1}}],["然后根据你的需要移除某些键值",{"2":{"19":1}}],["然后跟着",{"2":{"334":1}}],["然后跟业务代码一样把关联的数据查出来",{"2":{"275":1}}],["然后交由操作执行器",{"2":{"329":1}}],["然后引入",{"2":{"315":1}}],["然后指定装配操作生成参数对象作为",{"2":{"276":1}}],["然后填充该部门归属的二级部门",{"2":{"262":1}}],["然后填充到",{"2":{"130":1}}],["然后按下删除键",{"2":{"209":1}}],["然后按部门",{"2":{"173":1}}],["然后自己去找出来",{"2":{"208":1}}],["然后事后再对回复者表示感谢",{"2":{"201":1}}],["然后说一句",{"2":{"197":1}}],["然后说一声",{"2":{"197":1}}],["然后跑来问该怎么走",{"2":{"194":1}}],["然后才陈述重现你所卡住的特定步骤",{"2":{"194":1}}],["然后才能真正完成填充",{"2":{"144":1}}],["然后装配配置如下",{"2":{"172":1}}],["然后分页对象里面才是需要填充的数据",{"2":{"149":1,"266":1}}],["然后分别按照每个参数类型对应的操作配置对参数进行填充",{"2":{"34":1}}],["然后在",{"2":{"182":1,"256":1}}],["然后在此基础上",{"2":{"155":1,"162":1,"175":1}}],["然后在执行时指定仅执行或不执行特定的操作组",{"2":{"122":1}}],["然后在前者的基础上",{"2":{"6":1}}],["然后再在类属性上统一使用",{"2":{"272":1}}],["然后再在执行时指定仅执行哪些分组的操作",{"2":{"250":1}}],["然后再执行",{"2":{"130":1}}],["然后再统一进行装配",{"2":{"100":1}}],["然后再进行填充操作",{"2":{"100":1}}],["然后注册",{"2":{"52":1}}],["然后将相关的属性映射到",{"2":{"258":1}}],["然后将枚举的",{"2":{"254":1}}],["然后将该集合赋值给目标对象中的",{"2":{"138":1}}],["然后将其注册为容器",{"2":{"59":1}}],["然后将其作为",{"2":{"55":1}}],["然后将",{"2":{"44":1,"138":1}}],["然后赋值给",{"2":{"41":1}}],["然后",{"2":{"29":1,"121":1,"139":1,"159":1,"205":1,"254":1}}],["然后通过调用该接口的代理对象的方法对任意类型的对象进行填充",{"2":{"27":1}}],["然后直接使用组合注解",{"2":{"24":1}}],["然后让它继承",{"2":{"20":1}}],["然后完成基于",{"2":{"6":4}}],["然后完成全部基于",{"2":{"6":1}}],["针对诊断者而言",{"2":{"192":1}}],["针对方法容器的扫描和注册是自动完成的",{"2":{"76":1}}],["针对多个键字段映射",{"2":{"44":1}}],["使基于",{"2":{"223":1}}],["使专家花在辨识你的问题和回答所需要付出的时间减到最少",{"2":{"196":1}}],["使问题容易回复",{"0":{"186":1}}],["使其具备缓存功能",{"2":{"75":1}}],["使用操作门面手动执行填充",{"2":{"311":1,"319":1}}],["使用了类型转换取组件",{"2":{"298":1}}],["使用了缓存组件",{"2":{"298":1}}],["使用命名空间相同的容器对旧容器进行覆盖",{"2":{"294":1}}],["使用方式",{"2":{"284":1}}],["使用方法容器",{"0":{"276":1}}],["使用解析器解析",{"2":{"281":1}}],["使用对象容器",{"0":{"275":1}}],["使用组合式风格配置",{"0":{"272":1}}],["使用组合注解简化配置",{"0":{"273":1}}],["使用组合注解",{"2":{"24":1}}],["使用选项式风格配置",{"0":{"271":1}}],["使用群组者寻求实际的指导吧",{"2":{"208":1}}],["使用纯文字而不是",{"2":{"187":1}}],["使用易于读取且标准的文件格式发送问题",{"0":{"187":1}}],["使用有意义且描述明确的标题",{"0":{"185":1}}],["使用项目邮件列表",{"0":{"184":1}}],["使用我们的版本",{"2":{"183":1}}],["使用多对多参数处理器",{"2":{"93":1}}],["使用多对多装配处理器",{"0":{"44":1}}],["使用该容器后",{"2":{"58":1}}],["使用注解指定的名称替代属性名",{"2":{"49":1}}],["使用参数对象作为",{"0":{"42":1}}],["使用一对多装配处理器",{"0":{"41":1}}],["使用情况",{"2":{"26":1}}],["使用内置管理器",{"0":{"18":1}}],["使用配置文件配置",{"0":{"14":1}}],["使用",{"0":{"12":1,"36":1,"66":1,"109":1,"159":1,"167":1,"255":1,"259":1},"1":{"13":1,"14":1,"15":1,"110":1,"111":1,"112":1,"113":1,"114":1,"168":1,"169":1,"170":1,"171":1},"2":{"15":1,"48":1,"58":1,"59":1,"86":2,"124":1,"138":1,"150":1,"159":1,"173":1,"176":1,"187":1,"233":2,"234":2,"269":2,"284":1,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1}}],["使用异步执行器",{"2":{"5":1}}],["使用执行器",{"0":{"2":1},"1":{"3":1,"4":1,"5":1},"2":{"284":1}}],["原理",{"0":{"329":1}}],["原始代码",{"0":{"268":1},"1":{"269":1,"270":1}}],["原始的方法返回值",{"2":{"73":1}}],["原来是网线出了问题",{"2":{"202":1}}],["原本的实体类",{"2":{"159":1}}],["原本你有如下配置",{"2":{"24":1,"143":1}}],["按发生时间先后列出问题症状",{"0":{"193":1}}],["按部门",{"2":{"173":1}}],["按顺序执行",{"0":{"127":1},"1":{"128":1,"129":1}}],["按它们所属类在树中的高度排序",{"2":{"125":1}}],["按属性的声明顺序排序",{"2":{"125":1}}],["按对应注解的声明顺序进行排序",{"2":{"125":1}}],["按操作组执行",{"0":{"124":1}}],["按",{"2":{"73":2}}],["场景示例",{"2":{"334":2}}],["场景用例",{"2":{"304":1}}],["场景",{"2":{"73":1}}],["入参集合为空时",{"2":{"72":1}}],["入参的",{"2":{"33":1}}],["必填",{"2":{"72":1,"79":1}}],["散落在代码里",{"2":{"71":1}}],["常见的各种",{"2":{"71":1}}],["常量",{"2":{"285":1}}],["常量和枚举",{"2":{"68":1}}],["常量类路径",{"2":{"221":1}}],["常量类",{"2":{"51":1}}],["常量类的全限定名一般在常量类与实体类不在同一包中时使用",{"2":{"51":1}}],["常量类的",{"2":{"49":1}}],["常量容器提供独立的builder",{"2":{"219":1,"220":1}}],["常量容器配置",{"2":{"51":1}}],["常量容器指基于常量类中的静态成员变量创建的数据源容器",{"2":{"47":1}}],["常量容器",{"0":{"47":1},"1":{"48":1,"49":1,"50":1,"51":1}}],["子类中的操作优先于父类",{"2":{"125":1}}],["子类",{"2":{"71":1}}],["父类",{"2":{"71":1}}],["处理比示例更复杂的各种情况",{"2":{"333":1}}],["处理无礼的回应",{"0":{"206":1}}],["处理监听器注解",{"2":{"70":1}}],["处理器",{"2":{"22":1}}],["工厂类基于任何类型的数据源创建容器",{"2":{"280":1}}],["工厂方法",{"2":{"69":1}}],["工具类",{"2":{"47":1,"145":1}}],["固定返回某个集合",{"2":{"68":1}}],["表明需要自动填充其方法返回值",{"2":{"312":1,"320":1}}],["表明该数据源的命名空间为",{"2":{"259":1}}],["表明你愿意在找答案的过程中做点什么是一个非常好的开端",{"2":{"179":1}}],["表现出你为简化问题付出了努力",{"2":{"189":1}}],["表示整个数据源对象映射到目标对象的",{"2":{"137":1}}],["表示直接将",{"2":{"136":1}}],["表示直接将整个数据源对象映射到目标对象的属性上",{"2":{"135":1}}],["表示一组字段间的映射关系",{"2":{"131":1}}],["表示如何对结果集按",{"2":{"72":1}}],["表示这个方法容器也需要应用缓存",{"2":{"13":1}}],["表示这个数据源容器需要应用缓存",{"2":{"13":1}}],["表达式最终返回值可以是布尔值",{"2":{"150":1}}],["表达式的语法取决于你的表达式引擎",{"2":{"116":1}}],["表达式",{"2":{"99":1,"150":2}}],["表达式支持",{"0":{"99":1}}],["表达式定义为容器",{"2":{"68":1}}],["表达式作为数据源的数据源容器",{"2":{"68":1}}],["前的原始代码",{"2":{"268":1}}],["前提是真正有内容",{"2":{"187":1}}],["前提是保证插件确实注册到该",{"2":{"159":1}}],["前者的缺点就是后者的优点",{"2":{"285":1}}],["前者的增强版本",{"2":{"10":1}}],["前者通常通过操作门面",{"2":{"144":1}}],["前五个字符",{"2":{"67":1}}],["跳过前四位国家编码",{"2":{"67":1}}],["手机号可能前面会带有国家代码",{"2":{"67":1}}],["手动执行填充",{"2":{"313":1}}],["手动",{"2":{"284":2}}],["手动触发填充",{"2":{"284":1}}],["手动排除",{"0":{"252":1}}],["手动创建并注册",{"2":{"176":1}}],["手动指定绑定到",{"2":{"88":1}}],["手动注册或懒加载的方式向",{"2":{"163":1}}],["手动注册一般只在你的目标类未被",{"2":{"76":1}}],["手动注册",{"0":{"76":1,"83":1,"166":1}}],["手动填充分为两种方式",{"2":{"145":1}}],["手动填充",{"0":{"128":1,"145":1,"311":1,"319":1},"2":{"35":1,"124":1,"284":1}}],["手动的创建具备缓存功能的数据源容器",{"2":{"15":1}}],["手动配置",{"0":{"15":1}}],["换个像",{"2":{"208":1}}],["换个好点的",{"2":{"186":1}}],["换而言之",{"2":{"63":1}}],["换句话说",{"2":{"26":1}}],["枚举填充",{"2":{"255":1}}],["枚举的",{"2":{"254":1}}],["枚举类",{"2":{"61":1,"255":1,"256":1}}],["枚举类的全限定名一般在枚举类与实体类不在同一包中时使用",{"2":{"61":1}}],["枚举类的属性值",{"2":{"59":2}}],["枚举类的",{"2":{"59":1}}],["枚举",{"2":{"59":1,"72":2,"254":1,"271":1,"285":1,"330":1,"331":1}}],["枚举对象本身",{"2":{"59":1}}],["枚举对象的",{"2":{"59":1}}],["枚举容器和方法容器支持设置重复的",{"2":{"222":1}}],["枚举容器配置",{"2":{"61":1}}],["枚举容器指以枚举作为数据源的数据源容器",{"2":{"57":1}}],["枚举容器",{"0":{"57":1},"1":{"58":1,"59":1,"60":1,"61":1}}],["以供用户按需选择",{"2":{"283":1}}],["以避免他们再浪费时间",{"2":{"209":1}}],["以下是一些常见问题与对应的解决方案",{"2":{"286":1}}],["以下是几个经典蠢问题",{"2":{"208":1}}],["以下是最常用的几个站",{"2":{"182":1}}],["以上述方式",{"2":{"207":1}}],["以上几点中",{"2":{"188":1}}],["以至于不可能使其他人产生兴趣",{"2":{"195":1}}],["以及黑客没回答时心中所想的",{"2":{"208":1}}],["以及机器和软件的反应",{"2":{"193":1}}],["以及相关的信息",{"2":{"188":1}}],["以及我应该检查什么地方比请把我需要的确切的过程贴出来更容易得到答复",{"2":{"179":1}}],["以确保发送的是纯文本文件同时没有一些奇怪的字符",{"2":{"187":1}}],["以免在你的邮件中到处散布垃圾字符",{"2":{"187":1}}],["以请将你的回复发送到",{"2":{"186":1}}],["以表明你是在问一个问题",{"2":{"185":1}}],["以使其更清楚",{"2":{"184":1}}],["以保护他们沟通的渠道不被无关的东西淹没",{"2":{"181":1}}],["以保证只针对特定对象的特定属性进行填充",{"2":{"150":1}}],["以找到答案",{"2":{"179":1}}],["以适应特定的需求",{"2":{"148":1}}],["以逗号分隔的字符串",{"2":{"138":1,"143":1}}],["以选项式风格配置使用",{"2":{"57":1}}],["以便让开发者更加集中于核心业务逻辑的开发",{"2":{"332":1}}],["以便让他们看到的是与你看到的原始证据尽可能一致的东西",{"2":{"192":1}}],["以便为其指定讨论串",{"2":{"185":1}}],["以便快速地实现查询关联数据并用于填充",{"2":{"161":1}}],["以便快速的为数据源容器配置缓存",{"2":{"13":1}}],["以便动态生成一个参数对象作为",{"2":{"92":1}}],["以便批量的将扫描到的枚举类注册为枚举容器",{"2":{"60":1}}],["以便批量的将扫描到的常量类注册为常量容器",{"2":{"50":1}}],["以便在程序中使用",{"2":{"56":1}}],["交给",{"2":{"56":1,"82":1,"307":1}}],["下文",{"2":{"305":1,"314":1,"322":1}}],["下的管理字典数据",{"2":{"275":2}}],["下的实现类的创建方式改为通过",{"2":{"227":1}}],["下述条件等同于",{"2":{"112":1,"113":1}}],["下面是它们的一些使用场景",{"2":{"73":1}}],["下面是一个示例",{"2":{"56":1}}],["下图展示了解析器的工作流程",{"2":{"21":1}}],["连接符拼接两者",{"2":{"55":1}}],["那人多半也是对的",{"2":{"204":1}}],["那就相信我们",{"2":{"202":1}}],["那就向别处发送",{"2":{"181":1}}],["那是问题的缩影",{"2":{"197":1}}],["那些文本中四处散布的=20符号既难看也分散注意力",{"2":{"187":1}}],["那些人多半会将你的提问视为干扰他们开发的噪音",{"2":{"184":1}}],["那些被存档的内容将被搜索引擎索引",{"2":{"184":1}}],["那这也不能成为骚扰个别开发者的理由",{"2":{"184":1}}],["那",{"2":{"92":1}}],["那样提取包装对象中的实际数据",{"2":{"231":1}}],["那样也许会毁了提问者的设置",{"2":{"211":1}}],["那样",{"2":{"55":1,"225":1}}],["那么推荐你先阅读",{"2":{"334":1}}],["那么不妨直接绕过",{"2":{"275":1}}],["那么我们可以通过指定填充顺序来实现级联填充的效果",{"2":{"262":1}}],["那么我们推荐参考",{"2":{"95":1}}],["那么用户名需要根据性别拼接上",{"2":{"248":1}}],["那么用户名需要拼接上",{"2":{"248":2}}],["那么这个神奇的提问句会是向我发电邮",{"2":{"195":1}}],["那么这个条件注解仅允许对同一个属性上声明的操作生效",{"2":{"114":1}}],["那么就向",{"2":{"184":1}}],["那么类型推断时将以提取出的字段值为准",{"2":{"149":1}}],["那么该装配操作将生效",{"2":{"123":1}}],["那么总共需要三步",{"2":{"121":1}}],["那么比起交给",{"2":{"118":1}}],["那么可以配置",{"2":{"247":1}}],["那么可以再对",{"2":{"177":1}}],["那么可以参考",{"2":{"153":1}}],["那么可以将",{"2":{"117":1}}],["那么可以选择性的放弃一些装饰器",{"2":{"25":1}}],["那么条件同时将应用到该元素上声明的所有操作",{"2":{"111":1}}],["那么最终的判断条件就是",{"2":{"117":1}}],["那么最终在调用方法前里面的",{"2":{"78":1}}],["那么最好在一个统一的常量类中管理方法容器的",{"2":{"71":1}}],["那么它们都将具备缓存功能",{"2":{"75":1}}],["那么子类",{"2":{"71":1}}],["那么根据注解的配置跳过",{"2":{"67":1}}],["那么你也可以配合容器提供者来节省一点功夫",{"2":{"277":1}}],["那么你也可以直接使用",{"2":{"176":1}}],["那么你发火对象的言语可能在黑客社区中看起来是正常的",{"2":{"206":1}}],["那么你最好确保每一个缓存对象都对应一个独一无二的前缀",{"2":{"178":1}}],["那么你需要在",{"2":{"129":1}}],["那么你就需要显式的在配置时指定操作的执行顺序",{"2":{"125":1}}],["那么你可以在",{"2":{"262":1}}],["那么你可以先将枚举的数据源配置分离到枚举上",{"2":{"256":1}}],["那么你可以基于它创建一个",{"2":{"176":1}}],["那么你可以直接在代码中指定过滤器",{"2":{"252":1}}],["那么你可以直接在使用操作门面的",{"2":{"128":1}}],["那么你可以直接让目标类实现",{"2":{"80":1}}],["那么你可以这么做",{"2":{"67":1}}],["那么你可以通过",{"2":{"51":1,"61":1}}],["那么你直接将其交给",{"2":{"54":1}}],["那么在",{"2":{"26":1}}],["那么需要两步",{"2":{"20":1}}],["那么当方法被适配为数据源容器后它们的缓存依然是生效的",{"2":{"13":1}}],["那么第一个任务就会被拆成两份",{"2":{"6":1}}],["那么",{"2":{"6":1,"333":1}}],["那么直接使用即可",{"2":{"1":1}}],["进入",{"2":{"287":4}}],["进一步了解",{"2":{"267":1,"304":1}}],["进一步了解该如何使用",{"2":{"52":1}}],["进行区分",{"2":{"308":1,"316":1,"325":1}}],["进行配置",{"2":{"307":1}}],["进行配置即可",{"2":{"92":1,"93":1}}],["进行处理的",{"2":{"282":1}}],["进行查找",{"2":{"274":1}}],["进行查询并缓存",{"2":{"11":1}}],["进行一对多映射",{"2":{"173":2}}],["进行分组填充",{"0":{"250":1}}],["进行分组",{"2":{"169":1}}],["进行手动注册",{"2":{"166":1}}],["进行手动填充",{"2":{"35":1,"252":1}}],["进行异步填充",{"2":{"160":1}}],["进行序列化的",{"2":{"154":1}}],["进行取反",{"2":{"117":1}}],["进行多对多批量装配时",{"2":{"93":1}}],["进行解析",{"2":{"70":1}}],["进行包装",{"2":{"15":1}}],["阅读后续内容",{"2":{"52":1}}],["x有趣",{"2":{"202":1}}],["x和问题",{"2":{"202":1}}],["x",{"2":{"185":4,"196":2,"197":1,"202":1,"208":11,"209":1,"211":2}}],["xml",{"2":{"155":1,"162":1,"175":1,"306":1,"307":1,"315":1,"323":1}}],["xx的方式访问内部对象的属性",{"2":{"149":1}}],["xx",{"2":{"88":3,"149":1,"239":3}}],["xxxmapper",{"2":{"165":4,"166":2}}],["xxxtemplate",{"2":{"145":1}}],["xxxbyids",{"2":{"71":1}}],["xxxxxxxx",{"2":{"67":1}}],["xxxcontainerprovider",{"2":{"54":1}}],["xxx",{"2":{"51":1,"61":1}}],["x26",{"2":{"55":2,"113":2,"150":2}}],["x3c",{"2":{"1":1,"3":2,"4":1,"5":2,"9":5,"13":6,"15":3,"17":2,"18":2,"19":3,"20":8,"23":8,"27":4,"29":1,"31":2,"32":2,"33":9,"35":2,"40":1,"41":1,"42":1,"43":1,"44":2,"45":1,"48":2,"52":2,"56":4,"58":2,"59":1,"67":1,"68":3,"69":3,"71":4,"73":11,"74":2,"75":2,"77":7,"80":1,"82":5,"90":1,"102":1,"103":1,"104":1,"105":1,"106":2,"107":1,"110":1,"118":1,"119":2,"121":1,"123":1,"124":3,"129":2,"130":6,"137":1,"138":3,"143":4,"145":1,"147":1,"148":1,"149":15,"150":1,"151":1,"152":1,"153":3,"155":26,"162":18,"173":1,"175":18,"176":5,"177":5,"178":1,"248":2,"250":1,"255":2,"258":4,"259":4,"262":2,"263":13,"265":9,"266":6,"269":1,"270":11,"271":3,"272":5,"273":1,"275":16,"276":2,"277":4,"280":9,"283":2,"285":2,"306":47,"308":2,"311":1,"312":2,"313":4,"315":59,"316":2,"319":1,"320":2,"321":4,"323":18,"325":2,"327":1,"328":3,"331":4,"332":2}}],["空值判断",{"2":{"117":1}}],["空值引用策略",{"2":{"97":1,"142":1}}],["空值处理",{"0":{"78":1}}],["空",{"2":{"51":1,"61":1}}],["二级与三级部门的信息",{"2":{"262":1}}],["二级分类",{"2":{"23":3}}],["二是看观众有多少",{"2":{"181":1}}],["二选一必填",{"2":{"51":2,"61":2,"79":2}}],["无法处理被",{"2":{"227":1}}],["无法在编译期确定",{"2":{"106":1,"148":1}}],["无法在编译期确定要填充的对象类型",{"2":{"106":1,"148":1}}],["无法确定填充类型",{"2":{"106":1,"148":1}}],["无法获取",{"2":{"73":1}}],["无论多么刺耳",{"2":{"207":1}}],["无论你嵌套了多少层",{"2":{"105":1}}],["无论是在",{"2":{"83":1}}],["无论如何",{"2":{"31":1,"280":1,"281":1}}],["无需分组",{"2":{"73":1}}],["无",{"2":{"51":3,"61":3,"72":2,"79":4}}],["完整代码",{"0":{"313":1,"321":1,"328":1}}],["完善的测试用例",{"2":{"333":1}}],["完善文档场景示例",{"2":{"230":1}}],["完善了文档与代码注释",{"2":{"226":1}}],["完全可能如此",{"2":{"210":1}}],["完全无知",{"2":{"208":1}}],["完全一样",{"2":{"51":1,"61":1}}],["完成的行为",{"2":{"281":1}}],["完成的操作则会通过管道完成",{"2":{"177":1}}],["完成的",{"2":{"172":1}}],["完成",{"2":{"145":1,"177":1}}],["完成触发",{"2":{"0":1}}],["其他内容都需要通过关联查询获取",{"2":{"269":1}}],["其他配置完全不变",{"2":{"260":1}}],["其他部分与之前完全一样",{"2":{"256":1}}],["其他属性",{"2":{"254":1,"258":1,"259":1,"260":1}}],["其实并不是这样",{"2":{"211":1}}],["其实也支持在方法使用",{"2":{"85":1}}],["其它读者要么不理睬",{"2":{"207":1}}],["其次",{"2":{"199":1}}],["其",{"2":{"167":1,"254":1}}],["其配置效果与在枚举类似添加",{"2":{"61":1}}],["其配置效果与在常量类似添加",{"2":{"51":1}}],["其中有一个",{"2":{"123":1}}],["其中",{"2":{"14":1,"68":1,"92":1,"118":1,"126":1,"132":1,"217":1}}],["男",{"2":{"51":1,"61":1,"137":2,"254":1,"255":1,"256":1}}],["女士",{"2":{"248":1}}],["女",{"2":{"51":1,"61":1,"254":1,"255":1,"256":1}}],["包的名称",{"2":{"182":1}}],["包装类提取",{"0":{"77":1,"149":1}}],["包括阅读",{"2":{"181":1}}],["包括接口或抽象类中的抽象方法",{"2":{"71":1}}],["包括且不限于下述场景",{"2":{"333":1}}],["包括且不限于",{"2":{"26":1}}],["包含指定的类",{"2":{"50":1,"60":1}}],["排除",{"2":{"160":1}}],["排除指定的类",{"2":{"50":1,"60":1}}],["排除特定的接口",{"2":{"30":1}}],["布尔值",{"2":{"49":3}}],["可选的字段填充",{"2":{"333":1}}],["可选配置",{"0":{"160":1}}],["可选配置项",{"0":{"72":1}}],["可否指点一下哪有好一点说明",{"2":{"196":1}}],["可使下一个搜索类似问题的人能够关注这个讨论串",{"2":{"185":1}}],["可能同时有多种类型的数据需要填充",{"2":{"333":1}}],["可能更会有助于你阅读后面的内容",{"2":{"278":1}}],["可能会提到一些",{"2":{"278":1}}],["可能会有那么几次搞砸了",{"2":{"207":1}}],["可能不向下兼容",{"2":{"218":1}}],["可能正在睡觉",{"2":{"210":1}}],["可能需要手动向",{"2":{"159":1}}],["可能与你实际的",{"2":{"90":1}}],["可能是单个对象",{"2":{"52":1,"280":1}}],["可配置项",{"0":{"49":1,"59":1}}],["可以用于完成一切",{"2":{"331":1}}],["可以多线程填充吗",{"0":{"303":1}}],["可以",{"2":{"301":1}}],["可以支持同时根据多个",{"0":{"301":1}}],["可以先尝试在这里寻找解决方案",{"2":{"286":1}}],["可以是",{"2":{"260":1}}],["可以是无参方法",{"2":{"71":1}}],["可以代理它",{"2":{"255":1}}],["可以关闭它",{"2":{"238":1}}],["可以指定将目标对象的key值转为对应类型",{"2":{"223":1}}],["可以选择将容器注册到哪些提供者",{"2":{"221":1}}],["可以要求网页论坛发送给你",{"2":{"186":1}}],["可以试试前往",{"2":{"184":1}}],["可以理解的是",{"2":{"181":1}}],["可以设置应用条件的表达式",{"2":{"150":1}}],["可以直接在value中同时指定",{"2":{"133":1}}],["可以直接参见",{"2":{"91":1}}],["可以判断数组",{"2":{"118":1}}],["可以不指定",{"2":{"106":1,"148":1}}],["可以作为方法容器的方法需要满足下述条件",{"2":{"71":1}}],["可以通过",{"2":{"246":1}}],["可以通过对象内省自动将一个字段的值设置到另一个字段上",{"2":{"63":1}}],["可以通过键值",{"2":{"58":1}}],["可以使用",{"2":{"48":1}}],["可以根据客户",{"2":{"40":1}}],["可以查出一个集合或数组",{"2":{"40":1}}],["可以在依赖中排除",{"2":{"298":1}}],["可以在一个属性同时配置src和ref",{"2":{"215":1}}],["可以在类上添加注解来声明装配操作",{"2":{"88":1}}],["可以在",{"2":{"25":1,"287":1}}],["可以尝试使用",{"2":{"24":1}}],["建立对框架的初步认知",{"2":{"334":1}}],["建议你在张贴前最好先暗地里观察几天以了解那里的行事方式",{"2":{"184":1}}],["建议用户始终使用实体类中的属性名作为查询字段",{"2":{"172":1}}],["建造者具备更多的可配置项",{"2":{"48":1,"58":1}}],["建字段是数组类型",{"2":{"43":1}}],["建字段是集合类型",{"2":{"43":1}}],["相同的数据源在不同的场景下填充的字段可能不同",{"2":{"333":1}}],["相对上一个版本",{"2":{"221":1}}],["相对最近的一个正式版本",{"2":{"220":1}}],["相对集合",{"2":{"68":1}}],["相反地",{"2":{"207":1}}],["相反",{"2":{"206":1}}],["相信我们",{"2":{"179":1}}],["相关组件将会注册到",{"2":{"307":1,"315":1}}],["相关依赖",{"2":{"306":1,"315":1}}],["相关内容",{"2":{"281":1}}],["相关资源",{"0":{"212":1}}],["相关的问题",{"2":{"208":1}}],["相关的回调方法会在这个容器的特定生命周期节点被调用",{"2":{"9":1}}],["相关部分的标准编译记录如下",{"2":{"192":1}}],["相关配置如下",{"2":{"165":1}}],["相比起普通的填充操作",{"2":{"159":1}}],["相比起注解式配置",{"2":{"113":1}}],["相比起",{"2":{"48":1,"58":1}}],["翻转键值对",{"2":{"48":1}}],["9",{"0":{"79":1,"234":1},"2":{"46":1,"78":1,"97":1,"188":1,"315":1}}],["考虑到不少用户反映在这种场景下会有拼接字符串后再填充的需求",{"2":{"46":1}}],["拼接字符串",{"0":{"46":1}}],["都变成了null",{"2":{"233":1,"234":1}}],["都没有结果",{"2":{"181":1}}],["都默认注册了",{"2":{"116":1}}],["都会依次调用一遍注解处理器",{"2":{"282":1}}],["都会默认拼接上自己的命名空间作为",{"2":{"177":1}}],["都会被注册",{"2":{"165":1}}],["都会全部取出并摊平",{"2":{"105":1}}],["都会根据",{"2":{"29":1}}],["都强制覆写",{"2":{"97":1,"142":1}}],["都是非常典型的方法",{"2":{"71":1}}],["都转为",{"2":{"45":1,"93":1}}],["|",{"2":{"45":2}}],["||",{"2":{"10":1,"113":2,"117":1,"252":1}}],["但早期设计的不足导致扩展困难",{"2":{"330":1}}],["但能给出文档的链接",{"2":{"211":1}}],["但结果出人意料",{"2":{"209":1}}],["但没得到结果",{"2":{"211":1}}],["但没什么作用",{"2":{"209":1}}],["但没有意识到这条路本身就有问题",{"2":{"194":1}}],["但里面没有提到跟",{"2":{"209":1}}],["但不要依赖这种关照",{"2":{"204":1}}],["但大可不必将解决问题的过程复述一遍",{"2":{"202":1}}],["但用自我感觉良好的慈善行为或政治原因发肯定不行",{"2":{"200":1}}],["但毫无意义的回答来表示他们的蔑视",{"2":{"199":1}}],["但一些有经验的用户也许仍会给你一些提示",{"2":{"198":1}}],["但一样别那么低声下气",{"2":{"191":1}}],["但仍然无法解决",{"2":{"198":1}}],["但别要求得到完整的解决方案",{"2":{"198":1}}],["但永远先尝试这样做是一个好习惯",{"2":{"197":1}}],["但实际出现的是",{"2":{"197":1}}],["但这技巧通常和简化问题有所区别",{"2":{"196":1}}],["但你必须信守诺言",{"2":{"195":1}}],["但却无法从某绘图程序的颜色选择器取得十六进制的",{"2":{"194":1}}],["但",{"2":{"191":1}}],["但他们选择另一个极端",{"2":{"191":1}}],["但花哨的彩色文本倾向于使人认为你是个无能之辈",{"2":{"187":1}}],["但很多邮件程序并不支持这种编码",{"2":{"187":1}}],["但未包含该外键字段时",{"2":{"171":1}}],["但如果有必要",{"2":{"45":1}}],["但是用起来相对麻烦",{"2":{"284":1}}],["但是依赖",{"2":{"284":2}}],["但是如果在开始后面的内容前提前了解这些概念",{"2":{"278":1}}],["但是当",{"2":{"247":1}}],["但是引用时却无法引用",{"2":{"231":1}}],["但是没找到有用的结果",{"2":{"209":1}}],["但是关机一晚上就又能工作",{"2":{"192":1}}],["但是在头",{"2":{"192":1}}],["但是在有些情况下",{"2":{"80":1}}],["但是",{"2":{"187":1}}],["但是序列化后",{"2":{"159":1}}],["但是它们确实不是一个类",{"2":{"27":1}}],["但是不指定任何的",{"2":{"80":1}}],["但是不具备包括虚拟字段在内的一些额外功能",{"2":{"25":1}}],["但是不支持包括虚拟字段在内的一些额外功能",{"2":{"25":1}}],["格式吗",{"2":{"208":2}}],["格式的配置文件",{"2":{"307":1}}],["格式的字符串",{"2":{"143":1}}],["格式的集合改为",{"2":{"143":1}}],["格式的链式操作符访问嵌套对象的属性",{"2":{"88":1}}],["格式的手机号",{"2":{"67":1}}],["格式",{"2":{"44":2,"67":1,"137":1}}],["需要递归的填充嵌套的数据",{"2":{"333":1}}],["需要将",{"2":{"281":1}}],["需要提供一个用于直接添加",{"2":{"234":1}}],["需要依赖",{"2":{"176":1}}],["需要使用",{"2":{"158":1}}],["需要使用特定的装配操作处理器",{"2":{"44":1}}],["需要格外注意",{"2":{"80":1}}],["需要注意的是",{"2":{"79":1,"127":1,"172":1}}],["需要适配为动态容器",{"2":{"33":1}}],["键前缀",{"0":{"177":1}}],["键值映射",{"0":{"64":1},"1":{"65":1,"66":1,"67":1},"2":{"285":1}}],["键字段可以是集合或数组吗",{"0":{"292":1}}],["键字段可以是按分隔符拼接的字符串吗",{"0":{"291":1}}],["键字段为数组",{"2":{"43":1}}],["键字段为集合",{"2":{"43":1}}],["键字段为按分隔符拼接的字符串",{"2":{"43":1}}],["键字段是按特定分隔符拼接的字符串",{"2":{"43":1}}],["键的解析策略",{"0":{"91":1},"1":{"92":1,"93":1,"94":1,"95":1},"2":{"42":1,"45":1,"74":1}}],["比方说",{"2":{"205":1}}],["比较有可能让你得到回应",{"2":{"197":1}}],["比较常见的情况有三种",{"2":{"43":1}}],["比要求别人替你改正要明智得多",{"2":{"196":1}}],["比如身份证号",{"2":{"333":1}}],["比如同样是用户查询接口",{"2":{"333":1}}],["比如有的通过",{"2":{"333":1}}],["比如各种详情页中",{"2":{"333":1}}],["比如这样",{"2":{"283":1}}],["比如我们现在在",{"2":{"249":1}}],["比如先用",{"2":{"179":1}}],["比如通用响应体包装了分页对象",{"2":{"149":1}}],["比如通过属性得到的注解顺序可能与代码中不一致",{"2":{"125":1}}],["比如把字符串集合转为你所需的字符串",{"2":{"143":1}}],["比如一对多或者多对多装配",{"2":{"138":1}}],["比如查询方法或本地缓存",{"2":{"118":1}}],["比如当入参为",{"2":{"78":1}}],["比如字段脱敏",{"2":{"64":1}}],["比如上述配置可以改写为",{"2":{"55":1}}],["比如上文就显式的指定",{"2":{"29":1}}],["比如在上文",{"2":{"159":1}}],["比如在上图表示的示例中",{"2":{"149":1}}],["比如在类上添加",{"2":{"56":1}}],["比如在",{"2":{"53":1}}],["比如对",{"2":{"25":1}}],["比如基于",{"2":{"24":1}}],["比如",{"2":{"6":2,"9":1,"13":1,"15":1,"21":1,"24":1,"27":2,"29":1,"32":1,"33":1,"35":1,"39":1,"40":1,"51":1,"55":1,"61":1,"67":1,"71":1,"77":1,"79":1,"80":1,"87":1,"88":1,"90":1,"97":1,"103":1,"121":1,"122":1,"123":2,"132":1,"133":1,"135":1,"136":1,"137":2,"139":1,"142":1,"143":1,"149":1,"153":1,"159":1,"160":1,"177":2,"178":1,"185":1,"248":1,"252":1,"265":1,"266":1,"277":1,"278":1,"280":2,"307":1,"331":1}}],["多用请和谢谢您的关注",{"2":{"201":1}}],["多不等于好",{"2":{"193":1}}],["多半会一边在心里想着蠢问题",{"2":{"179":1}}],["多级包装",{"2":{"149":1}}],["多个键",{"2":{"43":1}}],["多对多映射支持",{"2":{"214":1}}],["多对多",{"0":{"43":1},"1":{"44":1,"45":1,"46":1},"2":{"138":1,"271":1,"290":1,"291":1,"292":1}}],["多对多装配时",{"2":{"234":1}}],["多对多装配操作处理器",{"2":{"38":1}}],["多对多装配",{"2":{"38":1}}],["及更早的版本中",{"2":{"302":1}}],["及更高版本",{"2":{"42":1,"86":1,"174":1}}],["及其子类不生效",{"2":{"119":1}}],["及其子类时生效",{"2":{"119":1}}],["及其包装类",{"2":{"73":1}}],["及以上版本新增了一个策略",{"2":{"46":1}}],["及以上版本无法使用",{"2":{"25":1}}],["及以上版本",{"2":{"3":1,"13":1,"50":2,"51":1,"57":1,"60":2,"61":1,"64":1,"74":1,"75":1,"77":1,"79":2,"90":1,"91":1,"96":1,"97":1,"108":1,"131":1,"132":1,"133":1,"135":1,"136":1,"141":1,"153":1,"154":1}}],["接下来",{"2":{"304":1}}],["接下来我们需要根据情况对他们进行排除",{"2":{"249":1}}],["接下来再按时间顺序详述会有所帮助",{"2":{"193":1}}],["接受的",{"2":{"159":1}}],["接受的参数有可能是一个参数对象",{"2":{"42":1}}],["接受参数对象",{"0":{"74":1}}],["接受key值",{"2":{"68":1}}],["接着再向文件维护者发一份补丁",{"2":{"211":1}}],["接着在",{"2":{"92":1}}],["接着",{"2":{"66":1,"143":1,"259":1,"309":1,"317":1,"326":1}}],["接口获取",{"2":{"333":1}}],["接口中的第",{"2":{"331":1}}],["接口中的常量",{"2":{"97":1}}],["接口即可",{"2":{"300":1}}],["接口支持基于",{"2":{"225":1}}],["接口的",{"2":{"167":1}}],["接口的查询方法作为数据源的装配操作",{"2":{"167":1}}],["接口的类上添加注解",{"2":{"13":1}}],["接口来替换默认的类型解析器",{"2":{"148":1}}],["接口来自定义容器",{"2":{"56":1}}],["接口时才允许进行填充",{"2":{"121":1}}],["接口或",{"2":{"113":1}}],["接口创建自定义策略",{"2":{"98":1,"143":1}}],["接口也可以指定用于执行操作的执行器和配置解析器",{"2":{"32":1}}],["接口定义你自己的注解处理器",{"2":{"23":1}}],["接口",{"2":{"9":1,"20":1,"26":1,"27":1,"54":1,"56":1,"65":1,"80":1,"95":1,"113":1,"121":1,"163":1,"218":1,"220":1,"223":1,"248":1,"255":1,"258":1,"331":1}}],["接口后",{"2":{"9":1}}],["批量查询出来的",{"2":{"168":1}}],["批量映射",{"0":{"138":1}}],["批量地扫描并注册枚举",{"2":{"60":1}}],["批量地扫描并注册常量类",{"2":{"50":1}}],["批量扫描",{"0":{"50":1,"60":1}}],["批量提取数据源对象的属性",{"2":{"41":1}}],["批量大小",{"0":{"6":1}}],["分钟",{"2":{"192":1}}],["分钟内从没发生过相同的问题",{"2":{"192":1}}],["分钟以后就频频产生",{"2":{"192":1}}],["分割后的值默认保持为",{"2":{"138":1}}],["分别",{"2":{"132":1}}],["分别填充方法参数",{"0":{"34":1},"1":{"35":1,"36":1}}],["分组结果",{"2":{"73":1}}],["分组",{"2":{"71":2,"72":1,"73":1,"75":1,"259":1,"260":1,"263":3,"270":1}}],["分组的数据集",{"2":{"277":1}}],["分组的操作",{"2":{"160":1}}],["分组的",{"2":{"40":1,"72":1}}],["值从容器中获取对应的数据源",{"2":{"309":1,"317":1,"326":1}}],["值能够正确的从数据源获取到数据",{"2":{"287":1}}],["值被正确地获取",{"2":{"287":1}}],["值列表返回非空集合",{"2":{"287":1}}],["值即为",{"2":{"281":1}}],["值获得相应的数据源对象",{"2":{"287":1}}],["值获得相应的数据",{"2":{"280":1}}],["值分组的数据对象",{"2":{"280":1}}],["值集合",{"2":{"280":1}}],["值解析器",{"2":{"276":1}}],["值都是无效值",{"2":{"247":1}}],["值都为",{"2":{"90":1}}],["值的操作分离为独立的键值提取器",{"2":{"230":1}}],["值的类型",{"2":{"159":1}}],["值得去回答他",{"2":{"209":1}}],["值转为字符串类型",{"2":{"159":1}}],["值越小",{"2":{"126":1}}],["值拿到",{"2":{"84":1,"281":1,"331":1}}],["值传入容器",{"2":{"80":1}}],["值查询对应的数据源",{"2":{"80":1}}],["值会被过滤",{"2":{"78":1}}],["值会对应多个数据源对象",{"2":{"38":1}}],["值与结果按顺序合并",{"2":{"73":1}}],["值一对多分组",{"2":{"73":1}}],["值一对一分组",{"2":{"73":1}}],["值为空的操作",{"2":{"118":1}}],["值为",{"0":{"247":1},"2":{"58":1,"247":3}}],["值",{"0":{"42":1},"2":{"59":2,"72":2,"73":1,"80":3,"86":1,"92":2,"94":1,"194":2,"219":1,"220":1,"222":1}}],["值只对应一个数据源对象",{"2":{"39":1}}],["执行填充",{"2":{"321":1,"327":1,"328":1}}],["执行填充操作时",{"2":{"151":1}}],["执行填充操作",{"2":{"124":3}}],["执行结果为",{"2":{"255":1}}],["执行操作",{"2":{"39":1}}],["执行器会将",{"2":{"6":1}}],["执行器",{"2":{"0":1,"129":1,"230":1,"283":1}}],["本示例将指导你如何处理当需要通过多个",{"2":{"274":1}}],["本示例将指导你如何在进行自动填充时",{"2":{"264":1}}],["本示例将指导你如何在执行时选择性的排除某一些操作",{"2":{"249":1}}],["本示例将指导你如何指定填充的顺序",{"2":{"261":1}}],["本示例将指导你如何配置使用方法作为数据源",{"2":{"257":1}}],["本示例将指导你如何配置填充后的附加操作",{"2":{"248":1}}],["本示例将指导你如何使用枚举作为数据源",{"2":{"253":1}}],["本地的用户群组",{"2":{"183":1}}],["本地缓存管理器",{"2":{"16":1}}],["本地缓存",{"2":{"16":1}}],["本身也设置一个全局前缀",{"2":{"177":1}}],["本身就是一个",{"2":{"53":1}}],["本身就是一个数组或者集合的情况",{"2":{"38":1}}],["只执行装配操作",{"2":{"252":1}}],["只是一些重复的关联查询操作",{"2":{"330":1}}],["只是一些网络连线之类的",{"2":{"182":1}}],["只是别对问题是由",{"2":{"208":1}}],["只管这么干好了",{"2":{"206":1}}],["只贴几十行代码",{"2":{"197":1}}],["只让你而不是整个论坛知道答案",{"2":{"186":1}}],["只在",{"2":{"185":1}}],["只因你的第一次搜索没有找到答案",{"2":{"179":1}}],["只会填充集合中的首个元素",{"2":{"228":1,"230":1}}],["只会完成带有",{"2":{"151":1}}],["只会查询",{"2":{"11":1}}],["只能判断是否为",{"2":{"118":1}}],["只需要",{"2":{"71":1}}],["只需将自定义工厂类声明为",{"2":{"37":1}}],["用",{"0":{"332":1}}],["用来按照操作配置真正地完成填充操作",{"2":{"283":1}}],["用犀利的语言将其驳得体无完肤都是可以接受的",{"2":{"206":1}}],["用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址",{"2":{"204":1}}],["用这种标题会被条件反射式地忽略",{"2":{"185":1}}],["用它来检查发送文件夹中的邮件",{"2":{"187":1}}],["用它们来找到与你遭遇到困难的软硬件问题最相关的网站",{"2":{"181":1}}],["用标签",{"2":{"182":1}}],["用法类似",{"2":{"122":1}}],["用法与",{"2":{"99":1}}],["用户仅需在自己的项目通过下述任意方式将其纳入",{"2":{"307":1}}],["用户需要自行创建后再将其注册到全局配置中",{"2":{"293":1}}],["用户需要确保目标容器能够接受",{"2":{"138":1}}],["用户",{"2":{"184":3}}],["用户也可以通过配置自定义是否关闭该功能",{"2":{"245":1}}],["用户也可以获取",{"2":{"166":1}}],["用户也可以指定",{"2":{"165":1}}],["用户也可以自行实现接口并提高工厂的优先级以替换默认策略",{"2":{"37":1}}],["用户默认不需要进行额外的操作",{"2":{"164":1}}],["用户可以通过",{"2":{"237":1,"244":1}}],["用户可以通过实现",{"2":{"56":1}}],["用户可以使用",{"2":{"167":1}}],["用户可以在通过",{"2":{"154":1}}],["用户可以在注解中使用",{"2":{"107":1}}],["用户可以实现",{"2":{"148":1}}],["用户可以为",{"2":{"138":1}}],["用户可以根据自己的需求",{"2":{"107":1}}],["用于自动查询接口并填充字段值",{"2":{"330":1}}],["用于生成构造方法与",{"2":{"306":1,"315":1,"323":1}}],["用于扫描一个或多个包路径下的枚举",{"2":{"241":1,"242":1}}],["用于整合组件管理",{"2":{"231":1}}],["用于快速声明一个基于常量类的装配操作",{"2":{"227":1}}],["用于快速声明一个基于方法容器的装配操作",{"2":{"222":1}}],["用于在具体的填充过程支持一些自定的操作",{"2":{"226":1}}],["用于同时支持",{"2":{"218":1,"220":1}}],["用于后续填充",{"2":{"52":1,"280":1}}],["用于分别对每一个参数进行填充",{"2":{"37":1}}],["用于统一填充方法参数",{"2":{"37":1}}],["用于统一管理框架各处的反射调用操作",{"2":{"25":1}}],["用于填充的对象是",{"2":{"27":1}}],["用于支持",{"2":{"8":1}}],["与该对象类型对应操作配置",{"2":{"329":1}}],["与非",{"2":{"310":1,"318":1}}],["与用于构造",{"2":{"298":1}}],["与上述相反",{"2":{"206":1}}],["与方法容器类似",{"2":{"173":1}}],["与嵌套填充配合使用",{"0":{"130":1}}],["与装配操作类似",{"2":{"107":1}}],["与装配操作一样",{"2":{"101":1}}],["与常量容器相同",{"2":{"49":1}}],["与",{"2":{"37":1,"38":1,"49":1,"51":2,"53":1,"61":2,"71":1,"73":1,"79":2,"89":2,"110":1,"118":1,"131":1,"132":1,"165":1,"218":1,"220":1,"226":3,"274":1,"281":1,"287":1}}],["与手动填充",{"2":{"35":1}}],["两种方式效果一样",{"2":{"307":1}}],["两种方式效果一致",{"2":{"55":1,"147":1}}],["两个过时的",{"2":{"231":1}}],["两个里面挑一个",{"2":{"207":1}}],["两个参数中提到了",{"2":{"205":1}}],["两个类型的对象",{"2":{"35":1}}],["两者区在主要的功能和配置上完全一致",{"2":{"304":1}}],["两者效果一致",{"2":{"285":1}}],["两者主要的区别在于是否在类或类的属性上配置注解时一并配置数据源容器",{"2":{"285":1}}],["两者对照如下",{"2":{"131":1}}],["两者差别不大",{"2":{"35":1}}],["适当引用并删减前文的内容",{"2":{"185":1}}],["适配不同的参数类型",{"2":{"33":1}}],["适用环境",{"2":{"18":1}}],["4",{"0":{"32":1,"51":1,"61":1,"74":1,"89":1,"95":1,"96":1,"97":1,"98":1,"113":1,"119":1,"137":1,"150":1,"171":1,"172":1,"178":1,"225":1,"244":1,"246":1,"273":1,"282":1,"309":1,"318":1,"319":1,"320":1,"326":1,"334":1},"1":{"97":1,"98":1,"319":1,"320":1},"2":{"78":2,"174":1,"179":1,"188":1,"302":1}}],["40",{"2":{"6":1}}],["字典或者",{"2":{"331":1}}],["字典",{"2":{"280":1}}],["字典项编码",{"2":{"220":1,"221":1}}],["字典项id",{"2":{"23":1}}],["字典类型",{"2":{"220":1,"221":1}}],["字",{"2":{"187":1}}],["字以内的标题是抓住资深专家注意力的好机会",{"2":{"185":1}}],["字符串的时候进行字段填充",{"2":{"154":1}}],["字符串的分隔符与上文",{"2":{"46":1}}],["字段填充是一个广泛存在的需求",{"2":{"333":1}}],["字段填充数据吗",{"0":{"301":1}}],["字段填充到",{"2":{"254":1}}],["字段进行填充",{"2":{"274":1}}],["字段关联数据的场景",{"2":{"274":1}}],["字段对应的一个操作会被转为一个",{"2":{"329":1}}],["字段对应",{"2":{"254":1}}],["字段与",{"2":{"254":1}}],["字段的类型改为一个字符串",{"2":{"143":1}}],["字段的值",{"2":{"86":1}}],["字段字符串中通过逗号分隔的多个键值",{"2":{"138":1}}],["字段字符串中按分隔符分割的多个键值",{"2":{"44":1}}],["字段同名",{"2":{"89":1}}],["字段或有返回值的无参方法",{"2":{"88":1}}],["字段值",{"2":{"255":2,"256":2}}],["字段值为",{"2":{"86":1}}],["字段值映射到",{"2":{"86":1,"329":1}}],["字段值对应的数据",{"2":{"86":1}}],["字段映射的字面量配置的新特性",{"2":{"230":1}}],["字段映射支持以链式操作符获取或设置多级嵌套对象的属性",{"2":{"215":1}}],["字段映射规则按照就近原则执行",{"2":{"139":1}}],["字段映射将变为批量映射模式",{"2":{"138":1}}],["字段映射",{"2":{"84":1,"255":1,"259":1}}],["字段映射到",{"2":{"63":1}}],["字段上的过程",{"2":{"329":1}}],["字段上通过",{"2":{"255":1}}],["字段上声明一个装配操作",{"2":{"86":1}}],["字段上",{"2":{"63":1,"86":1,"88":1,"136":1,"137":1,"255":1,"256":1}}],["字段为",{"2":{"29":1}}],["字段",{"2":{"29":1,"44":1,"84":1,"86":2,"92":1,"131":1,"135":1,"136":1,"138":1,"285":2}}],["就可能能够带给你越多的便利",{"2":{"333":1}}],["就能确认",{"2":{"277":1}}],["就请给出好的答案",{"2":{"211":1}}],["就给别人乱指路",{"2":{"211":1}}],["就算软件没花费你一分钱",{"2":{"210":1}}],["就是非常典型的关联字段填充操作",{"2":{"331":1}}],["就是直接尽可能的手动处理完整个过程",{"2":{"275":1}}],["就是那个提出问题的人",{"2":{"209":1}}],["就是对预先道谢这一条",{"2":{"201":1}}],["就不用浪费我的时间了",{"2":{"208":1}}],["就在我找到它的地方啊",{"2":{"208":1}}],["就指望别人像对待脆弱的洋娃娃那样对你",{"2":{"207":1}}],["就复制一份代码并移除不影响产生问题行为的部分",{"2":{"197":1}}],["就最有可能得到有用的答案",{"2":{"196":1}}],["就没有人能看到最常见问题的完整场景",{"2":{"184":1}}],["就没有对应的",{"2":{"27":1}}],["就试着搜索一下问题的几个关键词",{"2":{"183":1}}],["就需要更换不同的装配操作处理器",{"2":{"38":1}}],["就像那根最后压垮骆驼背的稻草一样",{"2":{"181":1}}],["就像",{"2":{"30":1}}],["就像在类或类属性上进行配置一样",{"2":{"29":1}}],["首先最好不要发布很长的问题描述",{"2":{"183":1}}],["首先",{"2":{"29":1,"121":1,"199":1,"255":1,"259":1,"274":1}}],["统一填充方法参数",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1}}],["又不想要每个类都重复配置",{"2":{"27":1}}],["又各自通过",{"2":{"6":1}}],["也支持组合式注解",{"2":{"285":1}}],["也支持直接传入",{"2":{"33":1}}],["也读过了",{"2":{"209":1}}],["也对",{"2":{"208":1}}],["也别妨碍他",{"2":{"211":1}}],["也别让自己卷入口水战",{"2":{"207":1}}],["也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者",{"2":{"207":1}}],["也别假设",{"2":{"184":1}}],["也很有礼貌地提到这点",{"2":{"200":1}}],["也应该被纠正",{"2":{"195":1}}],["也不能取而代之",{"2":{"201":1}}],["也不会让我满意",{"2":{"192":1}}],["也不存在提取公共父类的可能",{"2":{"27":1}}],["也没有用",{"2":{"191":1}}],["也换个好点的",{"2":{"186":1}}],["也提及你不反对将自己的邮件转发给他人",{"2":{"184":1}}],["也提供了一些便捷的工厂方法",{"2":{"68":1}}],["也提供了容器自身生命周期的回调接口",{"2":{"9":1}}],["也有可能你的问题一开始就没有组织好",{"2":{"210":1}}],["也有可能会冒犯到其中某部分人",{"2":{"190":1}}],["也有其它的黑客论坛",{"2":{"207":1}}],["也有",{"2":{"184":1}}],["也就是在质疑他们的能力",{"2":{"190":1}}],["也就是说",{"2":{"105":1}}],["也就不用再次发问了",{"2":{"184":1}}],["也许攻击的言语中还会带点夹七夹八的颜色",{"2":{"207":1}}],["也许值得这样去做",{"2":{"200":1}}],["也许太忙以至于没法回答你的问题",{"2":{"184":1}}],["也许这会有帮助",{"2":{"183":1}}],["也许这样就找到答案了",{"2":{"181":1}}],["也将对整个项目群组有益",{"2":{"184":1}}],["也能帮助你归纳出更好的问题",{"2":{"181":1}}],["也让遇到相似问题的其他人能被搜索引擎引导到你的提问来",{"2":{"179":1}}],["也是你如何透过善待他人而赢得声誉的方式",{"2":{"202":1}}],["也是件好事",{"2":{"179":1}}],["也是唯一的拆卸操作处理就是",{"2":{"107":1}}],["也是默认的处理器",{"2":{"38":1}}],["也会一并取出并展开",{"2":{"102":1}}],["也会被子类所继承",{"2":{"88":1}}],["也可能缓存在",{"2":{"333":1}}],["也可能是对象集合",{"2":{"52":1,"280":1}}],["也可以更换表达式引擎以支持其他类型的表达式",{"2":{"150":1}}],["也可以是字符串",{"2":{"150":1}}],["也可以直接是集合或者数组",{"2":{"138":1}}],["也可以通过建造者构建一个枚举容器",{"2":{"58":1}}],["也可以通过建造者构建一个常量容器",{"2":{"48":1}}],["类得到操作配置",{"2":{"283":1}}],["类的",{"2":{"254":1,"287":1}}],["类上的",{"2":{"226":1}}],["类中声明了三组操作",{"2":{"249":1}}],["类中配置任何注解",{"2":{"153":1}}],["类中的三个操作的顺序为",{"2":{"126":1}}],["类实现的",{"2":{"140":1}}],["类如下",{"2":{"140":1}}],["类或方法同理",{"2":{"114":1}}],["类似的",{"2":{"123":1}}],["类似下述代码",{"2":{"94":1}}],["类似",{"2":{"38":1,"329":1}}],["类似于",{"2":{"32":1,"38":1,"53":1}}],["类",{"2":{"27":1,"123":1,"254":1,"281":1}}],["类型或名称",{"2":{"290":1}}],["类型不为",{"2":{"176":1}}],["类型为",{"2":{"159":1,"160":1,"312":1,"320":1}}],["类型的非",{"2":{"217":1}}],["类型的数据",{"2":{"216":1}}],["类型的键",{"2":{"138":1}}],["类型的参数适配为容器",{"2":{"33":1}}],["类型的参数",{"2":{"33":1,"90":1}}],["类型转换",{"2":{"117":1,"134":1}}],["类型转换器",{"0":{"26":1}}],["类型强制转为",{"2":{"90":1}}],["类型并不相同",{"2":{"90":1}}],["类型",{"2":{"26":1,"45":1,"49":1,"51":1,"59":1,"61":1,"71":1,"72":1,"73":2,"79":1,"90":2,"93":1,"138":1}}],["填充不生效",{"0":{"287":1}}],["填充方式",{"0":{"284":1}}],["填充方法入参",{"2":{"147":1}}],["填充方法返回值",{"2":{"147":1}}],["填充关联商品信息",{"2":{"270":1,"271":1,"272":1,"273":2}}],["填充关联客户信息",{"2":{"270":1,"271":1,"272":1,"273":2}}],["填充订单类型",{"2":{"270":1}}],["填充被多级包装的数据",{"0":{"266":1}}],["填充被包装的数据",{"0":{"265":1}}],["填充出现问题",{"2":{"229":1}}],["填充员工的装配操作",{"2":{"130":1}}],["填充参数",{"2":{"124":1}}],["填充返回值",{"2":{"124":1}}],["填充嵌套对象",{"0":{"100":1},"1":{"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1},"2":{"288":1}}],["填充数据源为",{"2":{"79":1,"271":3,"285":1}}],["填充的数据源可能多种多样",{"2":{"333":1}}],["填充的对象可能是一个嵌套的树形结构",{"2":{"333":1}}],["填充的对象的字段非常像",{"2":{"27":1}}],["填充的格式默认为",{"2":{"44":1}}],["填充时",{"2":{"33":1}}],["填充",{"2":{"27":1,"31":1,"35":3,"159":1,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1}}],["参考",{"2":{"285":1}}],["参考文档中的",{"2":{"26":1}}],["参阅",{"2":{"212":1}}],["参数名",{"2":{"150":1}}],["参数对象作为",{"2":{"276":1}}],["参数对象",{"2":{"92":1,"276":1}}],["参数类型",{"2":{"71":1}}],["参数类型为",{"2":{"33":2}}],["参见上文操作执行器一节",{"2":{"284":1}}],["参见枚举容器一节",{"2":{"242":1}}],["参见常量容器一节",{"2":{"241":1}}],["参见",{"2":{"26":1,"116":1,"117":1,"118":1,"119":1,"120":1,"245":1,"275":1,"276":1,"289":1,"295":1}}],["作者会尽快响应",{"2":{"214":1}}],["作用",{"2":{"49":1,"51":1,"59":1,"61":1,"72":1,"79":1}}],["作用有限",{"2":{"26":1}}],["作为一个普通的",{"2":{"307":1}}],["作为不同的选项",{"2":{"256":1}}],["作为文档构建框架",{"2":{"230":1}}],["作为提供帮助者可以得到一些奖励",{"2":{"195":1}}],["作为查询字段",{"2":{"172":1}}],["作为",{"2":{"159":1,"176":1}}],["作为常用实现类",{"2":{"54":1}}],["作为分隔符",{"2":{"45":1,"46":1,"93":1}}],["作为集合",{"2":{"41":1}}],["作为缓存管理器时",{"2":{"177":1}}],["作为缓存管理器",{"2":{"18":1}}],["这类需求",{"2":{"331":1}}],["这类方法在调用时其他参数都是",{"2":{"71":1}}],["这就是现在的",{"2":{"330":1}}],["这就像大喊大叫一样会使人不快",{"2":{"181":1}}],["这直接导致了本指南的出现",{"2":{"209":1}}],["这关我屁事",{"2":{"208":1}}],["这不算是问题吧",{"2":{"208":1}}],["这也是有可能的",{"2":{"207":1}}],["这也意味着很有可能是你弄错了而不是软件本身有问题",{"2":{"190":1}}],["这点你不用操心",{"2":{"207":1}}],["这很正常",{"2":{"207":1}}],["这很常见",{"2":{"183":1}}],["这既可能是真也可能是假的",{"2":{"206":1}}],["这既使人困扰",{"2":{"191":1}}],["这时最好不要把手放在键盘上以免冒险",{"2":{"206":1}}],["这一个重构版本",{"2":{"216":1}}],["这一个重构与增强版本",{"2":{"215":1}}],["这一点并没有比使用清晰",{"2":{"201":1}}],["这一小节",{"2":{"80":1,"113":1}}],["这风险很大",{"2":{"200":1}}],["这是一个新特性版本",{"2":{"227":1,"230":1,"231":1,"234":1}}],["这是一个功能迭代版本",{"2":{"225":1,"226":1}}],["这是一个",{"2":{"224":1,"228":1,"229":1,"232":1,"233":1}}],["这是一个正常迭代版本",{"2":{"221":1,"222":1,"223":1}}],["这是一个很糟的后续问题回应",{"2":{"205":1}}],["这是",{"2":{"214":1,"217":1,"218":1,"219":1,"220":1}}],["这是我编译过程的记录",{"2":{"209":1}}],["这是在你检验它们只是口水战",{"2":{"207":1}}],["这是非常有价值的资产",{"2":{"202":1}}],["这是你的问题",{"2":{"200":1}}],["这是当容器为空时的一种特殊处理",{"2":{"63":1}}],["这可以让他们更愿意与你合作",{"2":{"197":1}}],["这可以使你得到回答的机会增加",{"2":{"189":1}}],["这技巧对你获得有用的答案相当有帮助",{"2":{"196":1}}],["这并不是一种怀疑",{"2":{"192":1}}],["这并不是要求你简单的把成堆的出错代码或者资料完全转录到你的提问中",{"2":{"189":1}}],["这比低声下气更好地定位了你的位置",{"2":{"191":1}}],["这总比你惹恼别人然后欠别人一个道歉要好一点",{"2":{"190":1}}],["这尤其严重",{"2":{"190":1}}],["这同样适用在网页和文件",{"2":{"190":1}}],["这通常不是个好主意",{"2":{"187":1}}],["这使得回复部分内容非常困难",{"2":{"187":1}}],["这本身就是暧昧的做法",{"2":{"185":1}}],["这将被视为无意义的喧闹",{"2":{"210":1}}],["这将伤害到你获取信息或帮助的机会",{"2":{"206":1}}],["这将限制你的观众",{"2":{"185":1}}],["这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者",{"2":{"179":1}}],["这些数据可能直接缓存在本地",{"2":{"333":1}}],["这些需求与核心业务无关",{"2":{"330":1}}],["这些操作光靠",{"2":{"248":1}}],["这些渠道通常更适合初学者的需要",{"2":{"210":1}}],["这些来找麻烦的人在给他们自己找麻烦",{"2":{"207":1}}],["这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙",{"2":{"207":1}}],["这些都是失败者的态度",{"2":{"207":1}}],["这些都是开始提问的好地方",{"2":{"183":1}}],["这些答复意味着回答者认为",{"2":{"204":1}}],["这些问题得由你来搞定",{"2":{"198":1}}],["这些方法底层都依赖于类型转换器管理器",{"2":{"26":1}}],["这么做只会使它们沦为毫无意义的唠叨与无用的技术论坛",{"2":{"207":1}}],["这么做很棒",{"2":{"196":1}}],["这么做",{"2":{"179":1}}],["这条规则存在一条有限的例外",{"2":{"195":1}}],["这条",{"2":{"169":1,"170":1,"171":1}}],["这样一个动作",{"2":{"281":1}}],["这样问更是画蛇添足",{"2":{"199":1}}],["这样的链式操作符",{"2":{"239":1}}],["这样的回答",{"2":{"209":1}}],["这样的人对无节制的时间黑洞相当厌恶",{"2":{"196":1}}],["这样的格式",{"2":{"138":1}}],["这样黑客们在读你的记录时就知道该注意哪些内容了",{"2":{"193":1}}],["这样做的话",{"2":{"190":1}}],["这样做的用处至少有三点",{"2":{"189":1}}],["这样做的人永远看不到你发的消息",{"2":{"185":1}}],["这样让人反感的话",{"2":{"185":1}}],["这样可以让你感受一下那里的文化",{"2":{"181":1}}],["这样很可能直接就找到了能解决问题的文件或邮件列表线索",{"2":{"179":1}}],["这样",{"2":{"173":1}}],["这样其他的操作就不会受到这个条件影响",{"2":{"111":1}}],["这里我们可以基于一个",{"2":{"308":1,"316":1,"325":1}}],["这里我们以方法数据源容器为例",{"2":{"263":1}}],["这里我们以手机号脱敏为例",{"2":{"65":1}}],["这里我们选择直接基于",{"2":{"255":1,"259":1}}],["这里有句话可以提醒你",{"2":{"192":1}}],["这里需要强调一下",{"2":{"73":1}}],["这里的",{"2":{"67":1}}],["这里是手机号字段",{"2":{"66":1}}],["这里提供了一些可选的配置",{"2":{"49":1}}],["这个插件发展成了一个独立的内部框架",{"2":{"330":1}}],["这个插件功能逐渐丰富",{"2":{"330":1}}],["这个家伙",{"2":{"209":1}}],["这个傲慢自大的提问者",{"2":{"209":1}}],["这个问题已经",{"2":{"209":1}}],["这个过程和奖励都被中止",{"2":{"195":1}}],["这个注解会被配置解析器中的专门的注解解析器",{"2":{"167":1}}],["这个规则并不总是准确的",{"2":{"125":1}}],["这个装配操作在",{"2":{"123":1}}],["这个装配操作只在",{"2":{"123":1}}],["这个功能是通过类型解析器",{"2":{"106":1,"148":1}}],["这个功能通常用于同步冗余的别名字段",{"2":{"63":1}}],["这个将嵌套对象取出并展开的操作称为拆卸操作",{"2":{"100":1}}],["这个提供者接入",{"2":{"53":1}}],["这种行为实际上就是字段填充",{"2":{"331":1}}],["这种",{"2":{"281":1}}],["这种先配置数据源",{"2":{"260":1}}],["这种大众化的软件",{"2":{"210":1}}],["这种问法无非想得到",{"2":{"209":1}}],["这种问题说明提问者不但对",{"2":{"208":1}}],["这种说法通常都是对的",{"2":{"208":1}}],["这种事发生以后",{"2":{"207":1}}],["这种风格更注重解决问题",{"2":{"206":1}}],["这种良好的后继行动实际上比传统的礼节更为重要",{"2":{"202":1}}],["这种感觉对于那些你向他们求助的大师或者专家而言",{"2":{"202":1}}],["这种补充有助于让每位参与协助的人因问题的解决而从中得到满足感",{"2":{"202":1}}],["这种类型的补充也有助于他人在邮件列表",{"2":{"202":1}}],["这种情况应该怎样检查最好",{"2":{"192":1}}],["这种情况下",{"2":{"87":1,"100":1,"103":1}}],["这种编码对于张贴非",{"2":{"187":1}}],["这种方式可以帮助你了解如何自行解决这个问题",{"2":{"197":1}}],["这种方式称为自动填充",{"2":{"146":1}}],["这种方式强转",{"2":{"26":1}}],["这种配置一般用于将属性的字典",{"2":{"137":1}}],["这种配置适用于将字典值或枚举值映射回目标对象的字段上",{"2":{"136":1}}],["这种配置通常适用于对象的组装",{"2":{"135":1}}],["这种配置方式直接复用了",{"2":{"79":1}}],["这种字段映射遵循普通字段映射的语义",{"2":{"44":1}}],["这种做法等效于使用",{"2":{"35":1}}],["说明你是个白痴",{"2":{"208":1}}],["说明了你是个卑鄙小人",{"2":{"208":1}}],["说明是什么解决了问题",{"2":{"202":1}}],["说明问题是怎样解决的",{"2":{"202":1}}],["说明",{"2":{"26":1,"73":1}}],["来说明怎样聪明的提问",{"2":{"209":1}}],["来结束你的问题多半会使你得不到回答",{"2":{"186":1}}],["来浪费这个机会",{"2":{"185":1}}],["来适应不同的情况",{"2":{"176":1}}],["来保证",{"2":{"127":1}}],["来完成",{"2":{"107":1}}],["来完成这种一对多",{"2":{"38":1}}],["来实现类似的效果",{"2":{"94":1}}],["来实现参数的自动转换",{"2":{"26":1}}],["来引用它们",{"2":{"18":1}}],["装配",{"2":{"123":2}}],["装配处理器",{"0":{"38":1},"1":{"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1},"2":{"38":1}}],["装配操作可以指定数据源容器的加载策略",{"2":{"218":1,"220":1}}],["装配操作中的容器支持懒加载",{"2":{"217":1}}],["装配操作处理器",{"2":{"91":1}}],["装配操作指一个",{"2":{"84":1}}],["装配操作",{"2":{"22":6,"281":2}}],["装饰器是",{"2":{"25":1}}],["装饰器",{"2":{"25":3,"218":1,"220":1}}],["理论上具备最高的性能",{"2":{"25":1}}],["×",{"2":{"25":2,"283":4}}],["较前者拥有更高的性能",{"2":{"25":1}}],["√",{"2":{"25":4,"283":2}}],["功能和概念的基础上进行彻底的重构",{"2":{"330":1}}],["功能",{"2":{"297":1}}],["功能强大",{"2":{"26":1}}],["功能最全的操作器",{"2":{"25":1}}],["功能同上",{"2":{"23":1}}],["最初",{"2":{"330":1}}],["最初的回复才能够",{"2":{"195":1}}],["最简单的粗暴的方法",{"2":{"275":1}}],["最理想的方式是向最初提问的话题回复此消息",{"2":{"202":1}}],["最有效描述程序问题的方法是提供最精简的",{"2":{"197":1}}],["最有可能给你有用答案的人通常也正是最忙的人",{"2":{"196":1}}],["最好忽略这种人",{"2":{"208":1}}],["最好不要理睬大多数的口水战",{"2":{"207":1}}],["最好再把这份指南剩下的内容多读几遍",{"2":{"200":1}}],["最好写得像是你做错了什么",{"2":{"190":1}}],["最好设置你的换行分割点小于",{"2":{"187":1}}],["最好通过一句话的问题描述来开始聊天",{"2":{"183":1}}],["最好先去该发行版的论坛或邮件列表中提问",{"2":{"183":1}}],["最好在搞清楚这之间差异之前什么也别问",{"2":{"181":1}}],["最典型的错误之一是在某种致力于跨平台可移植的语言",{"2":{"181":1}}],["最终",{"2":{"330":1}}],["最终返回一个按照参数对象分组的数据集",{"2":{"276":1}}],["最终执行的",{"2":{"172":1}}],["最终都需要将其注册到待使用的",{"2":{"156":1}}],["最终推断出来的类型会是",{"2":{"149":1}}],["最终的执行顺序要通过",{"2":{"127":1}}],["最后再根据情况继续阅读",{"2":{"334":1}}],["最后再将参数对象作为本次调用的",{"2":{"92":1}}],["最后返回以",{"2":{"275":1}}],["最后一招",{"2":{"198":1}}],["最后",{"2":{"173":1,"209":1,"259":1}}],["最后实际的调用参数为",{"2":{"78":1}}],["最通用",{"2":{"25":1}}],["最大线程数与核心线程数皆为",{"2":{"1":1}}],["介绍",{"2":{"25":1}}],["html",{"2":{"187":2}}],["hibernate",{"2":{"122":1}}],["hutoolconvertermanager",{"2":{"26":1,"298":1}}],["hutool",{"0":{"298":1},"2":{"24":1,"26":3,"217":1,"285":1,"298":1}}],["hacker",{"2":{"179":1}}],["hashcode",{"2":{"80":1}}],["hashmap",{"2":{"9":1,"20":2,"52":1,"69":1,"263":1,"275":1,"280":3}}],["handlertype",{"2":{"39":2,"41":1,"42":1,"44":2,"93":1,"107":3,"138":2,"143":2,"173":1,"271":1,"272":1,"273":1,"290":1,"291":1,"292":1}}],["handler",{"2":{"23":2,"39":1,"65":2,"67":2,"107":2,"287":1,"290":1,"291":1,"292":1}}],["启动项目有可能会出现",{"2":{"302":1}}],["启动出现",{"2":{"226":1}}],["启动应用报错",{"0":{"302":1},"2":{"221":1,"302":1}}],["启动时容器仍然未加载",{"2":{"221":1}}],["启动顺序太靠后",{"2":{"221":1}}],["启动自动注册",{"2":{"165":1}}],["启动后",{"2":{"23":1}}],["启用配置",{"0":{"307":1}}],["启用字节码增强",{"2":{"237":1}}],["启用全局切面后",{"2":{"219":1,"220":1}}],["启用插件",{"0":{"156":1},"1":{"157":1,"158":1}}],["启用后",{"2":{"154":1}}],["启用缓存管理器",{"0":{"176":1}}],["启用缓存",{"2":{"79":1}}],["启用执行器",{"0":{"1":1}}],["例如有人能帮我吗",{"2":{"199":1}}],["例如运行脚本工具所生成的",{"2":{"193":1}}],["例如对象映射",{"2":{"44":1,"138":1}}],["例如",{"2":{"23":1,"43":4,"63":1,"107":1,"126":1,"138":2,"140":1,"143":1,"150":1,"151":1,"152":1,"172":1,"173":1,"197":1,"199":1}}],["返回值可以是",{"2":{"312":1,"320":1}}],["返回值被通用响应体包装",{"2":{"77":2,"149":2,"265":2}}],["返回值已经是分组后的",{"2":{"73":1}}],["返回值参数类型",{"2":{"72":1}}],["返回值类型可以是单个对象",{"2":{"147":1}}],["返回值类型",{"2":{"71":1,"72":1}}],["返回的容器会根据固定的字典类型查询",{"2":{"277":1}}],["返回的数据集直接以对象为",{"2":{"275":1}}],["返回的数据必须按入参的对象实例本身分组",{"2":{"80":1}}],["返回的数据源对象类型为",{"2":{"71":2,"75":1}}],["返回的数据按客户组别id分组",{"2":{"40":1}}],["返回的对象可以是数据源对象或数据源对象的属性集合",{"2":{"44":1,"138":1}}],["返回字典分类和字典类型组合的字符串作为命名空间",{"2":{"23":1}}],["返回一个自定义缓存对象",{"2":{"20":1}}],["筛选",{"2":{"23":1}}],["标准",{"2":{"87":1}}],["标准装配操作注解处理器",{"2":{"23":1}}],["标准操作注解处理器",{"2":{"23":1}}],["通知器",{"2":{"297":1}}],["通用响应体包装了分页对象",{"2":{"266":1}}],["通用响应体",{"2":{"77":1,"149":1,"265":1}}],["通用属性",{"2":{"23":1}}],["通常封闭源代码软件的技术支持费用比开源软件的要高得多",{"2":{"210":1}}],["通常人们组建这样的团体来互相帮助并帮助新手",{"2":{"210":1}}],["通常在",{"2":{"209":1}}],["通常",{"2":{"204":1}}],["通常会被垃圾信过滤器过滤掉",{"2":{"200":1}}],["通常请别人看看哪里有问题",{"2":{"196":1}}],["通常比问你能解释一下",{"2":{"196":1}}],["通常是因为他认为问题编写太差或者太肤浅",{"2":{"195":1}}],["通常是接口中的查询方法",{"2":{"42":1}}],["通常可以即时得到回应",{"2":{"183":1}}],["通常那儿都有常见问题",{"2":{"181":1}}],["通常情况下每个操作都对应类或类属性上的一个注解",{"2":{"281":1}}],["通常情况下",{"2":{"23":1,"172":1}}],["通过更少的代码搞定各种关联字段填充的需求",{"2":{"333":1}}],["通过引入",{"2":{"333":1}}],["通过回调接口排除",{"2":{"252":1}}],["通过回复提问",{"2":{"185":1}}],["通过默认引入了基于字节码的反射增强库",{"2":{"237":1}}],["通过告诉他们我所走过的弯路",{"2":{"209":1}}],["通过我的提问方法",{"2":{"209":1}}],["通过允许将你的电子邮件转发他人",{"2":{"184":1}}],["通过论坛或",{"2":{"183":1}}],["通过注解的",{"2":{"150":1,"151":1,"152":1}}],["通过注解配置到期时间和刷新",{"2":{"225":1}}],["通过注解配置",{"0":{"13":1},"2":{"50":1,"60":1}}],["通过类似",{"2":{"140":1}}],["通过模板引入的字段映射配置与通过",{"2":{"139":1}}],["通过指定",{"2":{"111":1}}],["通过一套类似",{"2":{"108":1}}],["通过在类或属性上添加",{"2":{"79":1}}],["通过获取注解得到额外的信息",{"2":{"67":1}}],["通过获取它",{"2":{"67":1}}],["通过对象内省的方式",{"2":{"63":1}}],["通过",{"2":{"50":1,"53":1,"55":1,"60":1,"69":1,"91":1,"126":1,"144":1,"244":1,"271":1,"281":1,"290":1,"291":1,"292":1,"294":1}}],["通过配置文件",{"2":{"50":1,"60":1}}],["通过依赖注入获取字典服务",{"2":{"23":1}}],["通过该配置对象我们可以知道一个对象中有多少个字段需要处理",{"2":{"329":1}}],["通过该回调接口",{"2":{"10":1}}],["通过该方法可以获得被替换或者删除的容器",{"2":{"8":1}}],["通过该方法可以获取创建后即将加入缓存的容器实例",{"2":{"8":1}}],["通过该方法获得要注册的容器示例或工厂方法",{"2":{"8":1}}],["拆卸操作支持非平铺模式",{"2":{"234":1}}],["拆卸操作支持处理数组",{"2":{"101":1}}],["拆卸操作也可以排序",{"2":{"129":1}}],["拆卸操作也依赖于拆卸操作处理器",{"2":{"107":1}}],["拆卸操作处理器",{"0":{"107":1}}],["拆卸操作是递归完成的",{"2":{"105":1}}],["拆卸操作同样支持在类或属性上声明",{"2":{"101":1}}],["拆卸操作执行器",{"2":{"25":1}}],["拆卸操作",{"2":{"22":1,"130":1,"151":1,"281":1}}],["上图描述了一个",{"2":{"329":1}}],["上面代码用于为",{"2":{"270":1}}],["上面",{"2":{"254":1}}],["上的一个真实的提问",{"2":{"209":1}}],["上的特定注解解析为对应的装配或拆卸配置",{"2":{"21":1}}],["上没有找到任何答案",{"2":{"182":1}}],["上下文中",{"2":{"307":1,"315":1}}],["上下文中的组件",{"2":{"214":1}}],["上下文中已经有了一个继承",{"2":{"167":1}}],["上下文中任何符合",{"2":{"165":1}}],["上下文中获得对应的",{"2":{"164":1}}],["上述写法被称为选项式",{"2":{"256":1}}],["上述配置相当于使用",{"2":{"169":1,"170":1,"171":1}}],["上述配置表示",{"2":{"86":1}}],["上述示例表示",{"2":{"244":1}}],["上述示例表示只有当type不等于",{"2":{"150":1}}],["上述示例中",{"2":{"106":1,"132":1,"135":1,"136":1,"138":1,"148":1,"173":1}}],["上述条件等同于",{"2":{"119":1}}],["上述这个逻辑的问题在于",{"2":{"6":1}}],["上添加",{"2":{"66":1,"159":1}}],["传递给parser时",{"2":{"21":1}}],["注入",{"2":{"312":1,"320":1}}],["注入操作者接口",{"2":{"30":1}}],["注意告诉我答案和给我启示",{"2":{"209":1}}],["注意它们的默认设置不一定满足这些要求",{"2":{"187":1}}],["注意",{"2":{"24":1,"25":1,"29":1,"71":1,"82":1,"86":1,"105":1,"117":1,"208":2}}],["注册mapper",{"0":{"163":1},"1":{"164":1,"165":1,"166":1}}],["注册",{"2":{"159":1,"163":1}}],["注册到",{"2":{"158":1}}],["注册到你需要的",{"2":{"157":1}}],["注册策略",{"2":{"143":1}}],["注册注解解析器",{"2":{"121":1}}],["注册注解处理器",{"2":{"23":1}}],["注册数据源容器",{"0":{"81":1},"1":{"82":1,"83":1}}],["注册一个键值映射策略",{"2":{"65":1}}],["注册一系列注解处理器",{"2":{"21":1}}],["注册指定的值映射策略",{"2":{"65":1}}],["注解引入框架后",{"2":{"302":1}}],["注解引用数据源",{"2":{"272":1}}],["注解不生效",{"0":{"296":1,"297":1}}],["注解无法支持带有通配符的路径",{"2":{"231":1}}],["注解无法被识别",{"2":{"226":1}}],["注解支持通过类似",{"2":{"227":1}}],["注解支持在",{"2":{"227":1}}],["注解用于配置",{"2":{"225":1}}],["注解应当支持在类上声明",{"2":{"222":1}}],["注解在类上的配置方式",{"2":{"218":1,"220":1}}],["注解在属性上",{"2":{"49":3}}],["注解指定在",{"2":{"173":1}}],["注解指定扫描路径",{"2":{"30":1}}],["注解标记的属性作为主键",{"2":{"169":1}}],["注解来配置以",{"2":{"167":1}}],["注解来进一步定义容器的具体信息",{"2":{"49":1,"59":1}}],["注解来进一步指定如何填充参数",{"2":{"36":1}}],["注解后",{"2":{"159":1,"221":1,"231":1,"302":1}}],["注解替换",{"2":{"126":1}}],["注解也支持使用",{"2":{"123":1}}],["注解声明一个装配操作",{"2":{"255":1}}],["注解声明在类上",{"2":{"104":1}}],["注解声明装配操作时",{"2":{"34":1}}],["注解进行声明",{"2":{"102":1}}],["注解进行选项式风格的配置",{"2":{"51":1,"61":1,"79":1}}],["注解都支持在类或类的属性上使用",{"2":{"85":1}}],["注解绑定的方法上添加",{"2":{"79":1}}],["注解提供了一些参数",{"2":{"79":1}}],["注解添加了两个用于空值处理的属性",{"2":{"78":1}}],["注解所在的元素",{"2":{"67":1}}],["注解即可",{"2":{"66":1,"159":1,"288":1}}],["注解即可为其应用缓存",{"2":{"56":1}}],["注解中的",{"2":{"290":1,"291":1,"292":1}}],["注解中正确配置了",{"2":{"287":1}}],["注解中不指定引用字段",{"2":{"136":1,"137":1}}],["注解中不指定",{"2":{"135":1}}],["注解中使用",{"2":{"123":1,"124":1,"139":1}}],["注解中通过",{"2":{"77":1,"149":1,"265":1}}],["注解中通过命名空间引入了",{"2":{"52":1}}],["注解中",{"2":{"72":1,"140":1}}],["注解中指定",{"2":{"262":1}}],["注解中指定缓存配置",{"2":{"226":1}}],["注解中指定使用",{"2":{"129":1}}],["注解中指定使用异步执行器",{"2":{"3":1}}],["注解中指定要使用异步执行器",{"2":{"5":1}}],["注解共提供下述可选项",{"2":{"51":1,"61":1}}],["注解了",{"2":{"51":1,"61":1}}],["注解配置了两个映射属性",{"2":{"132":1}}],["注解配置要扫描的枚举包路径",{"2":{"60":1}}],["注解配置要扫描的常量包路径",{"2":{"50":1}}],["注解配置装配操作",{"2":{"29":1}}],["注解的自动填充",{"2":{"225":1}}],["注解的接口的代理对象",{"2":{"217":1}}],["注解的配置",{"2":{"215":1}}],["注解的一些配置项",{"2":{"160":1}}],["注解的解析器",{"2":{"121":1}}],["注解的作用域",{"0":{"114":1}}],["注解的方法上添加操作配置",{"2":{"230":1}}],["注解的方法上添加注解",{"2":{"13":1}}],["注解的方法或者参数上获取操作配置",{"2":{"153":1}}],["注解的方式实现配置缓存",{"2":{"79":1}}],["注解的属性",{"2":{"49":2}}],["注解的",{"2":{"39":1,"55":1,"99":1,"126":2}}],["注解的参数进行填充",{"2":{"37":1}}],["注解的参数",{"2":{"37":1}}],["注解的声明式监听器机制类似",{"2":{"37":1}}],["注解的使用方式与自动填充中完全一致",{"2":{"36":1}}],["注解上的指定的执行器和解析器",{"2":{"35":1}}],["注解上需要显式的指定",{"2":{"29":1}}],["注解处理器",{"0":{"21":1,"282":1},"1":{"22":1,"23":1},"2":{"285":1}}],["注解时",{"2":{"17":1}}],["注解",{"0":{"36":1},"2":{"13":1,"22":1,"27":1,"29":1,"37":1,"49":3,"51":3,"56":1,"57":1,"61":3,"71":1,"75":1,"79":2,"80":1,"84":1,"116":1,"117":1,"118":1,"119":1,"120":1,"131":1,"147":1,"216":1,"217":1,"222":1,"227":1,"234":1,"259":1,"284":2}}],["lkml",{"2":{"209":1}}],["last",{"2":{"155":3,"162":2,"175":2,"305":1,"306":2,"314":1,"315":2,"322":1,"323":2}}],["lambda",{"0":{"68":1},"2":{"68":3,"280":1}}],["lambdacontainer",{"2":{"40":1}}],["lombok",{"2":{"269":2,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1}}],["lombk",{"2":{"159":1}}],["loadingcache",{"2":{"214":1,"215":1}}],["load",{"2":{"60":1,"242":1}}],["long",{"2":{"20":1}}],["lts",{"2":{"226":1}}],["lt",{"2":{"44":1,"73":4,"138":1,"176":1,"197":2}}],["linux",{"2":{"183":2,"208":6,"209":2,"210":1}}],["linkedhashmap",{"2":{"33":2}}],["linkedblockingqueue",{"2":{"1":1}}],["lifecycle",{"2":{"8":1,"9":4,"300":1}}],["listperson",{"2":{"331":2,"332":1}}],["listbytypeandid",{"2":{"276":3}}],["listbytypeandids",{"2":{"275":2,"277":1}}],["listbyids",{"2":{"33":1,"40":1,"56":1,"79":3,"130":4,"149":2,"153":2,"263":3,"265":2,"271":4,"272":4,"285":5,"331":1,"332":1}}],["listorder",{"2":{"270":1,"271":1}}],["listuseinfo",{"2":{"258":1}}],["listuserinfos",{"2":{"258":1,"259":2}}],["listusers",{"2":{"258":1,"259":2,"260":2}}],["listuser",{"2":{"77":2,"149":3,"265":2,"266":1}}],["listuseragenamebyids",{"2":{"73":1}}],["listusermapbyids",{"2":{"73":1}}],["listuserbydeptids",{"2":{"73":1}}],["listuserbydeptid",{"2":{"73":1}}],["listuserbyids",{"2":{"73":1}}],["listfoo",{"2":{"250":1}}],["liststudent",{"2":{"129":1,"262":1}}],["listitembyidsandtypes",{"2":{"74":1}}],["listinternaluserbyids",{"2":{"33":1}}],["listdicts",{"2":{"23":1}}],["list",{"2":{"3":2,"4":1,"13":2,"17":2,"18":2,"23":1,"27":1,"41":1,"42":1,"44":3,"45":1,"56":1,"71":3,"73":10,"74":2,"75":1,"77":4,"102":1,"103":2,"104":1,"105":1,"106":1,"107":1,"110":1,"119":2,"123":1,"124":2,"129":2,"130":3,"138":4,"143":3,"145":1,"147":1,"148":1,"149":9,"150":1,"151":1,"152":1,"153":1,"173":1,"250":1,"255":1,"258":4,"259":4,"262":2,"263":2,"265":4,"266":5,"269":1,"270":6,"271":3,"272":3,"273":1,"275":2,"283":1,"285":1,"311":1,"312":2,"313":2,"319":1,"320":2,"321":2,"327":1,"328":1,"331":3,"332":2}}],["k6",{"2":{"192":1}}],["k",{"2":{"20":6}}],["k>",{"2":{"20":4,"277":3}}],["keytriggeroperation>",{"2":{"124":1}}],["keytriggeroperation",{"2":{"121":1,"227":1}}],["keytype",{"2":{"42":1,"45":1,"74":1,"90":3,"92":2,"93":1,"159":2,"160":1}}],["keydesc",{"2":{"42":1,"45":2,"46":2,"74":1,"91":1,"92":6,"93":3,"94":1}}],["keyresolver",{"2":{"38":1,"91":1,"94":1,"95":2}}],["keys",{"2":{"9":1,"13":1,"68":2,"73":4,"74":1,"118":4,"177":1,"178":1,"226":1}}],["key",{"0":{"42":1,"247":1,"301":1},"2":{"5":1,"6":2,"10":3,"11":1,"13":3,"17":3,"18":3,"20":8,"23":3,"24":2,"27":1,"29":3,"32":1,"33":3,"38":2,"39":1,"40":1,"43":1,"45":1,"49":1,"58":3,"59":6,"61":1,"65":2,"67":2,"69":2,"72":5,"73":9,"80":7,"84":3,"86":4,"88":3,"89":1,"90":7,"92":3,"93":1,"94":2,"104":2,"110":2,"111":8,"114":4,"117":5,"118":3,"131":2,"136":1,"137":2,"153":2,"159":4,"160":1,"176":5,"177":2,"178":1,"219":2,"220":2,"222":1,"230":1,"247":4,"252":2,"255":2,"256":2,"274":1,"275":2,"276":3,"280":3,"281":2,"287":6,"329":1,"331":3}}],["定义一个用于解析",{"2":{"121":1}}],["定义一个条件注解",{"2":{"121":1}}],["定义一个缓存管理器实现类",{"2":{"20":1}}],["定义一个缓存实现类",{"2":{"20":1}}],["定义lambda容器",{"2":{"68":1}}],["定义枚举容器的命名空间",{"2":{"59":1,"72":1}}],["定义常量容器的命名空间",{"2":{"49":1}}],["定义你的自己的类型转换器",{"2":{"26":1}}],["定义注解处理器",{"2":{"23":1}}],["定义注解",{"2":{"23":1}}],["定义缓存配置",{"2":{"15":1}}],["假使你的汽车发动机汽缸密封圈爆掉了",{"2":{"210":1}}],["假设有以下",{"2":{"172":1}}],["假设我们有一个数据库表映射对象如下",{"2":{"167":1}}],["假设我们现在有",{"2":{"6":1}}],["假设",{"2":{"140":1,"254":1,"258":1}}],["假设通过",{"2":{"137":1}}],["假设存在以下键字段类型",{"2":{"43":1}}],["假如我们有一张字典表",{"2":{"23":1}}],["假如希望我们想要实现一个基于",{"2":{"20":1}}],["要怎么处理",{"2":{"329":1}}],["要谦虚和诚实",{"2":{"211":1}}],["要知道",{"2":{"210":1}}],["要解决的问题糊涂",{"2":{"208":1}}],["要么用自己的方式对付他们",{"2":{"207":1}}],["要么就是测试你是否真会搞砸的心理专家",{"2":{"207":1}}],["要求道歉",{"2":{"207":1}}],["要求通过电子邮件回复是非常无礼的",{"2":{"186":1}}],["要得到一段相当精简的测试用例并不太容易",{"2":{"197":1}}],["要理解专家们所处的世界",{"2":{"196":1}}],["要向列表而不是其中的个别成员提问",{"2":{"184":1}}],["要一个一个地来",{"2":{"181":1}}],["要查询的字段",{"2":{"169":1,"171":1}}],["要令自定义注解解析器生效",{"2":{"121":1}}],["要扫描的包路径",{"2":{"50":1,"60":1}}],["要接入自定义的缓存",{"2":{"20":1}}],["要使用的缓存管理器",{"2":{"14":1}}],["自问写一份文件或加个常见问题",{"2":{"202":1}}],["自从本指南发布后",{"2":{"201":1}}],["自己定义一个提供者",{"2":{"54":1}}],["自动执行填充",{"2":{"313":1}}],["自动触发",{"2":{"255":1,"259":1}}],["自动生成表查询数据源",{"2":{"214":1}}],["自动校正选项",{"2":{"187":1}}],["自动从",{"2":{"164":1}}],["自动构建数据源容器",{"2":{"161":1}}],["自动类型推断",{"0":{"148":1}}],["自动类型转换",{"0":{"134":1}}],["自动推断类型",{"0":{"106":1}}],["自动注册",{"0":{"82":1,"165":1}}],["自动填充方法入参",{"2":{"284":1}}],["自动填充方法返回值",{"2":{"284":1,"312":1,"320":1}}],["自动填充方法参数时",{"2":{"231":1}}],["自动填充时",{"2":{"227":1,"234":1}}],["自动填充将会生效",{"2":{"157":1}}],["自动填充",{"0":{"129":1,"146":1,"245":1,"312":1,"320":1},"1":{"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1},"2":{"36":1,"77":1,"124":1,"160":1,"284":1}}],["自动回收",{"2":{"18":1}}],["自定义注解",{"2":{"121":1}}],["自定义注解处理器",{"0":{"23":1}}],["自定义条件",{"0":{"121":1}}],["自定义策略",{"0":{"98":1,"143":1}}],["自定义解析器",{"0":{"95":1}}],["自定义容器",{"0":{"56":1}}],["自定义类型转换",{"2":{"26":1}}],["自定义缓存",{"0":{"20":1}}],["失效",{"2":{"19":1}}],["并决定在保留",{"2":{"330":1}}],["并实现了基于切面的自动填充功能",{"2":{"330":1}}],["并实现各种增删改查方法",{"2":{"20":1}}],["并最终将数据源中的",{"2":{"329":1}}],["并最终分发给操作执行器",{"2":{"329":1}}],["并完成具体的字段映射",{"2":{"329":1}}],["并完成自动注册",{"2":{"164":1}}],["并引入",{"2":{"306":1}}],["并引用相关的若干行",{"2":{"193":1}}],["并没有注册异步操作执行器",{"2":{"293":1}}],["并填充",{"2":{"285":2}}],["并根据操作配置完成所有操作",{"2":{"283":1}}],["并解析",{"2":{"283":1}}],["并获得操作配置",{"2":{"281":1}}],["并直接设置值",{"2":{"275":1}}],["并添加到",{"2":{"275":1}}],["并添加了键值解析器",{"2":{"230":1}}],["并添加了少量新功能",{"2":{"222":1,"223":1}}],["并添加了一些新功能",{"2":{"219":1}}],["并添加了一些新的功能",{"2":{"217":1}}],["并找到对应的商品信息",{"2":{"270":1}}],["并尝试通过容器获取对应的数据",{"2":{"247":1}}],["并与键值解析器进行整合",{"2":{"230":1}}],["并与键值对应",{"2":{"171":1}}],["并额外支持了常量和键值两种数据源容器的选项式配置",{"2":{"227":1}}],["并优化了一些功能的使用方式",{"2":{"226":1}}],["并修复了一些问题",{"2":{"225":1}}],["并重构",{"2":{"222":1}}],["并发环境下获取容器可能导致类转换异常",{"2":{"222":1}}],["并调整了关于枚举和常量扫描相关的功能",{"2":{"221":1}}],["并统一为所有装配操作提供一对一",{"2":{"214":1}}],["并附上一个链接一点用都没有",{"2":{"211":1}}],["并邀请他们与我共同探讨",{"2":{"209":1}}],["并声称如果你不想帮助用户就闭嘴",{"2":{"207":1}}],["并再一次向他们表示感谢",{"2":{"202":1}}],["并描述为什么它们不起作用",{"2":{"192":1}}],["并提供新手帮助",{"2":{"183":1}}],["并提取",{"2":{"41":1}}],["并不难",{"2":{"187":1}}],["并不会实际上的清除",{"2":{"178":1}}],["并不总是必须的",{"2":{"71":1}}],["并手动完成注册",{"2":{"121":1}}],["并让它们以特定的顺序组合",{"2":{"113":1}}],["并通过",{"2":{"107":1}}],["并通过方法进行填充",{"2":{"27":1}}],["并指定使用你自己的解析器",{"2":{"95":1}}],["并指定要绑定的目标类中的指定方法",{"2":{"79":1}}],["并将此逻辑从主业务流程中剥离",{"2":{"332":1}}],["并将所有属性值组装为集合",{"2":{"138":1}}],["并将首个非空值作为实际的",{"2":{"94":1}}],["并将",{"2":{"92":1}}],["并将其部分字段填充到最终返回的对象上",{"2":{"331":1}}],["并将其上传到",{"2":{"330":1}}],["并将其填充到",{"2":{"309":1,"317":1,"326":1}}],["并将其注册到全局配置中",{"2":{"308":1,"316":1,"325":1}}],["并将其注册到全局配置对象中",{"2":{"308":1,"316":1,"325":1}}],["并将其注册为一个方法容器",{"2":{"71":1}}],["并将其作为数据源对象返回",{"2":{"69":1}}],["并将其交给",{"2":{"65":1}}],["并将其声明为",{"2":{"56":1}}],["并将其赋值给目标对象的指定属性",{"2":{"41":1}}],["并将其增量添加到缓存中",{"2":{"11":1}}],["并如何对",{"2":{"80":1}}],["并按字典值分组",{"2":{"332":1}}],["并按",{"2":{"263":3,"270":1}}],["并按用户的所属部门",{"2":{"73":1}}],["并按用户",{"2":{"73":1}}],["并按照字典项id分组",{"2":{"23":1}}],["并创建了一个根据用户id返回userdo集合的数据源容器",{"2":{"56":1}}],["并赋值给",{"2":{"44":1,"138":1}}],["并返回按",{"2":{"80":1,"277":1}}],["并返回按key分组的数据源对象",{"2":{"68":1}}],["并返回按客户组别",{"2":{"40":1}}],["并返回自定义的实现",{"2":{"25":1}}],["并配合键值解析器",{"2":{"38":1}}],["并在生产环境中广泛使用",{"2":{"330":1}}],["并在对应回调方法中添加逻辑",{"2":{"248":1}}],["并在标题中包含已修正",{"2":{"202":1}}],["并在这次填充中替换原本通过命名空间引用的的",{"2":{"33":1}}],["并在",{"2":{"30":1}}],["并驱动它在处理器链上流转",{"2":{"21":1}}],["并且成功将",{"2":{"248":1,"249":1,"253":1,"257":1,"261":1,"264":1,"274":1}}],["并且添加了较多新特性",{"2":{"220":1}}],["并且添加相关的标签",{"2":{"182":1}}],["并且调整了",{"2":{"216":1}}],["并且调整了一部分",{"2":{"215":1}}],["并且为维修付费",{"2":{"210":1}}],["并且赞赏这次良好的讨论经历的时候",{"2":{"209":1}}],["并且他没有把问题的责任推到别人头上",{"2":{"209":1}}],["并且未指出你有搞砸的地方",{"2":{"207":1}}],["并且一定要提到你认为哪一部分特别需要关注以及为什么",{"2":{"197":1}}],["并且通常对病患标记都有站得住脚的怀疑",{"2":{"206":1}}],["并且通常在讨论串外就看不到里面的内容",{"2":{"185":1}}],["并且通过缓存等机制避免运行时的额外判断逻辑",{"2":{"95":1}}],["并且在",{"2":{"167":1}}],["并且在将其通过操作门面注册后",{"2":{"52":1}}],["并且更加灵活",{"2":{"153":1}}],["并且更容易集中管理配置",{"2":{"35":1}}],["并且两者可以同时存在",{"2":{"139":1}}],["并且",{"2":{"78":1,"154":1,"207":1,"333":1}}],["并且需要按",{"2":{"71":2,"75":1}}],["并且实现",{"2":{"20":1}}],["并且标记为过期",{"2":{"19":1}}],["由热情的软件爱好者",{"2":{"210":1}}],["由于缺少依赖注入和自动装配功能的支持",{"2":{"304":1}}],["由于查询到所需的订单数据后",{"2":{"270":1}}],["由于查询出的数据需要根据用户指定的外键字段进行分组",{"2":{"171":1}}],["由于操作配置对象",{"2":{"246":1}}],["由于兼容性问题",{"2":{"237":1}}],["由于这样问是画蛇添足",{"2":{"199":1}}],["由于以上这点似乎让许多人觉得难以配合",{"2":{"192":1}}],["由于可以同时指定查询的条件字段和查询字段",{"2":{"167":1}}],["由于序列化过程中的填充也算是一种自动填充",{"2":{"160":1}}],["由于序列化为",{"2":{"159":1}}],["由于默认使用了",{"2":{"159":1}}],["由于",{"2":{"149":1,"154":1,"159":1}}],["由用户自行决定要如何返回数据源",{"2":{"80":1}}],["由",{"2":{"18":1}}],["由主线程进行继续执行任务",{"2":{"1":1}}],["随着时间推移",{"2":{"330":1}}],["随后",{"2":{"263":1}}],["随后将目标对象的属性映射到参数对象中",{"2":{"92":1}}],["随机设置一个性别编码",{"2":{"255":1}}],["随",{"2":{"18":1}}],["描述目标而不是过程",{"0":{"194":1}}],["描述问题的最终状态",{"2":{"202":1}}],["描述问题症状而非你的猜测",{"0":{"192":1}}],["描述问题发生的环境",{"2":{"188":1}}],["描述最近做过什么可能相关的硬件或软件变更",{"2":{"188":1}}],["描述在提问前为确定问题而采取的诊断步骤",{"2":{"188":1}}],["描述在提问前你是怎样去研究和理解这个问题的",{"2":{"188":1}}],["描述",{"2":{"18":1}}],["管理的",{"2":{"243":1}}],["管理的容器",{"2":{"227":1}}],["管理",{"2":{"56":1,"76":1,"82":2,"95":1,"307":1}}],["管理器对数据软引用",{"2":{"18":1}}],["管理器对数据弱引用",{"2":{"18":1}}],["管理器",{"2":{"18":1}}],["管理即可",{"2":{"8":1,"54":1,"121":1}}],["后处理器初始化后才加载",{"2":{"296":1}}],["后处理器",{"2":{"296":1}}],["后一个问题源自于",{"2":{"209":1}}],["后注解",{"2":{"159":1}}],["后续将会围绕其作出修改",{"2":{"268":1}}],["后续直接使用即可",{"2":{"157":1}}],["后续会介绍",{"2":{"85":1}}],["后者一般在与",{"2":{"144":1}}],["后面的映射字段会覆盖已有的值",{"2":{"139":1}}],["后",{"2":{"17":1,"86":1,"136":1,"147":1,"219":1,"220":1,"222":1,"223":1,"232":1,"234":1,"294":1,"332":1}}],["托管即可",{"2":{"17":1}}],["属性上",{"2":{"309":1,"317":1,"326":1}}],["属性对应的操作配置",{"2":{"287":1}}],["属性对应的字段映射配置",{"2":{"84":1}}],["属性可以指定本次填充操作的执行器",{"2":{"152":1}}],["属性可以指定操作值",{"2":{"126":1}}],["属性可以设置本次执行的操作组",{"2":{"151":1}}],["属性默认支持链式操作符",{"2":{"149":1}}],["属性默认支持使用",{"2":{"88":1}}],["属性简化配置",{"2":{"132":1,"133":1,"135":1,"136":1}}],["属性到键",{"0":{"136":1},"2":{"131":1}}],["属性到属性",{"0":{"132":1},"1":{"133":1,"134":1},"2":{"131":1}}],["属性来简化配置",{"2":{"131":1}}],["属性来指定仅执行",{"2":{"124":1}}],["属性来指定分组",{"2":{"123":1}}],["属性来指定要使用的处理器",{"2":{"107":1}}],["属性配置将决定它们之间将如何映射字段值",{"2":{"131":1}}],["属性配合使用",{"2":{"49":1}}],["属性设置为",{"2":{"112":1}}],["属性不为null时才应用操作",{"2":{"118":1}}],["属性不为空才应用操作",{"2":{"118":1}}],["属性不为空时才应用操作",{"2":{"110":1}}],["属性不是必须的",{"2":{"89":1}}],["属性为",{"2":{"110":1,"116":1,"117":4}}],["属性为空时",{"2":{"252":1}}],["属性为空",{"2":{"94":2}}],["属性进行分组",{"2":{"170":1,"171":1}}],["属性进行指定",{"2":{"107":1}}],["属性进行赋值",{"2":{"96":1,"141":1}}],["属性的填充",{"2":{"252":1}}],["属性的类型",{"2":{"106":2}}],["属性的递归填充",{"2":{"10":1}}],["属性显式指定需要拆卸的字段",{"2":{"104":1}}],["属性显式的进行方法绑定",{"2":{"71":1}}],["属性里引用一些配置文件属性",{"2":{"99":1}}],["属性时",{"2":{"96":1,"141":1,"219":1,"220":1}}],["属性映射",{"2":{"281":1}}],["属性映射应当支持使用",{"2":{"221":1}}],["属性映射模板",{"0":{"139":1}}],["属性映射到目标对象的",{"2":{"96":1,"141":1}}],["属性映射策略",{"0":{"96":1,"141":1},"1":{"97":1,"98":1,"142":1,"143":1}}],["属性映射为",{"2":{"44":1,"138":1}}],["属性值不为空",{"2":{"287":1}}],["属性值映射过来",{"2":{"97":1,"142":1}}],["属性值为",{"2":{"97":1,"142":1}}],["属性值",{"2":{"94":1,"138":1}}],["属性值中指定分隔符",{"2":{"93":1}}],["属性值作为key",{"2":{"48":1}}],["属性名2",{"2":{"92":1}}],["属性名1",{"2":{"92":1}}],["属性名和属性值",{"2":{"49":1}}],["属性指向的数据源容器",{"2":{"84":1}}],["属性指向的属性",{"2":{"84":1}}],["属性指定装配处理器为一对多装配处理器",{"2":{"290":1,"291":1,"292":1}}],["属性指定操作所属的组",{"2":{"122":1}}],["属性指定",{"2":{"77":1,"149":1,"265":1}}],["属性指定要使用的分隔符",{"2":{"45":1}}],["属性指定要使用的管理器",{"2":{"17":1}}],["属性",{"2":{"71":1,"73":1,"94":2,"106":2,"123":4,"126":1,"130":1,"131":3,"138":1,"140":1,"148":2,"150":1,"159":1,"226":1,"287":1,"332":1}}],["属性中的嵌套对象",{"2":{"140":1}}],["属性中使用了",{"2":{"132":1}}],["属性中",{"2":{"55":1}}],["属性中指定要使用的处理器",{"2":{"39":1}}],["属性或方法上指定触发条件时",{"2":{"111":1}}],["属性或",{"2":{"39":1}}],["属性并注册你的管理器",{"2":{"17":1}}],["扩展的引入方式",{"2":{"216":1}}],["扩展中",{"2":{"53":1}}],["扩展",{"2":{"16":1}}],["扩展插件",{"2":{"16":1}}],["具体参照",{"2":{"301":1}}],["具体参见上文的安装步骤",{"2":{"159":1}}],["具体参见",{"2":{"150":1,"151":1,"277":1,"288":1,"290":1,"291":1,"292":1,"293":1,"300":1,"303":1}}],["具体参见后文的",{"2":{"285":1}}],["具体参见后文",{"2":{"134":1,"138":1,"140":1,"281":1,"284":1}}],["具体请参见后文",{"2":{"285":1}}],["具体配置可以参见",{"2":{"160":1}}],["具体配置如下",{"2":{"6":1}}],["具体而言",{"2":{"138":1}}],["具体内容参见",{"2":{"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"225":1,"226":1,"227":1,"230":1,"231":1,"234":1}}],["具体内容可以参见",{"2":{"255":3,"259":3}}],["具体内容可以参考",{"2":{"84":1}}],["具体内容可参见",{"2":{"92":1,"113":1,"248":1}}],["具体内容请参见文档",{"2":{"36":1}}],["具体可参见后文",{"2":{"56":1,"75":1}}],["具体可参见",{"2":{"42":1,"45":1,"74":1,"77":1,"86":1,"89":1,"130":2,"252":2,"276":2,"308":1,"316":1,"325":1}}],["具体可以参见",{"2":{"16":1,"80":1}}],["具体代码如下",{"2":{"20":1}}],["具体来说",{"2":{"20":1}}],["触发操作",{"0":{"144":1,"327":1},"1":{"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1},"2":{"284":1}}],["触发填充操作",{"2":{"130":1,"245":1,"252":1,"255":1,"259":1,"264":1,"303":1}}],["触发填充",{"0":{"310":1,"318":1},"1":{"311":1,"312":1,"319":1,"320":1},"2":{"35":1,"36":1}}],["触发",{"2":{"16":1,"284":1}}],["实体类与数据结构",{"0":{"269":1}}],["实际场景中需要的可能数据远远不止这些",{"2":{"270":1}}],["实际场景中",{"2":{"43":1}}],["实际上判断条件是",{"2":{"117":1}}],["实际上就是你声明的",{"2":{"67":1}}],["实际上",{"2":{"24":1}}],["实际上总共需要完成",{"2":{"6":1}}],["实例中",{"2":{"156":1,"157":1}}],["实例",{"2":{"20":1}}],["实现代码",{"0":{"270":1}}],["实现的缓存管理器",{"2":{"231":1}}],["实现的缓存对象",{"2":{"16":1}}],["实现的",{"2":{"148":1}}],["实现注解解析器",{"2":{"121":1}}],["实现自定义的拆卸操作处理器",{"2":{"107":1}}],["实现自己的条件逻辑",{"2":{"121":1}}],["实现自己的增删改查方法",{"2":{"20":1}}],["实现自己的自定义缓存对象",{"2":{"20":1}}],["实现类同样会获得此方法",{"2":{"71":1}}],["实现类似的功能",{"2":{"24":1}}],["实现从而扩展这部分功能",{"2":{"70":1}}],["实现了扫描和适配的功能",{"2":{"70":1}}],["实现对应的注解处理器",{"2":{"23":1}}],["实现抽象方法",{"2":{"20":1}}],["实现",{"2":{"16":1,"18":2,"21":1,"25":2,"26":2,"33":1,"37":1,"92":1,"93":1,"106":1,"134":1,"146":1,"284":1,"285":1,"300":1}}],["workaround",{"2":{"211":1}}],["word",{"2":{"187":1}}],["web",{"2":{"204":1,"302":1}}],["weakconcurrentmap",{"2":{"16":1,"298":1}}],["willard",{"2":{"192":1}}],["windows",{"2":{"181":1,"187":1,"208":7}}],["withdefaultconfiguration",{"2":{"52":1,"54":1,"65":2,"68":1,"76":1,"83":1,"324":1,"328":1}}],["where",{"2":{"168":1,"169":1,"170":2,"171":2,"172":1,"173":1}}],["when",{"2":{"86":1,"118":1,"247":1}}],["whendestroyed",{"2":{"8":1}}],["whencreated",{"2":{"8":1}}],["whenregistered",{"2":{"8":1}}],["writevalueasstring",{"2":{"159":1}}],["wrapifnecessary",{"2":{"146":1}}],["warning",{"2":{"24":1,"25":1,"29":1,"71":1,"80":1,"82":1,"105":1,"138":1,"140":1,"159":2,"172":1,"177":1,"237":1}}],["是如何通过",{"2":{"329":1}}],["是粒度最细的",{"2":{"284":1}}],["是正当的",{"2":{"211":1}}],["是什么",{"2":{"205":1}}],["是什么被影响了",{"2":{"185":1}}],["是你的朋友",{"2":{"204":1}}],["是非常重要的",{"2":{"202":1}}],["是或否",{"2":{"199":1}}],["是吧",{"2":{"190":1}}],["是针对某牌显卡芯片组",{"2":{"185":1}}],["是问服务器和网管相关的问题",{"2":{"182":1}}],["是问写程序有关的问题",{"2":{"182":1}}],["是问一些通用的电脑问题",{"2":{"182":1}}],["是",{"2":{"145":1}}],["是一个用于创建容器的静态工厂",{"2":{"69":1}}],["是用于获取数据源容器的组件",{"2":{"53":1}}],["是用于感知并干涉容器生命周期的特色组件",{"2":{"8":1}}],["是否按你的配置正确的将数据源对象的属性值映射到待填充的对象上",{"2":{"287":1}}],["是否按顺序执行",{"2":{"283":1}}],["是否异步",{"2":{"283":1}}],["是否忽略",{"0":{"247":1}}],["是否支持",{"2":{"239":1}}],["是否支持链式操作符",{"0":{"239":1}}],["是否支持对",{"2":{"238":1}}],["是否支持处理map对象",{"0":{"238":1}}],["是否启用返回值自动填充",{"2":{"245":1}}],["是否启用参数自动填充",{"2":{"245":1}}],["是否启用字节码反射",{"0":{"237":1}}],["是否启用缓存配置",{"2":{"79":1}}],["是否不调用方法而直接返回空集合",{"2":{"78":1}}],["是否跳过查询直接返回空集合",{"2":{"72":1}}],["是否过滤入参集合中的",{"2":{"72":1}}],["是否遵循枚举类上的",{"2":{"61":1}}],["是否遵循常量类上的",{"2":{"51":1}}],["是否需要翻转键值",{"2":{"49":1}}],["是否只加载被",{"2":{"60":1,"242":1}}],["是否只引用被",{"2":{"49":1}}],["是否只引用带有",{"2":{"49":1}}],["是否只保存公共变量",{"2":{"49":1}}],["是否只保存带有",{"2":{"49":1}}],["是否默认生效",{"2":{"25":1}}],["是整个框架的基石",{"2":{"25":1}}],["是可重复注解",{"2":{"24":1}}],["是基于",{"2":{"16":2}}],["默认的表达式引擎是",{"2":{"150":1}}],["默认的四种实现调用顺序如下",{"2":{"37":1}}],["默认会将",{"2":{"117":1}}],["默认内置策略的名称皆已被声明为",{"2":{"97":1}}],["默认取",{"2":{"94":1}}],["默认",{"2":{"73":1}}],["默认值",{"2":{"49":1,"51":1,"59":1,"61":1,"72":1,"79":1}}],["默认为",{"2":{"46":1,"237":1,"238":1,"239":1,"243":1}}],["默认情况下排除该属性",{"2":{"49":1}}],["默认情况下",{"2":{"45":1,"86":1,"117":1,"119":1,"169":1,"293":1}}],["默认支持自动方法返回值与方法入参",{"2":{"245":1}}],["默认支持",{"2":{"44":2,"150":1}}],["默认支持的操作过滤",{"2":{"23":1}}],["默认将会使用一对一装配处理器",{"2":{"39":1}}],["默认提供了三种策略",{"2":{"97":1,"142":1}}],["默认提供了三种处理器",{"2":{"38":1}}],["默认提供了",{"2":{"54":1,"121":1}}],["默认提供了以下几个实现",{"2":{"25":1}}],["默认提供了下述管理器实现",{"2":{"18":1}}],["默认提供了两种类型的缓存管理器",{"2":{"16":1}}],["默认使用",{"2":{"16":1,"116":1}}],["默认已经提供了一个异步执行器",{"2":{"0":1}}],["gitee",{"2":{"330":1}}],["g2",{"2":{"250":1}}],["g1",{"2":{"250":5,"251":2}}],["grommicking",{"2":{"209":2}}],["grouped",{"2":{"275":2}}],["groupid",{"2":{"214":1}}],["groupid>junit",{"2":{"306":1}}],["groupid>org",{"2":{"175":1,"306":3,"315":5,"323":1}}],["groupid>com",{"2":{"155":2,"162":1}}],["groupid>cn",{"2":{"155":1,"162":1,"175":1,"306":1,"315":1,"323":1}}],["groupid>",{"2":{"155":3,"162":2,"175":2,"306":5,"315":6,"323":2}}],["group",{"2":{"183":1,"275":2}}],["groupby",{"2":{"40":1}}],["groups",{"2":{"23":3,"122":1,"123":6,"124":3,"250":3,"251":2}}],["google",{"2":{"179":4,"181":1,"182":3,"204":1,"208":1,"209":1,"211":1}}],["global",{"2":{"176":1}}],["globalconfiguration",{"2":{"23":2}}],["generalrediscachemanager",{"2":{"176":3}}],["gendermap",{"2":{"331":2}}],["genderenum>",{"2":{"331":1}}],["genderenum",{"2":{"280":3,"331":5,"332":1}}],["gendername=",{"2":{"255":2}}],["gendername",{"2":{"248":2,"254":2,"255":3,"256":3,"332":3}}],["gendercode=0",{"2":{"255":1}}],["gendercode=1",{"2":{"255":1}}],["gendercode",{"2":{"248":1,"254":3,"255":4,"256":1,"331":2,"332":1}}],["gender",{"2":{"51":2,"61":4,"136":10,"137":3,"254":3,"255":4,"256":5,"331":2}}],["getgendercode",{"2":{"331":1}}],["getgroupid",{"2":{"40":1}}],["getitems",{"2":{"270":2}}],["getid",{"2":{"9":1,"23":1,"33":1,"56":1,"80":1,"87":1,"94":1,"263":6,"270":4,"275":6,"277":1}}],["gettheassociatedsource",{"2":{"287":1}}],["gettype",{"2":{"270":2,"275":2}}],["getter",{"2":{"9":1,"13":1,"25":1,"51":1,"58":1,"59":1,"61":1,"87":3,"88":1,"103":1,"143":1,"159":1,"177":1,"219":1,"220":1,"254":1,"256":1,"269":2,"275":2,"276":1,"287":1,"306":1,"309":1,"313":1,"315":1,"317":1,"321":1,"323":1,"326":1,"328":1}}],["getordertype",{"2":{"270":1}}],["getparentids",{"2":{"263":1}}],["getparentid",{"2":{"263":3}}],["getpropertyoperator",{"2":{"25":2}}],["getmapping",{"2":{"159":1}}],["getemployees",{"2":{"103":1}}],["getkey",{"2":{"94":1}}],["getusernamebyid",{"2":{"73":1}}],["getuserid",{"2":{"33":1,"94":1}}],["getname",{"2":{"72":1,"263":3,"270":3,"275":2,"280":1,"331":1}}],["getnamespace",{"2":{"15":1,"56":1,"82":1}}],["getannotation",{"2":{"23":3,"67":1}}],["getsourcesfromcontainer",{"2":{"287":1}}],["getstudents",{"2":{"255":2}}],["getstandardannotation",{"2":{"23":1}}],["getsimplename",{"2":{"1":1}}],["getcustomerid",{"2":{"270":2}}],["getcontainer",{"2":{"177":2,"277":1}}],["getconditiondescriptor",{"2":{"121":1}}],["getcode",{"2":{"58":1,"80":1,"270":1,"280":1,"331":1}}],["getcache",{"2":{"19":1}}],["getcachemanager",{"2":{"15":1,"177":1,"178":1}}],["getclass",{"2":{"1":1}}],["get",{"2":{"9":1,"13":1,"20":2,"56":1,"67":1,"82":1,"177":3,"263":2,"270":3,"275":4,"280":1,"294":1,"331":1}}],["getbeanoperationexecutor",{"2":{"283":1}}],["getbeanoperationexecutormap",{"2":{"1":1}}],["getbeanoperationsparser",{"2":{"281":1,"283":1}}],["getbean",{"2":{"4":1,"8":1,"20":1,"23":1,"30":1,"37":1,"67":1,"121":1,"128":1,"130":1,"143":1,"145":1,"166":1,"252":1,"255":1}}],["getfoos",{"2":{"312":2,"313":2,"320":2,"321":2}}],["getfoolist",{"2":{"124":1,"147":3,"148":2}}],["getfoo",{"2":{"3":2,"150":1,"151":1,"152":1,"159":1}}],["getruntime",{"2":{"1":2}}],["gt",{"2":{"44":1,"73":4,"126":2,"138":1,"176":1,"187":2,"197":2}}],["guavacontainercache",{"2":{"18":1}}],["guavacachemanager",{"2":{"14":1,"16":1,"17":1,"18":2,"19":2}}],["guava",{"0":{"298":1},"2":{"16":3,"18":2,"214":1,"215":1,"233":1,"234":1,"298":1}}],["gc",{"2":{"16":1,"18":1}}],["use",{"2":{"222":1}}],["useraddress",{"2":{"258":1,"259":2,"260":2}}],["userage",{"2":{"167":1,"169":2,"171":2,"172":1,"258":1,"259":2,"260":2}}],["userinfo>",{"2":{"258":1,"259":1}}],["userinfo",{"2":{"258":3,"259":4,"260":2}}],["userid",{"2":{"94":4,"159":1,"160":1,"258":2,"259":1,"260":1}}],["userdao",{"2":{"258":3,"259":2,"260":1}}],["userdo",{"2":{"56":1}}],["userdo>",{"2":{"56":2}}],["userkey",{"2":{"94":2}}],["username",{"2":{"73":6,"159":1,"160":1,"167":1,"169":2,"170":2,"171":3,"258":1,"259":2,"260":2,"329":1}}],["usercontainer",{"2":{"56":2}}],["uservo>",{"2":{"149":1,"266":1}}],["uservo>>>",{"2":{"149":1,"266":1}}],["uservo>>",{"2":{"77":2,"149":2,"265":2}}],["uservo",{"2":{"55":2,"77":2,"89":1,"123":2,"149":3,"265":1,"266":1}}],["userservice",{"2":{"33":1,"56":3,"149":3,"258":1,"259":2,"265":2,"266":1}}],["users",{"2":{"33":5,"56":2}}],["user>>",{"2":{"73":1}}],["user>",{"2":{"33":3,"73":3,"258":1,"259":1}}],["user",{"2":{"10":1,"27":1,"29":1,"33":10,"55":3,"56":1,"73":2,"82":1,"89":4,"94":1,"110":4,"111":2,"114":1,"116":2,"117":4,"118":2,"123":3,"159":5,"167":2,"169":2,"170":1,"171":3,"172":6,"182":1,"183":1,"258":3,"259":7,"260":4}}],["unable",{"2":{"222":1}}],["unaryoperator",{"2":{"67":1}}],["unix",{"2":{"181":1,"212":2}}],["unit",{"2":{"14":2}}],["u",{"2":{"33":2}}],["除非结论真的很有技术含量",{"2":{"202":1}}],["除非他个人觉得问题",{"2":{"202":1}}],["除非你想得到是或否类型的回答",{"2":{"199":1}}],["除非你能提供解决问题的源代码补丁",{"2":{"190":1}}],["除非你非常",{"2":{"190":1}}],["除非你只是对性而不是对答案感兴趣",{"2":{"187":1}}],["除非你只想在该讨论串当前活跃的人群中提问",{"2":{"185":1}}],["除非你认为回复的信息可能比较敏感",{"2":{"186":1}}],["除此之外不需要进行额外的配置",{"2":{"159":1}}],["除了基于",{"2":{"255":1,"259":1}}],["除了基于分组和条件填充外",{"2":{"252":1}}],["除了有礼貌和有内涵以外",{"2":{"202":1}}],["除了普通枚举外",{"2":{"59":1}}],["除了可以将",{"2":{"33":1}}],["除上述情况外",{"2":{"36":1}}],["除直接移除缓存外",{"2":{"19":1}}],["除通过上述方式自动配置缓存外",{"2":{"15":1}}],["除注解外",{"2":{"14":1}}],["除针对全局容器的生命周期处理器外",{"2":{"9":1}}],["6",{"0":{"76":1,"139":1,"152":1,"227":1,"228":1,"229":1,"284":1,"313":1,"328":1},"2":{"13":1,"51":1,"64":1,"79":1,"86":1,"108":1,"179":1,"185":3,"209":1,"263":1,"315":1}}],["600",{"2":{"14":1}}],["60",{"2":{"6":2,"14":1}}],["jeff",{"2":{"206":1}}],["jetcache",{"2":{"13":1}}],["j",{"2":{"179":1}}],["js",{"2":{"140":1}}],["json",{"2":{"154":1,"159":6,"222":1,"269":1}}],["jsonnodepropertyoperator",{"2":{"158":2}}],["jsonnodeautooperatemodule",{"2":{"157":4,"158":3}}],["jsonnode",{"2":{"90":1,"154":1,"159":2}}],["jsonobject",{"2":{"27":1,"217":1}}],["join",{"2":{"46":1,"143":1}}],["jacksonjsonnodeassistant",{"2":{"158":1}}],["jackson",{"0":{"154":1},"1":{"155":1,"156":1,"157":1,"158":1,"159":1,"160":1},"2":{"38":2,"90":2,"154":2,"155":5,"159":1,"222":1}}],["javaoperateteamplte",{"2":{"252":1}}],["java8",{"2":{"237":1}}],["javamybatisplusquerycontainerprovider",{"2":{"166":1}}],["javamap",{"2":{"69":1}}],["javafoo",{"2":{"159":1}}],["javasimplecrane4jglobalconfiguration",{"2":{"98":1}}],["javacachemanager",{"2":{"177":1,"178":1}}],["javacontainer",{"2":{"48":1,"58":1,"80":1,"177":1}}],["javacrane4jtemplate",{"2":{"20":1,"30":1,"37":1}}],["javapropertymappingstrategy",{"2":{"143":1}}],["javaprivate",{"2":{"43":1,"66":1,"67":1}}],["javapublic",{"2":{"20":1,"24":2,"39":1,"41":1,"44":2,"55":2,"63":1,"86":1,"87":1,"89":1,"97":1,"99":2,"102":1,"103":1,"105":1,"106":1,"107":1,"110":1,"112":1,"113":2,"116":1,"117":2,"121":1,"123":2,"126":1,"130":1,"132":2,"133":2,"135":2,"136":2,"137":1,"138":2,"139":2,"140":1,"142":1,"143":2,"147":1,"168":1,"172":1,"173":1,"249":1,"250":1,"251":1,"252":1,"262":1,"263":1,"270":1,"281":1,"328":1,"331":1}}],["javabean",{"2":{"38":1,"94":1,"217":1}}],["javadecoratedpropertyoperator",{"2":{"25":1}}],["javadictannotationhandler",{"2":{"23":1}}],["javalist",{"2":{"4":1,"31":1,"33":1,"145":1}}],["java",{"2":{"1":1,"3":2,"5":1,"6":2,"8":1,"9":1,"10":1,"13":3,"15":1,"17":1,"18":1,"19":2,"23":3,"24":1,"25":1,"27":2,"29":1,"30":2,"32":1,"33":3,"35":3,"36":1,"40":1,"42":1,"45":1,"46":1,"48":1,"49":1,"50":1,"51":1,"52":1,"54":1,"56":1,"58":1,"59":1,"60":1,"61":1,"65":1,"67":1,"68":2,"71":2,"73":1,"74":1,"75":1,"76":1,"77":2,"79":2,"80":1,"82":2,"83":1,"88":1,"90":1,"92":1,"93":1,"94":1,"104":1,"110":2,"111":2,"114":1,"117":1,"118":1,"119":2,"120":1,"121":2,"124":2,"128":1,"129":1,"130":2,"139":1,"143":1,"146":1,"147":2,"148":1,"149":3,"150":1,"151":1,"152":1,"153":1,"157":1,"158":1,"159":2,"160":1,"167":1,"169":1,"170":1,"171":1,"172":1,"176":2,"177":1,"248":1,"254":2,"255":2,"256":2,"258":3,"259":3,"260":1,"262":1,"263":1,"265":2,"266":1,"269":1,"271":2,"272":2,"273":2,"274":1,"275":2,"276":1,"277":1,"279":2,"280":3,"281":1,"283":1,"285":2,"307":2,"308":1,"309":1,"311":1,"312":1,"313":1,"316":1,"317":1,"319":1,"320":1,"321":1,"324":1,"325":1,"326":1,"327":1,"332":1}}],["javathreadpooltaskexecutor",{"2":{"1":1}}],["jdk9+",{"0":{"299":1}}],["jdk9",{"2":{"25":1}}],["jvm",{"2":{"16":1,"18":2}}],["或其他内容",{"2":{"334":1}}],["或更高版本解决这个问题",{"2":{"302":1}}],["或拆卸操作",{"2":{"282":1}}],["或通过指定分组来选择性的跳过一些操作",{"2":{"281":1}}],["或通过动态解析返回值类型来获取操作配置",{"2":{"153":1}}],["或是",{"2":{"211":1}}],["或是其他企图引起关注的标题",{"2":{"200":1}}],["或是其他等等",{"2":{"196":1}}],["或谢谢你的关照",{"2":{"201":1}}],["或只是出现在",{"2":{"185":1}}],["或根据你在参数上的操作配置对入参进行填充",{"2":{"153":1}}],["或执行器",{"2":{"144":1}}],["或单个对象",{"2":{"101":1}}],["或在回调方法中获取",{"2":{"89":1}}],["或一些复杂的自定义条件确认要从数据源中获取哪些数据",{"2":{"80":1}}],["或配置文件的方式配置缓存时",{"2":{"79":1}}],["或任意类中的静态方法作为数据源容器",{"2":{"79":1}}],["或基础数据类型及其包装类",{"2":{"225":1}}],["或基础数据类型",{"2":{"73":1}}],["或静态方法",{"2":{"71":1}}],["或者也可以叫做数据组装或者数据聚合",{"2":{"331":1}}],["或者直接查看",{"2":{"304":1}}],["或者有其他的顾虑",{"2":{"263":1}}],["或者有其他拆分规则",{"2":{"138":1}}],["或者类的全限定名",{"2":{"260":1}}],["或者jsonobject",{"2":{"238":1}}],["或者与",{"2":{"208":1}}],["或者只是在他的想像中你搞砸了",{"2":{"207":1}}],["或者只是其中的",{"2":{"185":1}}],["或者换种方式表达感激",{"2":{"201":1}}],["或者这有答案吗",{"2":{"199":1}}],["或者提供回归测试来表明前一版本中行为不正确",{"2":{"190":1}}],["或者提供一种更灵活的途径去接入第三方框架提供的数据源",{"2":{"53":1}}],["或者其它类似的",{"2":{"187":1}}],["或者你所用的",{"2":{"183":1}}],["或者你也可以在配置类中注册",{"2":{"82":1}}],["或者你也可以实现",{"2":{"54":1}}],["或者许可书以弄清楚你的问题是否切题",{"2":{"181":1}}],["或者压根别发",{"2":{"181":1}}],["或者根本得不到任何答案",{"2":{"179":1}}],["或者找到太多答案",{"2":{"179":1}}],["或者任意以",{"2":{"176":1}}],["或者在方法上添加",{"2":{"159":1}}],["或者在你的数据源",{"2":{"118":1}}],["或者当数据源对象本身就是某个字典值或枚举值的情况",{"2":{"135":1}}],["或者顺序不同的操作由于引用了同个数据源容器而被自动合并等等",{"2":{"125":1}}],["或者使用",{"2":{"99":1}}],["或者基于操作处理器",{"2":{"91":1}}],["或者容器中的",{"2":{"79":1}}],["或者干脆项目没有使用",{"2":{"76":1}}],["或者字段加解密",{"2":{"64":1}}],["或者对链式操作符的支持等",{"2":{"25":1}}],["或者",{"2":{"25":1,"48":1,"58":1,"80":1,"124":1,"130":1,"147":1,"185":1,"208":2,"211":1,"219":1,"220":1,"221":1,"248":1,"278":1,"307":1}}],["或",{"2":{"13":1,"33":1,"56":1,"80":1,"84":1,"107":2,"113":1,"122":1,"150":1,"151":2,"181":1,"184":1,"187":1,"208":1,"217":1,"290":1,"291":1,"292":1,"294":1,"297":1}}],["此处已经做了简化",{"2":{"270":1}}],["此过程中如果更有经验的人注意到不完整或者不当之处",{"2":{"195":1}}],["此扩展插件基于",{"2":{"156":1}}],["此后通过不同的方式触发填充即可",{"2":{"255":1}}],["此后执行时仅当条件满足时才会应用该操作",{"2":{"251":1}}],["此后当项目启动时",{"2":{"155":1,"162":1}}],["此后",{"2":{"92":1}}],["此后你可以通过它的",{"2":{"17":1}}],["此类容器称为",{"2":{"80":1}}],["此外",{"2":{"13":2,"16":1,"17":1,"35":1,"51":1,"56":1,"61":1,"79":1,"83":2,"88":2,"95":2,"101":1,"131":1,"145":1,"252":1,"285":1,"298":1}}],["此时将会以",{"2":{"177":1}}],["此时则需要显式的指定要绑定的参数名",{"2":{"147":1}}],["此时会触发自动填充",{"2":{"146":1}}],["此时绑定到同一操作上的条件将会被合并为一个组合条件",{"2":{"113":1}}],["此时你需要使用",{"2":{"104":1}}],["此时你需要显式的指定该操作要绑定的",{"2":{"88":1}}],["此时你可以不必再加一级",{"2":{"13":1}}],["此时与上文创建的缓存为同一个对象",{"2":{"19":1}}],["此时实际上提交到线程池中的任务就是三个",{"2":{"6":1}}],["此时",{"2":{"6":1,"19":2,"30":1,"38":1,"71":1,"80":2,"106":1,"148":1,"149":1,"208":1,"248":1,"262":1,"265":1}}],["即指",{"2":{"281":1}}],["即所有的配置集成在一个注解中",{"2":{"256":1}}],["即以上版本",{"2":{"247":1}}],["即便他们能够处理",{"2":{"187":1}}],["即懒加载",{"2":{"164":1}}],["即为当前项目最新版本",{"2":{"305":1,"314":1,"322":1}}],["即为原本的字符串集合",{"2":{"143":1}}],["即为要应用缓存的数据源容器的",{"2":{"14":1}}],["即离",{"2":{"139":1}}],["即仅当目标对象实现了",{"2":{"121":1}}],["即上文的",{"2":{"86":1}}],["即使数据源相同也需要重复配置",{"2":{"285":1}}],["即使两个不同的操作都来自相同的数据源",{"2":{"263":1}}],["即使使用自动填充",{"2":{"252":1}}],["即使",{"2":{"247":1}}],["即使命中了缓存但是依然会查",{"2":{"233":1,"234":1}}],["即使缓存全部命中依然会调用查询方法",{"2":{"233":1,"234":1}}],["即使只是建议个",{"2":{"211":1}}],["即使他们可能从没亲自写过任何软件",{"2":{"210":1}}],["即使他们认为毛茸茸的小海豹很重要",{"2":{"200":1}}],["即使没什么秘密",{"2":{"184":1}}],["即使没有",{"2":{"181":1}}],["即使没有结果",{"2":{"179":1}}],["即使是在这种情况下",{"2":{"184":1}}],["即使你要为这些协助付费",{"2":{"210":1}}],["即使你没有搞砸",{"2":{"207":1}}],["即使你很急也不要在标题写紧急",{"0":{"200":1}}],["即使你私下非常确信已经发现一个真正的",{"2":{"190":1}}],["即使你是对的",{"2":{"190":1}}],["即使你确信他能最好地回答你的问题",{"2":{"184":1}}],["即使你的",{"2":{"86":1}}],["即使它只是表明了搜索引擎不能提供哪些帮助",{"2":{"179":1}}],["即使用",{"2":{"130":1}}],["即使用属性名作为value",{"2":{"48":1}}],["即通过",{"2":{"84":1}}],["即",{"2":{"84":1,"117":1}}],["即结果总是与",{"2":{"72":1}}],["即可引用该数据源容器",{"2":{"308":1,"316":1,"325":1}}],["即可",{"2":{"290":1,"291":1,"292":1,"306":1,"315":1,"334":1}}],["即可以通过xx",{"2":{"149":1}}],["即可在方法返回时对返回值进行自动填充",{"2":{"147":1}}],["即可在项目启动后自动注册",{"2":{"56":1}}],["即可确认",{"2":{"71":1}}],["即可自动注册",{"2":{"37":1}}],["即从数据源容器中查询数据时",{"2":{"40":1}}],["即一个",{"2":{"39":1,"259":1,"260":1}}],["即若",{"2":{"24":1}}],["即第一次查询",{"2":{"11":1}}],["即总共有",{"2":{"6":1}}],["级别的日志输出执行时间",{"2":{"219":1,"220":1}}],["级别的配置缓存",{"2":{"217":1}}],["级别",{"2":{"11":1}}],["负责管理缓存对象",{"2":{"11":1}}],["缓存时",{"2":{"233":1,"234":1}}],["缓存功能分离至独立的",{"2":{"218":1,"220":1}}],["缓存功能由缓存管理器",{"2":{"11":1}}],["缓存配置同样集成到了",{"2":{"79":1}}],["缓存将会被清空",{"2":{"19":1}}],["缓存会根据你设置的过期时间自动过期",{"2":{"19":1}}],["缓存的粒度都是",{"2":{"11":1}}],["缓存管理器",{"0":{"16":1},"1":{"17":1,"18":1,"19":1},"2":{"11":1,"16":1,"176":1}}],["缓存",{"0":{"11":1,"75":1},"1":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1},"2":{"16":1,"25":1,"56":1,"75":1,"176":1,"225":1,"333":1}}],["尊敬的",{"2":{"10":1}}],["对",{"2":{"259":1}}],["对枚举类型数据源提供更好的支持",{"2":{"217":1}}],["对那些坦诚犯错之人没有必要当众羞辱",{"2":{"211":1}}],["对初犯者私下回复",{"2":{"211":1}}],["对像是",{"2":{"210":1}}],["对他而言",{"2":{"207":1}}],["对真正的冒犯者狠狠地打击",{"2":{"206":1}}],["对或错",{"2":{"199":1}}],["对一些特殊的文件不要设置固定宽度",{"2":{"187":1}}],["对入参进行自动填充",{"2":{"147":1}}],["对入参进行填充",{"0":{"31":1}}],["对最终要映射的属性值做一些调整",{"2":{"143":1}}],["对用户的实现进行包装",{"2":{"140":1}}],["对员工对象进行填充",{"2":{"130":1}}],["对于有深度的问题",{"2":{"202":1}}],["对于讨论串",{"2":{"185":1}}],["对于集合或数组中的每个数据源对象",{"2":{"138":1}}],["对于填充",{"2":{"102":1}}],["对于所有的数据源容器来说",{"2":{"11":1}}],["对结果分组",{"0":{"73":1,"173":1}}],["对应注解为",{"2":{"285":1}}],["对应到代码中有点像",{"2":{"131":1}}],["对应",{"2":{"80":1}}],["对应的",{"2":{"176":1}}],["对应的属性值不为",{"2":{"97":1,"142":1}}],["对应的属性值是不是",{"2":{"97":1,"142":1}}],["对应的目标属性为",{"2":{"97":1,"142":1}}],["对应的目标属性",{"2":{"97":2,"142":2}}],["对应的接受参数对象的查询方法",{"2":{"74":1}}],["对应的参数对象",{"2":{"74":1}}],["对应的值进行填充",{"2":{"29":1}}],["对应多个",{"2":{"73":1}}],["对应多个值比如一个",{"2":{"73":1}}],["对应多个数据源对象",{"2":{"43":1}}],["对应操作类型",{"2":{"22":1}}],["对接",{"2":{"26":2}}],["对属性值做一些处理",{"2":{"10":1}}],["对象为",{"2":{"275":1}}],["对象填充订单类型",{"2":{"270":1}}],["对象对应一个",{"2":{"259":1,"260":1}}],["对象进行属性映射",{"2":{"238":1}}],["对象时自动填充相关数据",{"2":{"159":1}}],["对象数组或对象的",{"2":{"147":1}}],["对象集合的",{"2":{"138":1}}],["对象到键",{"0":{"137":1}}],["对象到属性",{"0":{"135":1},"2":{"131":1}}],["对象赋值给studentvo",{"2":{"135":1}}],["对象后",{"2":{"135":1,"140":1}}],["对象都提取出来",{"2":{"130":1}}],["对象中",{"2":{"140":1}}],["对象中的性别编码",{"2":{"331":1}}],["对象中的属性",{"2":{"159":1}}],["对象中的",{"2":{"130":1}}],["对象中还存在需要拆卸的嵌套对象",{"2":{"102":1}}],["对象取出并展开",{"2":{"102":1}}],["对象之前",{"2":{"102":1}}],["对象的",{"2":{"173":1}}],["对象的回调接口",{"2":{"80":1}}],["对象的支持",{"2":{"25":1}}],["对象分组的数据集",{"2":{"80":1}}],["对象作为",{"2":{"80":1}}],["对象容器",{"0":{"80":1},"2":{"80":1,"275":1}}],["对象内省",{"0":{"62":1,"63":1},"1":{"63":1,"64":1,"65":1,"66":1,"67":1}}],["对象回调接口",{"0":{"10":1},"2":{"113":1}}],["对象",{"2":{"6":2,"27":1,"29":1,"31":1,"44":1,"138":1,"168":1,"217":1,"258":3,"259":1,"260":1,"274":1,"329":2}}],["则是针对它的一套完善的解决方案",{"2":{"333":1}}],["则说明该操作配置未能生效",{"2":{"287":1}}],["则在第一步需要先配置数据源",{"2":{"272":1}}],["则此时我们可以有",{"2":{"266":1}}],["则此时",{"2":{"262":1}}],["则自动按指定的分隔符拼接为字符串",{"2":{"234":1}}],["则需要按文档重新引入",{"2":{"216":1}}],["则需要按如下方式配置",{"2":{"158":1}}],["则需要按下述方式进行手动配置",{"2":{"157":1}}],["则需要手动的通过",{"2":{"296":1,"297":1}}],["则需要手动的指定操作执行器为有序执行器",{"2":{"127":1}}],["则需要手动使用",{"2":{"140":1}}],["则支持并发填充",{"2":{"152":1}}],["则上述示例表示",{"2":{"140":1}}],["则认为条件不通过",{"2":{"117":1}}],["则使用",{"2":{"116":1}}],["则使用该参数作为临时数据源对首个参数进行填充",{"2":{"37":1}}],["则可以在",{"2":{"149":1,"265":1}}],["则可以将",{"2":{"119":1}}],["则可以放在方法上",{"2":{"110":1}}],["则可以是",{"2":{"79":1}}],["则取",{"2":{"94":2}}],["则也可以写为",{"2":{"92":1}}],["则必须手动显式的在注解配置中指定",{"2":{"90":1}}],["则为其中的元素类型",{"2":{"72":1}}],["则为其设置一个默认值",{"2":{"10":1}}],["则首个参数必须为",{"2":{"71":1}}],["则优先使该注解的配置",{"2":{"51":1,"61":1}}],["则分别对方法中每一个带有",{"2":{"37":1}}],["则当在一个元素上添加多个",{"2":{"24":1}}],["则会从管理器重新创建并获取一个缓存对象",{"2":{"19":1}}],["则会对",{"2":{"11":1}}],["则直接从缓存中获取",{"2":{"11":1}}],["则不进行针对",{"2":{"10":1,"252":1}}],["为其设置对应的性别值",{"2":{"331":1}}],["为例",{"2":{"331":1}}],["为什么需要",{"0":{"333":1}}],["为什么引了",{"0":{"298":1}}],["为什么",{"0":{"296":1,"297":1}}],["为什么使用异步执行器的时候报错",{"0":{"293":1}}],["为某个固定值",{"2":{"277":1}}],["为整数时才生效",{"2":{"251":1}}],["为命名空间为",{"2":{"244":1}}],["为基于",{"2":{"216":1,"219":1,"220":1}}],["为你动态加上的这个字段",{"2":{"159":1}}],["为对象添加原本不具备的属性",{"2":{"154":1}}],["为操作指定触发条件",{"2":{"110":1}}],["为键值指定别名",{"0":{"94":1}}],["为此",{"2":{"80":1}}],["为一个方法容器",{"2":{"70":1}}],["为",{"2":{"49":1,"51":1,"55":1,"61":1,"78":1,"86":1,"120":1,"150":1,"165":1,"168":1,"172":1,"214":1,"222":1,"247":1,"251":1,"255":2,"256":2}}],["为空字符串",{"2":{"231":1}}],["为空时指向",{"2":{"131":1}}],["为空时仍然应用该操作",{"2":{"117":1}}],["为空",{"2":{"10":2,"252":1}}],["为了保持代码的整洁性",{"2":{"139":1}}],["为了保证尽可能减少查库次数",{"2":{"6":1}}],["为了简化代码",{"2":{"121":1}}],["为了便于区分",{"2":{"89":1}}],["为了便于用户对在",{"2":{"7":1}}],["为了兼容",{"2":{"23":1}}],["为了提高效率",{"2":{"6":1}}],["若填充失败时",{"2":{"234":1}}],["若被",{"2":{"234":1}}],["若目标类没有配置任何装配操作则执行会报错",{"2":{"227":1}}],["若已有则可以跳过",{"2":{"155":1,"162":1,"175":1}}],["若该元素上同时声明了多个操作",{"2":{"111":1}}],["若你的数据源容器接受的参数类型不是",{"2":{"90":1}}],["若你在非",{"2":{"54":1,"158":1}}],["若是有参方法",{"2":{"71":1}}],["若枚举类上存在",{"2":{"61":1}}],["若常量类上存在",{"2":{"51":1}}],["若返回值为字符串",{"2":{"45":1}}],["若在",{"2":{"42":1}}],["若有必要",{"2":{"37":1}}],["若方法不指定填充对象类型",{"2":{"219":1,"220":1}}],["若方法带有",{"2":{"37":1}}],["若方法具备带有",{"2":{"37":1}}],["若发现它已经失效",{"2":{"19":1}}],["若",{"2":{"10":2,"94":2,"157":1,"252":1}}],["e",{"2":{"270":6,"331":2}}],["else",{"2":{"248":2}}],["element",{"2":{"23":2,"65":1,"67":4,"121":1}}],["elementtype",{"2":{"23":4,"24":2,"121":4,"273":3}}],["evelyn",{"2":{"213":1}}],["eventlistener",{"2":{"37":1,"70":1}}],["eric",{"2":{"209":1}}],["empnames",{"2":{"173":3}}],["empmapper",{"2":{"130":2,"173":2}}],["emp>",{"2":{"130":4}}],["emp",{"2":{"130":6,"262":1,"263":1}}],["emps",{"2":{"130":6}}],["employees",{"2":{"102":1,"104":2,"106":3,"107":1}}],["employee>",{"2":{"102":1,"103":1,"104":1,"107":1}}],["employee",{"2":{"102":3,"103":2,"104":1,"107":1}}],["empty",{"2":{"68":1}}],["emptymap",{"2":{"68":1,"82":1,"275":1}}],["entity",{"2":{"246":2}}],["entry",{"2":{"10":1}}],["enablecrane4j",{"2":{"221":1,"234":1,"302":2}}],["enableclearcache",{"2":{"178":1}}],["enablecache",{"2":{"79":2}}],["enable",{"2":{"150":2,"237":2,"238":1,"239":1,"243":1,"245":2}}],["enablenull",{"2":{"117":3}}],["enname",{"2":{"61":1}}],["enumcontainer",{"2":{"280":2}}],["enumcontainerbuilder",{"2":{"58":1}}],["enumvalue",{"2":{"221":1}}],["enumkey",{"2":{"221":1,"271":1,"272":1,"332":1}}],["enums",{"2":{"60":1,"61":3,"242":1,"255":1}}],["enum",{"2":{"51":1,"58":2,"59":2,"60":2,"61":1,"241":1,"242":3,"254":1,"256":1,"272":1,"280":1}}],["excel",{"2":{"187":1}}],["exchange",{"2":{"182":5}}],["excludeclasses",{"2":{"50":1,"60":1}}],["exclude",{"2":{"49":2}}],["excludeopeator",{"2":{"30":1}}],["excludes",{"2":{"30":1,"124":1,"151":1,"160":1,"165":2}}],["ex",{"2":{"160":2}}],["extension",{"2":{"155":2,"162":2,"174":1,"175":2,"306":2}}],["extends",{"2":{"20":2,"23":1,"71":1,"121":1}}],["expect",{"2":{"117":3}}],["expression",{"2":{"111":1}}],["expiretime",{"2":{"20":1}}],["expire",{"2":{"14":2}}],["expirationtime",{"2":{"13":3,"75":1,"79":1,"177":1}}],["exampleapplication",{"2":{"30":1}}],["example",{"2":{"30":2,"35":2,"50":1,"60":1,"69":1,"146":5}}],["execution",{"2":{"329":1}}],["executeordered",{"2":{"128":2,"145":1}}],["executeifmatchallgroups",{"2":{"124":1}}],["executeifmatchanygroups",{"2":{"124":1}}],["executeifnonematchanygroups",{"2":{"124":1}}],["execute",{"2":{"35":2,"124":1,"130":1,"145":1,"252":1,"283":1,"284":1,"311":1,"313":1,"319":1,"321":1,"327":2,"328":1}}],["executeasync",{"2":{"4":1,"145":1}}],["executortype",{"2":{"3":1,"5":1,"32":1,"129":1,"152":2,"160":1,"262":1}}],["executor",{"2":{"1":9,"152":1,"283":2,"287":1}}],["equals",{"2":{"10":1,"80":1,"117":3,"252":1}}],["该方法的返回值为",{"2":{"259":1,"260":1}}],["该方法将返回一个",{"2":{"258":1}}],["该方法会清空缓存",{"2":{"9":1}}],["该方法会查询并缓存字典值",{"2":{"9":1}}],["该回调方法会在所有操作完成后调用",{"2":{"248":1}}],["该值默认为",{"2":{"247":1}}],["该配置只在",{"2":{"237":1}}],["该配置表示",{"2":{"309":1,"317":1,"326":1}}],["该配置表示当入参集合为空时",{"2":{"78":1}}],["该配置表示是否需要过滤入参集合中的空值",{"2":{"78":1}}],["该项目的黑客可能仅仅回复",{"2":{"183":1}}],["该扩展提供的",{"2":{"176":1}}],["该查询是基于",{"2":{"172":1}}],["该填充可以在属性映射时",{"2":{"154":1}}],["该填充完全兼容已有的各项配置",{"2":{"154":1}}],["该字段映射遵循普通字段映射的语义",{"2":{"138":1}}],["该注解属性如下",{"2":{"131":1}}],["该条件是否需要取反",{"2":{"121":1}}],["该条件应该排在第几个",{"2":{"121":1}}],["该条件应该是",{"2":{"121":1}}],["该条件不会生效",{"2":{"114":1}}],["该条件仅应用到",{"2":{"111":1}}],["该条件将同时应用到下面两个装配操作",{"2":{"111":1}}],["该行为可以通过在指定属性映射策略改变",{"2":{"96":1,"141":1}}],["该功能是通过",{"2":{"140":1}}],["该功能需要配合装配处理器",{"2":{"138":1}}],["该功能依赖",{"2":{"134":1}}],["该功能通常配合方法容器使用",{"2":{"92":1}}],["该功能基于",{"2":{"33":1,"92":1,"93":1}}],["该容器入参为待填充的",{"2":{"80":1}}],["该容器将从",{"2":{"69":1}}],["该类必须有一个公开的无参构造方法",{"2":{"42":1,"74":1,"92":1}}],["该对象中实现的回调方法会在特定的处理阶段被触发",{"2":{"10":1}}],["初始化方法",{"2":{"9":1}}],["fd",{"2":{"263":3}}],["flatmap",{"2":{"270":1}}],["florbish",{"2":{"209":1}}],["flurbamatic",{"2":{"209":2}}],["fluent",{"2":{"87":2,"103":1}}],["fucking",{"2":{"204":2}}],["functionalinterface",{"2":{"67":1}}],["function",{"2":{"9":1,"23":1,"56":1,"68":2,"90":2}}],["feature",{"2":{"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"225":1,"226":1,"227":1,"230":1,"231":1,"234":1}}],["fedora",{"2":{"188":1}}],["female",{"2":{"51":1,"61":2,"254":2,"256":2,"331":1}}],["from",{"2":{"168":1,"169":1,"170":1,"171":1,"172":1}}],["fault",{"2":{"182":1}}],["faq",{"0":{"286":1},"1":{"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1},"2":{"179":2,"181":3,"202":1,"205":1,"209":2}}],["fasterxml",{"2":{"155":2}}],["factorybean",{"2":{"53":2,"55":1}}],["false",{"2":{"48":1,"49":3,"79":1,"117":1,"121":1,"150":1,"223":1,"237":1,"245":2}}],["firstiddeptname",{"2":{"263":2}}],["firstiddeptid",{"2":{"262":2,"263":3}}],["firstdepts",{"2":{"263":2}}],["firstdeptids",{"2":{"263":2}}],["firstdeptname",{"2":{"262":2,"263":1}}],["fix",{"2":{"216":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1}}],["fixed",{"2":{"68":1}}],["fic",{"2":{"192":1}}],["filters",{"2":{"206":1}}],["filter",{"2":{"124":1}}],["filternullkey",{"2":{"72":1,"78":2}}],["fill",{"2":{"27":2,"31":2,"33":1,"35":2,"36":1,"110":1,"119":2,"150":2}}],["field",{"2":{"23":1,"24":1,"121":1,"273":3}}],["find",{"2":{"222":1}}],["findall",{"2":{"9":1}}],["final",{"2":{"9":2,"13":1,"20":1,"48":3,"49":3,"51":2,"56":1,"58":2,"59":2,"61":4,"254":2,"256":2,"263":1,"275":2,"276":1,"277":1,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1}}],["followtypeconfig",{"2":{"51":2,"61":2}}],["foreach",{"2":{"263":1,"270":4,"275":4,"331":1}}],["forenum",{"2":{"58":3,"59":2,"280":1}}],["forconstantclass",{"2":{"48":3}}],["forlambda",{"2":{"23":1,"40":1,"68":3,"80":1,"280":1}}],["formap",{"2":{"15":1,"33":1,"52":1,"69":2,"280":3}}],["foonly",{"2":{"209":2}}],["foodo",{"2":{"172":1}}],["foomapper",{"2":{"167":2,"168":1,"169":1,"170":1,"171":1,"172":1}}],["foovo",{"2":{"140":2,"172":1}}],["foochild",{"2":{"119":1}}],["foocontainer",{"2":{"82":1}}],["foocontainerprovider",{"2":{"54":1,"55":3}}],["fooconstant2",{"2":{"49":1}}],["fooconstant",{"2":{"48":3}}],["fooquerydto",{"2":{"92":2}}],["foo2>",{"2":{"35":2}}],["foo2",{"2":{"35":13,"36":3}}],["foo1",{"2":{"35":15,"36":5}}],["foooperator",{"2":{"30":1}}],["foolist",{"2":{"27":2,"31":2,"33":1,"80":2,"123":2,"252":1}}],["fooservice",{"2":{"4":1,"30":1,"33":1,"79":3,"145":1}}],["foos",{"2":{"4":2,"110":1,"124":2,"145":4,"283":2,"311":3,"312":2,"313":5,"319":3,"320":2,"321":5,"327":3,"328":3}}],["foo>",{"2":{"3":2,"4":1,"13":1,"17":1,"18":1,"27":1,"31":1,"33":1,"71":2,"75":1,"80":1,"82":1,"110":1,"123":1,"124":2,"145":1,"147":1,"150":1,"151":1,"152":1,"153":2,"250":1,"283":1,"311":1,"312":2,"313":2,"319":1,"320":2,"321":2,"327":1,"328":1}}],["foo",{"2":{"3":2,"9":2,"13":2,"17":2,"18":2,"27":1,"31":1,"33":1,"39":2,"45":2,"46":2,"49":1,"51":1,"61":1,"63":1,"66":1,"67":1,"71":4,"74":1,"75":2,"76":4,"79":4,"80":12,"90":5,"92":2,"93":2,"94":1,"97":2,"99":2,"110":8,"111":6,"112":1,"113":2,"114":3,"116":2,"117":7,"118":3,"119":7,"120":3,"123":2,"124":2,"140":7,"142":2,"147":8,"150":3,"151":3,"152":2,"153":3,"159":8,"160":2,"167":2,"168":3,"169":2,"170":1,"171":1,"172":2,"209":2,"249":2,"250":2,"251":1,"252":1,"270":5,"281":8,"283":2,"309":1,"311":6,"312":5,"313":8,"317":1,"319":6,"320":5,"321":8,"326":1,"327":6,"328":4,"329":2,"332":1}}],["\\tkeydesc",{"2":{"276":1}}],["\\tkeytype",{"2":{"276":1}}],["\\tdict",{"2":{"275":1}}],["\\tdictvo",{"2":{"275":2}}],["\\tds",{"2":{"275":2}}],["\\tdept",{"2":{"263":2}}],["\\tgrouped",{"2":{"275":2}}],["\\tr",{"2":{"263":6}}],["\\tresults",{"2":{"263":1,"275":1}}],["\\tresultkey",{"2":{"259":1}}],["\\tresulttype",{"2":{"259":1}}],["\\treturn",{"2":{"82":1,"130":2,"255":2,"275":2,"277":1}}],["\\tset",{"2":{"263":2,"275":2}}],["\\tsort",{"2":{"262":3}}],["\\t\\tcontainer",{"2":{"263":1}}],["\\tbindmethod",{"2":{"260":1}}],["\\tmap",{"2":{"263":4,"275":5}}],["\\tmale",{"2":{"254":1,"256":1}}],["\\tmethod",{"2":{"260":1,"276":1}}],["\\tnamespace",{"2":{"259":1}}],["\\tname",{"2":{"248":3}}],["\\tnew",{"2":{"23":1,"128":1}}],["\\tint",{"2":{"255":1}}],["\\tif",{"2":{"248":1}}],["\\tid",{"2":{"94":2}}],["\\tthirddepts",{"2":{"263":1}}],["\\ttargettype",{"2":{"276":1}}],["\\ttarget",{"2":{"260":1}}],["\\ttemplate",{"2":{"130":1}}],["\\ttype",{"2":{"74":1,"259":1}}],["\\tcachemanager",{"2":{"177":1}}],["\\tcrane4jtemplate",{"2":{"130":1}}],["\\tcontainer",{"2":{"89":1,"259":1,"262":3,"263":1,"277":1}}],["\\tlist",{"2":{"130":1,"263":1}}],["\\tpublic",{"2":{"82":1,"258":2,"259":2,"263":1}}],["\\tprop",{"2":{"262":3,"263":1}}],["\\tprops",{"2":{"255":1,"256":1,"259":1,"260":1,"277":1}}],["\\tpropertymappingstrategy",{"2":{"46":1}}],["\\tprivate",{"2":{"42":1,"74":1,"248":4,"249":6,"250":6,"251":6,"252":6,"254":2,"255":2,"256":2,"258":6,"259":3,"260":3,"262":6,"263":7,"274":3,"275":9,"276":7,"277":3}}],["\\tfoo",{"2":{"80":1}}],["\\tfoolist",{"2":{"33":1}}],["\\t",{"2":{"8":1,"14":2,"20":1,"23":2,"33":1,"67":1,"82":1,"130":2,"153":1,"177":1,"248":1,"249":3,"250":4,"251":3,"252":3,"254":1,"255":3,"256":1,"258":2,"259":6,"260":2,"262":2,"263":10,"275":6,"276":1,"277":2}}],["会先需要将其取出平铺后再进行填充",{"2":{"281":1}}],["会先将",{"2":{"102":1}}],["会偶发空指针异常",{"2":{"232":1,"234":1}}],["会导致填充字段错乱",{"2":{"222":1}}],["会更好",{"2":{"211":1}}],["会更加灵活而直观",{"2":{"113":1}}],["会不会有帮助",{"2":{"202":1}}],["会让你交到更多朋友",{"2":{"202":1}}],["会使黑客们兴奋的地方",{"2":{"200":1}}],["会使用",{"2":{"86":1}}],["会变形",{"2":{"185":1}}],["会比在私有论坛中提同样的问题更容易得到有用的回答",{"2":{"181":1}}],["会借助",{"2":{"146":1,"172":1}}],["会有包含多个",{"2":{"131":1}}],["会自行完成注册",{"2":{"121":1}}],["会自动将对应的模块注册到该实例中",{"2":{"157":1}}],["会自动帮你合并在同一次操作中对相同数据源容器的调用",{"2":{"89":1}}],["会自动进行注册",{"2":{"23":1}}],["会自动注册",{"2":{"8":1,"98":1,"143":1}}],["会根据配置从数据源获得对象",{"2":{"329":1}}],["会根据指定的类型和处理器类型获取对应的操作处理器",{"2":{"107":1}}],["会根据字典分类和字典类型从服务接口中获取字典项",{"2":{"23":1}}],["会动态推断类型",{"2":{"148":1}}],["会动态推断",{"2":{"106":1}}],["会认为其为一个",{"2":{"87":1,"103":1}}],["会直接将待填充的对象作为",{"2":{"80":1}}],["会对后续的维护带来麻烦",{"2":{"71":1}}],["会在用户使用时根据",{"2":{"164":1}}],["会在方法执行前",{"2":{"147":1}}],["会在后处理阶段扫描该方法",{"2":{"71":1}}],["会在一开始就会配置好一个默认的异步执行器",{"2":{"1":1}}],["会调用",{"2":{"9":2}}],["方法等多种数据源",{"2":{"330":1}}],["方法即可触发填充",{"2":{"327":1}}],["方法获取缓存的",{"2":{"294":1}}],["方法配置为数据源容器",{"2":{"285":1}}],["方法和常量等数据源创建容器",{"2":{"280":1}}],["方法中添加断点",{"2":{"287":1}}],["方法中",{"2":{"276":1}}],["方法返回后进行简单的填充",{"2":{"267":1}}],["方法返回的对象列表的",{"2":{"72":1}}],["方法也适配为容器",{"2":{"243":1}}],["方法缓存希望可以像",{"2":{"225":1}}],["方法时",{"2":{"219":1,"220":1}}],["方法参数上解析操作配置",{"2":{"153":1}}],["方法参数类型",{"2":{"72":1}}],["方法上添加",{"2":{"259":1}}],["方法上解析操作配置",{"2":{"153":1}}],["方法上",{"2":{"88":1}}],["方法上的配置进行填充",{"2":{"31":1}}],["方法设置过滤",{"2":{"86":1}}],["方法就不会被调用",{"2":{"78":1}}],["方法的返回值是",{"2":{"73":1}}],["方法的入参是一个函数式接口",{"2":{"67":1}}],["方法名",{"2":{"72":1}}],["方法必须有返回值",{"2":{"71":1}}],["方法可以是实例方法",{"2":{"71":1}}],["方法类型",{"2":{"71":1}}],["方法容器通常不直接创建使用",{"2":{"70":1}}],["方法容器指以实例方法或静态方法作为数据源的容器",{"2":{"70":1}}],["方法容器",{"0":{"70":1},"1":{"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1},"2":{"92":1,"263":1,"276":2}}],["方法数据源的函数式接口",{"2":{"68":1}}],["方法数据源容器以及自动填充切面中的各种属性操作功能",{"2":{"25":1}}],["方法数据源容器",{"2":{"13":1,"259":1}}],["方法或属性",{"2":{"67":1}}],["方法基于枚举类快速配置一个枚举数据源",{"2":{"58":1}}],["方法构建的特殊方法容器",{"2":{"53":1}}],["方法构建容器",{"2":{"48":1,"58":1,"59":1}}],["方法将常量类定义为一个数据源容器",{"2":{"48":1}}],["方法工厂",{"0":{"37":1}}],["方法添加其他类型的参数适配器",{"2":{"33":1}}],["方法后",{"2":{"31":1}}],["方法进行销毁",{"2":{"9":1}}],["方法进行初始化",{"2":{"9":1}}],["方法",{"2":{"8":1,"20":1,"26":1,"53":1,"79":1,"87":3,"103":1,"128":1,"159":1,"260":1,"269":2,"271":2,"284":1,"285":2,"287":1,"306":1,"309":1,"313":1,"315":1,"317":1,"321":1,"323":1,"326":1,"328":1}}],["基本上他是对的",{"2":{"204":1}}],["基本只在测试用例中使用",{"2":{"26":1}}],["基本概念",{"0":{"278":1},"1":{"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1},"2":{"0":1,"84":1,"129":1,"152":1,"293":1,"303":1,"334":1}}],["基于默认配置创建一个操作门面",{"2":{"324":1}}],["基于操作执行器或",{"2":{"284":1}}],["基于函数式接口创建一个容器",{"2":{"280":1}}],["基于枚举类创建一个容器",{"2":{"280":1}}],["基于新特性添加基于接口代理的填充方法",{"2":{"217":1}}],["基于上述配置创建一个jsonnodeautooperatemodule",{"2":{"158":1}}],["基于方法填充",{"2":{"153":1}}],["基于方法句柄",{"2":{"25":1}}],["基于接口填充",{"2":{"110":1}}],["基于此",{"2":{"26":1}}],["基于原生反射的普通反射属性操作器",{"2":{"25":1}}],["基于自定义容器的装配操作注解处理器",{"2":{"23":1}}],["基于已有的",{"2":{"20":1}}],["基于",{"2":{"18":3,"20":1,"25":1,"26":2,"52":1,"131":2,"173":1,"218":1,"225":1,"234":1,"280":1,"284":1,"285":1}}],["基于这套机制已经提供了三种实现",{"2":{"8":1}}],["容器的生命周期",{"2":{"300":1}}],["容器的命名空间必须是一个非空字符串",{"2":{"82":1}}],["容器的命名空间",{"2":{"14":1}}],["容器可以做一些自定义的初始化",{"0":{"300":1}}],["容器里面注册了一个配置对象",{"2":{"279":1}}],["容器缓存配置",{"0":{"244":1}}],["容器缓存的数据为",{"2":{"48":1,"58":1,"59":1}}],["容器注册",{"2":{"231":1}}],["容器注册前回调",{"2":{"8":1}}],["容器会通过从缓存管理器获取的缓存对象存取数据",{"2":{"177":1}}],["容器时",{"2":{"177":1}}],["容器在读写数据时",{"2":{"177":1}}],["容器有且仅有一个可用的",{"2":{"157":1}}],["容器返回的数据源对象是",{"2":{"140":1}}],["容器对应的key类型为integer集合",{"2":{"90":1}}],["容器中声明一个默认配置类",{"2":{"307":1}}],["容器中存在对应的",{"2":{"297":1}}],["容器中存在",{"2":{"296":1,"297":1}}],["容器中存在多个",{"2":{"157":1}}],["容器中获取",{"2":{"95":1}}],["容器中",{"2":{"79":1}}],["容器中的",{"2":{"79":1}}],["容器中创建对应的",{"2":{"30":1}}],["容器指以",{"2":{"68":1}}],["容器管理",{"2":{"65":1}}],["容器管理即可",{"2":{"20":1,"23":1,"98":1,"143":1,"307":1}}],["容器获取的情况下",{"2":{"95":1}}],["容器获取",{"2":{"65":1,"76":1,"83":1,"145":1}}],["容器获取操作门面",{"2":{"4":1,"8":1,"121":1,"128":1,"143":1}}],["容器提供者",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"53":1,"277":1}}],["容器",{"0":{"68":1,"240":1},"1":{"241":1,"242":1,"243":1,"244":1},"2":{"33":3}}],["容器生命周期接口",{"0":{"9":1}}],["容器生命周期处理器",{"0":{"8":1},"2":{"8":1}}],["容器销毁后回调",{"2":{"8":1}}],["容器创建后",{"2":{"8":1}}],["组装数据",{"2":{"263":1}}],["组别的操作",{"2":{"250":2}}],["组别的装配",{"2":{"151":1}}],["组成",{"2":{"210":1}}],["组中生效",{"2":{"123":2}}],["组合式",{"2":{"285":2}}],["组合式配置",{"0":{"256":1}}],["组合将会产生不同的效果",{"2":{"131":1}}],["组合",{"0":{"113":1}}],["组合注解",{"0":{"24":1},"2":{"285":1}}],["组件的回调方法",{"2":{"248":1}}],["组件的回调接口",{"0":{"7":1},"1":{"8":1,"9":1,"10":1},"2":{"80":1,"89":1,"113":1,"252":1}}],["组件实现",{"2":{"18":1}}],["组操作",{"2":{"6":6}}],["不想要重复造轮子",{"2":{"298":1}}],["不执行对应的填充操作",{"2":{"252":1}}],["不执行特定的操作组",{"2":{"124":1}}],["不为",{"2":{"251":1}}],["不为字符串时",{"2":{"159":1}}],["不能",{"2":{"208":1}}],["不能设置超时时间",{"2":{"16":1}}],["不同凡响的说法需要不同凡响的证据",{"2":{"208":1}}],["不同的执行器会对填充操作产生不同的影响",{"2":{"152":1}}],["不同的",{"2":{"131":1}}],["不同的操作配置可以具备相同的",{"2":{"89":1}}],["不该问的问题",{"0":{"208":1}}],["不理你并将你从他的生活中滤掉更简单",{"2":{"207":1}}],["不去关马桶盖等等",{"2":{"207":1}}],["不是我们的",{"2":{"200":1}}],["不是所有论坛都允许在回复中出现分离的标题",{"2":{"185":1}}],["不然还是另起炉灶比较好",{"2":{"185":1}}],["不要在实际步骤上开玩笑",{"2":{"211":1}}],["不要哭嚎所有的批评都应该通过私下的邮件传送",{"2":{"207":1}}],["不要动辄声称找到了",{"2":{"190":1}}],["不要使用quoted",{"2":{"187":1}}],["不要发送一段文字只是一行句子但自动换行后会变成多行的邮件",{"2":{"187":1}}],["不要直接点击回复来开始一个全新的讨论串",{"2":{"185":1}}],["不要妄想用你的痛苦程度来打动我们",{"2":{"185":1}}],["不要假设自己会在开发者列表中受到欢迎",{"2":{"184":1}}],["不要对你的问题是否会受到欢迎做太乐观的估计",{"2":{"181":1}}],["不要将所有问题一股脑拋出",{"2":{"179":1}}],["不要指望几秒钟的",{"2":{"179":1}}],["不管哪一个表达式",{"2":{"116":1}}],["不论公司大还是小",{"2":{"210":1}}],["不论我是谁",{"2":{"209":1}}],["不论",{"2":{"97":1,"142":1}}],["不指定该操作绑定的",{"2":{"92":1}}],["不填时默认获取首个符合条件的同名方法",{"2":{"72":1}}],["不限制",{"2":{"71":2}}],["不再使用注册到全局配置中的",{"2":{"33":1}}],["不支持解析复数可重复的组合注解",{"2":{"24":1}}],["不支持设置到期时间",{"2":{"18":1}}],["不使用时",{"2":{"18":2}}],["不过不必担心",{"2":{"304":1}}],["不过支持细粒度配置",{"2":{"284":1}}],["不过依然显得十分繁琐",{"2":{"270":1}}],["不过对应的可能会带来额外的内存消耗",{"2":{"237":1}}],["不过由于提取操作在填充之前",{"2":{"130":1}}],["不过它总是先于装配操作完成",{"2":{"129":1}}],["不过因为各种原因",{"2":{"125":1}}],["不过默认的多对多装配处理器默认内置了该解析",{"2":{"93":1}}],["不过默认的一对一与一对多装配处理器默认内置了该解析",{"2":{"92":1}}],["不过出于代码的可维护性考虑",{"2":{"71":1}}],["不过通常还是更推荐使用第一种方式",{"2":{"55":1}}],["不过这种写法可以减少一次类型判断从而轻微提高性能",{"2":{"35":1}}],["不过",{"2":{"26":1,"34":1,"79":1,"88":1,"185":1,"262":1,"307":1}}],["不过同时它们也会带来额外的性能消耗",{"2":{"25":1}}],["不过你可以通过",{"2":{"178":1}}],["不过你可以在解析注解时自动态的指定数据源容器",{"2":{"23":1}}],["不过你也可以通过操作门面类手动注册",{"2":{"143":1}}],["不过你也可以通过操作门面手动注册",{"2":{"37":1}}],["不过你也可以通过操作门面手动注册这个管理器",{"2":{"20":1}}],["不过你也可以通过操作门面手动注册它",{"2":{"8":1,"23":1}}],["不过你也可以手动完成这个过程",{"2":{"76":1}}],["不过你也可以根据情况下选择一个模板类来节约一些功夫",{"2":{"23":1}}],["不过在非",{"2":{"304":2}}],["不过在最开始的时候我们仅有少量的必要信息",{"2":{"269":1}}],["不过在某些时候",{"2":{"19":1}}],["不过在同步执行时意义不大",{"2":{"6":1}}],["不设置队列大小",{"2":{"1":1}}],["调整抽象层级",{"2":{"230":1}}],["调整执行器的每次向线程池提交任务时",{"2":{"6":1}}],["调用前还需要先解析操作配置",{"2":{"284":1}}],["调用operator实例的object基本方法会发生死循环直到栈溢出",{"2":{"224":1}}],["调用方法数据源容器报错",{"2":{"216":1}}],["调用上述方法",{"2":{"178":1}}],["调用被代理的方法",{"2":{"146":1}}],["调用",{"2":{"86":1,"284":1}}],["调用类的全限定名字符串",{"2":{"79":1}}],["调用操作接口以填充对象的参数",{"2":{"26":1}}],["调用所消耗的时间",{"2":{"6":1}}],["且被",{"2":{"297":1}}],["且容器中存在对应的",{"2":{"296":1}}],["且都有相应的",{"2":{"287":1}}],["且便于集中管理",{"2":{"285":1}}],["且",{"2":{"233":1,"234":1,"287":1}}],["且支持重复声明",{"2":{"222":1}}],["且返回值为空时报错",{"2":{"219":1,"220":1}}],["且返回值类型必须为",{"2":{"71":1}}],["且内容也没那么丰富",{"2":{"210":1}}],["且无法自动设置别名",{"2":{"172":1}}],["且配置文件中的",{"2":{"150":1}}],["且排序靠前的字段优先完成映射",{"2":{"139":1}}],["且不指定",{"2":{"137":1}}],["且用不到这些额外的功能",{"2":{"25":1}}],["且在",{"2":{"25":1}}],["且需要映射的字段也越来越多时",{"2":{"6":1}}],["且允许核心线程池超时",{"2":{"1":1}}],["的前提下",{"2":{"333":1}}],["的前缀",{"2":{"177":1}}],["的功能逐渐稳定",{"2":{"330":1}}],["的整体执行流程可大致分为两阶段",{"2":{"329":1}}],["的版本号",{"2":{"305":1,"314":1,"322":1}}],["的版本有效",{"2":{"237":1}}],["的例子来进行对比",{"2":{"285":1}}],["的运行依赖于",{"2":{"279":1}}],["的集合",{"2":{"275":1}}],["的返回值进行自动填充",{"2":{"259":1}}],["的返回值类型",{"2":{"148":1}}],["的需求",{"2":{"238":1}}],["的一些可选项进行配置",{"2":{"235":1}}],["的方式动态决定是否要对特定对象应用操作",{"2":{"227":1}}],["的方法容器",{"2":{"225":1}}],["的自动填充",{"2":{"262":1}}],["的自动装配功能更加灵活",{"2":{"223":1}}],["的自定义缓存",{"2":{"20":1}}],["的管理方式",{"2":{"222":1}}],["的实现",{"2":{"222":1}}],["的配置执行",{"2":{"329":1}}],["的配置",{"2":{"221":1}}],["的正式版本",{"2":{"220":1}}],["的枚举",{"2":{"219":1,"220":1}}],["的第二个预览版本",{"2":{"219":1}}],["的第一个正式版本",{"2":{"214":1}}],["的依赖",{"2":{"217":1}}],["的动态数据源容器提供者",{"2":{"217":1}}],["的预览版本",{"2":{"217":1,"218":1}}],["的解析逻辑分离到独立的注解处理器",{"2":{"216":1}}],["的数据源提供更好的支持",{"2":{"216":1}}],["的数据源容器时才生效",{"2":{"120":1}}],["的数据源容器中获取数据源对象",{"2":{"86":1}}],["的数据源容器",{"2":{"55":1,"234":1}}],["的使用方式",{"2":{"215":1}}],["的使用方法",{"2":{"13":1}}],["的官方文档站点",{"2":{"214":1}}],["的测试用例",{"2":{"214":1}}],["的原因是什么",{"2":{"209":1}}],["的资料",{"2":{"209":1}}],["的发行版有关",{"2":{"208":1}}],["的开源操作系统吧",{"2":{"208":1}}],["的观察总结和这个相关也值得一读",{"2":{"206":1}}],["的回应",{"2":{"204":2}}],["的回调机制",{"2":{"7":1}}],["的详述开关",{"2":{"193":1}}],["的出色文章",{"2":{"188":1}}],["的症状",{"2":{"188":1}}],["的电脑发送电子邮件",{"2":{"187":1}}],["的标题很难引起足够重视",{"2":{"185":1}}],["的鼠标指针",{"2":{"185":1}}],["的鼠标指针会变形",{"2":{"185":1}}],["的流程或链接",{"2":{"181":1}}],["的格式访问",{"2":{"177":1}}],["的格式为",{"2":{"92":1}}],["的查询也允许指定查询结果的一对一或一对多映射类型",{"2":{"173":1}}],["的查询功能",{"2":{"53":1}}],["的扩展组件",{"2":{"161":1}}],["的扩展插件",{"2":{"154":1}}],["的特殊性",{"2":{"154":1}}],["的写法",{"2":{"147":1}}],["的链式操作符的方式来访问或设置嵌套对象的属性",{"2":{"140":1}}],["的不同重载方法来设置本次填充操作的执行组",{"2":{"124":1}}],["的拆卸操作",{"2":{"123":1}}],["的类型或名称",{"2":{"291":1,"292":1}}],["的类型",{"2":{"90":1}}],["的类型却是",{"2":{"90":1}}],["的类型转为指定类型",{"2":{"90":1}}],["的操作就是拆卸操作",{"2":{"281":1}}],["的操作",{"0":{"247":1},"2":{"84":1,"86":1}}],["的属性值映射到",{"2":{"132":1}}],["的属性值",{"2":{"97":1,"132":1,"142":1,"281":1}}],["的属性值不为",{"2":{"96":1,"141":1}}],["的属性映射到",{"2":{"84":1,"281":1,"331":1}}],["的属性操作器",{"2":{"25":1}}],["的时候会将所有的",{"2":{"159":1}}],["的时候会使用",{"2":{"76":1}}],["的时候",{"2":{"73":1,"78":1,"183":1}}],["的责任链机制",{"2":{"70":1}}],["的启动类或配置类上",{"2":{"50":1,"60":1}}],["的静态工厂方法",{"2":{"48":1,"58":1}}],["的容器挂载缓存空间",{"2":{"244":1}}],["的容器",{"2":{"40":1}}],["的字节码反射属性操作器",{"2":{"25":1}}],["的反射工厂",{"2":{"25":1}}],["的注解配置",{"2":{"24":1}}],["的组合注解机制优化",{"2":{"24":1}}],["的缓存支持",{"2":{"214":1,"215":1}}],["的缓存管理器",{"2":{"16":1,"174":1}}],["的缓存了",{"2":{"13":1}}],["的创建和销毁",{"2":{"11":1}}],["的",{"2":{"6":5,"8":1,"16":2,"18":3,"24":1,"26":2,"27":1,"30":1,"33":1,"47":1,"53":1,"69":1,"80":1,"84":1,"140":1,"145":1,"156":1,"157":1,"161":1,"172":1,"176":1,"185":1,"214":1,"215":1,"218":2,"220":2,"227":1,"281":1,"285":2,"298":1,"329":1,"331":1,"332":1}}],["次填充按对应的数据源容器打包成两个任务提交给线程池完成",{"2":{"6":1}}],["共同完成",{"2":{"11":1}}],["共",{"2":{"6":1}}],["+",{"2":{"6":1,"10":1,"23":2,"65":2,"67":2,"80":2,"99":1,"143":1,"248":3}}],["时忽略此操作",{"2":{"247":1}}],["时需要忽略这个操作",{"2":{"247":1}}],["时会空指针",{"2":{"221":1}}],["时会自动转换为查询",{"2":{"169":1}}],["时的一些自动装配问题",{"2":{"217":1}}],["时的奇怪现象",{"2":{"209":1}}],["时有问题",{"2":{"208":2}}],["时将会清除缓存管理器中的所有缓存",{"2":{"178":1}}],["时才生效",{"2":{"119":1,"251":2}}],["时才应用操作",{"2":{"110":1,"116":1,"117":3}}],["时回收",{"2":{"16":1}}],["时间单位",{"2":{"14":1}}],["时",{"2":{"6":1,"11":1,"24":1,"49":1,"51":1,"61":1,"69":1,"73":1,"78":2,"97":3,"117":1,"123":1,"135":1,"136":1,"137":1,"142":3,"150":1,"157":1,"159":1,"178":1,"247":1}}],["当对外展示时则需要屏蔽一些敏感信息",{"2":{"333":1}}],["当对方法返回进行自动填充时",{"2":{"77":1}}],["当引入",{"2":{"332":1}}],["当确认上述步骤皆无问题后",{"2":{"287":1}}],["当填充时",{"2":{"281":1}}],["当填充对象为指定类型",{"0":{"119":1}}],["当通过",{"2":{"232":1,"234":1}}],["当项目中同上存在复数同名的数据源容器时",{"2":{"231":1}}],["当项目启动后",{"2":{"71":1}}],["当作为数据源容器的方法接受单个参数并返回集合类型结果时",{"2":{"228":1,"230":1}}],["当需要值到键的映射时",{"2":{"226":1}}],["当需要填充的对象越来越多",{"2":{"6":1}}],["当目标对象的key值与数据源对象的key值类型不一致时",{"2":{"223":1}}],["当bean被spring代理时",{"2":{"216":1}}],["当回复一个好问题时",{"2":{"211":1}}],["当别人正在用错误的工具或方法时别建议笨拙的权宜之计",{"2":{"211":1}}],["当我向每个人表示感谢",{"2":{"209":1}}],["当我们使用解析器对类及类的属性进行解析式",{"2":{"282":1}}],["当我们在方法上添加",{"2":{"147":1}}],["当我们执行填充操作时",{"2":{"123":1}}],["当我们指定要将数据源对象的",{"2":{"96":1,"141":1}}],["当我们将一个需要解析的",{"2":{"21":1}}],["当我们填充这",{"2":{"6":1}}],["当黑客说你搞砸了",{"2":{"207":1}}],["当它们提供时",{"2":{"187":1}}],["当它们处理换行时",{"2":{"187":1}}],["当某个项目提供开发者邮件列表时",{"2":{"184":1}}],["当有人评论你的一个说法有误或者提出不同看法时",{"2":{"207":1}}],["当有人要求你提供更多相关信息时",{"2":{"182":1}}],["当有多个条件时",{"2":{"121":2}}],["当有多个方法工厂时",{"2":{"37":1}}],["当有多个处地方需要进行重复配置时",{"2":{"24":1}}],["当执行装配时",{"2":{"168":1}}],["当执行时",{"2":{"15":1,"33":1,"92":1,"153":1}}],["当存在需要填充的嵌套对象时",{"2":{"281":1}}],["当存在多个操作时",{"2":{"160":1}}],["当存在指定数据源容器",{"0":{"120":1}}],["当使用注册有",{"2":{"157":1}}],["当在注解中不指定",{"2":{"219":1,"220":1}}],["当在在",{"2":{"159":1}}],["当在",{"2":{"135":1,"136":1,"137":1}}],["当两边的属性类型不同时",{"2":{"134":1}}],["当自动填充时",{"2":{"124":1}}],["当进行手动填充时",{"2":{"124":1}}],["当进行填充时",{"2":{"46":1}}],["当指定属性值非空",{"0":{"118":1}}],["当指定属性值等于指定值",{"0":{"117":1}}],["当表达式结果为真",{"0":{"116":1}}],["当条件你有较为复杂的判断逻辑时",{"2":{"113":1}}],["当不指定策略时",{"2":{"97":1,"142":1}}],["当如果你不填写",{"2":{"92":1}}],["当返回值已经是",{"2":{"73":1}}],["当注解声明在类上时必填",{"2":{"72":1}}],["当没有多个重载方法时",{"2":{"71":1}}],["当输入一个键值作为",{"2":{"69":1}}],["当配置解析时",{"2":{"55":1}}],["当抽象方法具备复数参数时",{"2":{"33":1}}],["当调用时等同于调用basemapper",{"2":{"53":1}}],["当调用时",{"2":{"23":1}}],["当然",{"2":{"19":1,"55":1,"200":1,"204":1,"207":1,"275":1}}],["当数据源容器尝试操作它时",{"2":{"19":1}}],["当缓存被管理器移除后",{"2":{"19":1}}],["当",{"2":{"16":1,"59":1,"72":1,"78":1,"117":2,"132":1,"157":1,"226":1,"247":2,"252":1}}],["当你已经有了操作配置后",{"2":{"283":1}}],["当你发布软件或补丁时",{"2":{"212":1}}],["当你这样声称时",{"2":{"208":1}}],["当你这么做时",{"2":{"188":1}}],["当你行为不当时所会受到的冒犯",{"2":{"206":1}}],["当你要求私下回复时",{"2":{"195":1}}],["当你报告的是你认为可能在代码中的问题时",{"2":{"188":1}}],["当你提问时",{"0":{"180":1},"1":{"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1}}],["当你提出问题的时候",{"2":{"179":1}}],["当你调用",{"2":{"178":1}}],["当你访问",{"2":{"177":1}}],["当你的项目中存在多个",{"2":{"159":1}}],["当你通过",{"2":{"131":1}}],["当你使用",{"2":{"177":1}}],["当你使用多对多参数处理器",{"2":{"93":1}}],["当你使用一对一或一对多装配处理器时",{"2":{"92":1}}],["当你使用方法数据源容器时",{"2":{"13":1}}],["当你未指定填充使用的数据源容器时",{"2":{"63":1}}],["当你创建了一个实例后",{"2":{"54":1}}],["当你创建了一个处理器时",{"2":{"8":1}}],["当你不指定时",{"2":{"39":1}}],["当你需要在很多地方填充某个特定类型的对象时",{"2":{"35":1}}],["当你直接在方法上通过",{"2":{"34":1}}],["当你获得对应的代理对象后",{"2":{"31":1}}],["当你在本地成功运行示例后",{"2":{"304":1}}],["当你在标题中嚷嚷着有bug时",{"2":{"190":1}}],["当你在使用软件中遇到问题",{"2":{"190":1}}],["当你在类中配置好了要执行的填充操作后",{"2":{"144":1}}],["当你在类",{"2":{"111":1}}],["当你在类上声明时",{"2":{"71":1}}],["当你在",{"2":{"13":1,"302":1}}],["当你让被填充的对象实现上述接口后",{"2":{"10":1}}],["当一个容器类实现了",{"2":{"9":1}}],["当触发拒绝策略时",{"2":{"1":1}}],["vue",{"2":{"285":1}}],["vitepress",{"2":{"230":1}}],["v",{"2":{"193":1}}],["vandiver",{"2":{"192":1}}],["validator",{"2":{"122":1}}],["val",{"2":{"6":2}}],["values",{"2":{"263":3,"270":1,"331":1}}],["valuetype",{"2":{"117":2,"251":1}}],["valuemapperprovider",{"2":{"65":1,"67":1}}],["value",{"2":{"6":2,"10":2,"20":4,"23":1,"51":1,"58":3,"59":5,"67":1,"69":1,"73":3,"99":1,"110":3,"111":1,"112":1,"113":3,"114":1,"116":1,"117":5,"118":2,"119":2,"120":1,"121":1,"124":1,"137":1,"143":2,"147":1,"176":2,"251":2,"254":2,"255":5,"256":6,"331":2}}],["vp2",{"2":{"192":1}}],["version>1",{"2":{"315":1}}],["version>2",{"2":{"315":3}}],["version>4",{"2":{"306":1}}],["version>5",{"2":{"306":2}}],["version>",{"2":{"155":3,"162":2,"175":2,"306":5,"315":6,"323":2}}],["version>$",{"2":{"155":3,"162":2,"175":2,"306":2,"315":2,"323":2}}],["version",{"2":{"155":3,"162":2,"175":2,"305":1,"306":2,"314":1,"315":2,"322":1,"323":2}}],["void",{"2":{"5":1,"9":2,"10":2,"20":4,"27":1,"29":1,"32":1,"33":3,"35":1,"36":1,"50":1,"60":1,"110":1,"119":2,"124":1,"143":1,"147":2,"153":1,"157":1,"248":1,"313":1,"321":1,"328":1}}],["和你所购买的同类软件相比",{"2":{"210":1}}],["和所有被怀疑的硬件作关键词仔细搜索",{"2":{"208":1}}],["和其它一些邮件阅读程序还会检查邮件标题以外的其它信息",{"2":{"185":1}}],["和其它搜索引擎还是你的朋友",{"2":{"181":1}}],["和其他的容器不同",{"2":{"70":1}}],["和操作注解一样",{"2":{"110":1}}],["和方法容器工厂链",{"2":{"70":1}}],["和反序列化器",{"2":{"38":1}}],["和具体的缓存对象",{"2":{"11":1}}],["和",{"0":{"204":1,"298":1},"2":{"6":1,"8":1,"21":1,"25":1,"35":2,"71":1,"80":1,"123":2,"133":1,"159":1,"205":1,"209":2,"216":1,"226":1,"269":1,"285":3,"287":1,"297":1,"329":1}}],["个字符宽的终端机上阅读邮件",{"2":{"187":1}}],["个别开发者",{"2":{"184":1}}],["个",{"2":{"6":2}}],["个待填充",{"2":{"6":1}}],["而有一些则不需要",{"2":{"333":1}}],["而有些字段不需要填充",{"2":{"333":1}}],["而执行阶段所有的组件都围绕",{"2":{"329":1}}],["而如果要使用组合式风格的配置",{"2":{"272":1}}],["而原来的代码仅需保留核心业务逻辑即可",{"2":{"271":1}}],["而现在",{"2":{"258":1}}],["而你会在公开场合中被告知你是如何搞砸的",{"2":{"207":1}}],["而你将被视为有错的一方",{"2":{"206":1}}],["而你又不会动到那些源代码",{"2":{"184":1}}],["而没有对你的要求视而不见",{"2":{"204":1}}],["而回复的时间则是稀缺的资源",{"2":{"196":1}}],["而他们在自以为能达到目标的特定道路上被卡住了",{"2":{"194":1}}],["而只有分别根据某一级部门",{"2":{"262":1}}],["而只是一种真实而有用的需求",{"2":{"192":1}}],["而只能查到项目维护者的电子邮件地址",{"2":{"184":1}}],["而非改变标题是可接受的",{"2":{"185":1}}],["而非你想得到的答案",{"2":{"179":1}}],["而应该是在这点空间中使用极简单扼要的描述方式来提出问题",{"2":{"185":1}}],["而且还都没有清楚的解释如何清除它",{"2":{"205":1}}],["而且他们打这些字的时候也正在读着",{"2":{"204":1}}],["而且有时还很有帮助",{"0":{"201":1}}],["而且通常会用逻辑上正确",{"2":{"199":1}}],["而且即使你的尝试不成功",{"2":{"197":1}}],["而且这样做了基本上没有人会去看",{"2":{"185":1}}],["而且在",{"2":{"184":1}}],["而且",{"2":{"182":1}}],["而调用",{"2":{"178":1}}],["而不要将此信息搞成侦探推理小说",{"2":{"202":1}}],["而不包含其他令人分散注意力的内容",{"2":{"197":1}}],["而不仅仅是邮件程序生成的模板",{"2":{"187":1}}],["而不仅仅是被动地从他人处索取知识",{"2":{"179":1}}],["而不用再次提问相同的问题",{"2":{"185":1}}],["而不是坐等天上掉答案",{"2":{"209":1}}],["而不是使人感觉舒服而却模模糊糊",{"2":{"206":1}}],["而不是那种有礼但含糊的报告",{"2":{"201":1}}],["而不是报告一个",{"2":{"194":1}}],["而不是你的猜测与归纳的结论",{"2":{"192":1}}],["而不是你的解释和理论",{"2":{"192":1}}],["而不是发一个回帖或回答",{"2":{"182":1}}],["而不是真的需要以目标对象本身为数据源进行填充",{"2":{"80":1}}],["而不必要求填充对象必须有一个对应的实体类",{"2":{"27":1}}],["而当有多个重载方法时",{"2":{"71":1}}],["而在更新对象时填充另一部分属性",{"2":{"122":1}}],["而在",{"2":{"70":1,"279":1}}],["而在非",{"2":{"1":1,"26":1,"98":1,"116":1,"121":1,"146":1}}],["而是以类为单位聚合为类级别的操作配置",{"2":{"281":1}}],["而是需要同时根据",{"2":{"274":1}}],["而是因为我用了正确的方式来提问",{"2":{"209":1}}],["而是直接从被",{"2":{"153":1}}],["而是直接从上述的",{"2":{"33":1}}],["而是让",{"2":{"149":1}}],["而是在执行拆卸操作时动态推断类型",{"2":{"106":1,"148":1}}],["而是通过在目标方法上添加注解的方式",{"2":{"70":1}}],["而输入的参数类型是",{"2":{"26":1}}],["而",{"2":{"11":1,"90":1,"118":1,"152":1,"333":1}}],["而缓存对象",{"2":{"11":1}}],["而每个容器都具备全局唯一的命名空间",{"2":{"52":1,"280":1}}],["而每个处理器都用于处理某个特定的注解",{"2":{"21":1}}],["而每个",{"2":{"6":1}}],["一次填充相同容器访问次数",{"2":{"283":1}}],["一次任务中操作对象的数量",{"2":{"6":1}}],["一定要说出来",{"2":{"211":1}}],["一定会惹恼某些人或者被他们忽视",{"2":{"209":1}}],["一种是愚蠢的",{"2":{"209":1}}],["一种方式是直接使用",{"2":{"145":1}}],["一针见血式的交流风格",{"2":{"206":1}}],["一下代码",{"2":{"197":1}}],["一小个程序片段能刚好展示出程序的异常行为",{"2":{"197":1}}],["一两个表情符号通常没有问题",{"2":{"187":1}}],["一是看潜在的回复者有多少",{"2":{"181":1}}],["一边用无意义的字面解释来答复你",{"2":{"179":1}}],["一些数据可能需要缓存",{"2":{"333":1}}],["一些关键操作通过",{"2":{"219":1,"220":1}}],["一些黑客觉得先谢了意味着事后就不用再感谢任何人的暗示",{"2":{"201":1}}],["一些热门软件的作者由于涌入其私人邮箱的大量不堪忍受的无用邮件而不再提供支持",{"2":{"181":1}}],["一些无法直接通过批量",{"2":{"177":1}}],["一些独特功能的来源",{"2":{"25":1}}],["一般是类或者方法",{"2":{"329":1}}],["一般而言",{"2":{"197":1}}],["一般来说实在太烂",{"2":{"208":1}}],["一般来说",{"2":{"181":1,"199":1}}],["一般我们推荐使用第一种",{"2":{"145":1}}],["一般情况下",{"2":{"19":1,"89":1,"105":1}}],["一直递归下去",{"2":{"102":1}}],["一致",{"2":{"99":1}}],["一对多映射处理器",{"2":{"173":1}}],["一对多分组",{"2":{"73":1}}],["一对多",{"0":{"40":1},"1":{"41":1,"42":1},"2":{"214":1,"290":1,"291":1,"292":1}}],["一对多装配操作处理器",{"2":{"38":1}}],["一对一分组",{"2":{"72":1,"73":1}}],["一对一",{"0":{"39":1},"2":{"138":1}}],["一对一装配操作处理器",{"2":{"38":1}}],["一个简单易用的关联字段填充框架",{"2":{"330":1}}],["一个类中可能会同时存在复数的装配操作与拆卸操作",{"2":{"281":1}}],["一个听起来权威的错误回复比没有还要糟",{"2":{"211":1}}],["一个真正的新手也许连怎么搜索或在哪找常见问题都不知道",{"2":{"211":1}}],["一个看见讨论串问题",{"2":{"202":1}}],["一个看起来像",{"2":{"185":1}}],["一个撸瑟",{"2":{"191":1}}],["一个黑客只需瞄一眼就能够立即明白你的环境和你遇到的问题",{"2":{"185":1}}],["一个好标题范例是目标",{"2":{"185":1}}],["一个有潜力能贡献社区经验的问题",{"2":{"179":1}}],["一个装配操作包含三个必要的属性",{"2":{"84":1}}],["一个数据源对应一个数据源容器",{"2":{"52":1,"280":1,"308":1,"316":1,"325":1}}],["一个属性对应多个数据源对象",{"2":{"40":1}}],["一个",{"2":{"38":1,"40":1,"73":1,"131":2,"209":1,"329":1}}],["一样",{"2":{"30":1,"53":1}}],["一级分类",{"2":{"23":3}}],["一节尝试在本地编写一个可运行的最小示例",{"2":{"334":1}}],["一节查看具体内容",{"2":{"280":1}}],["一节中手动填充部分内容",{"2":{"252":1}}],["一节中的键值解析策略部分",{"2":{"276":1}}],["一节中的",{"2":{"80":1,"113":1}}],["一节中包装类提取部分",{"2":{"77":1}}],["一节中执行器部分内容",{"2":{"0":1,"129":1,"152":1}}],["一节",{"2":{"13":1,"26":1,"42":1,"45":1,"56":1,"74":1,"75":1,"84":1,"86":1,"89":1,"91":1,"92":1,"110":2,"134":1,"138":1,"150":1,"151":2,"153":1,"160":1,"245":1,"248":1,"250":1,"251":1,"252":1,"255":3,"259":3,"263":1,"275":1,"276":2,"277":1,"284":1,"285":2,"289":1,"295":1,"308":1,"316":1,"325":1}}],["将枚举的",{"2":{"332":1}}],["将性别枚举按编码分组",{"2":{"331":1}}],["将字典编码转为字典值",{"2":{"331":1}}],["将字符串集合拼接为你所需的字符串格式",{"2":{"143":1}}],["将字符串按分隔符拆分",{"0":{"93":1}}],["将配置引入",{"2":{"307":1}}],["将容器注册到全局配置对象",{"2":{"280":1}}],["将它们组合到一起",{"2":{"272":1}}],["将订单类型编码转为订单类型值",{"2":{"271":1,"272":1,"273":2}}],["将所有的配置都集中到一个注解里",{"2":{"260":1}}],["将所有的嵌套对象展开",{"2":{"100":1}}],["将从目标对象中提取",{"2":{"230":1}}],["将从用户指定的",{"2":{"55":1}}],["将接受单个参数并返回单个对象的方法作为数据源容器时",{"2":{"229":1}}],["将mappingtype枚举中的",{"2":{"226":1}}],["将基于同一数据源的操作分为多个小任务",{"2":{"226":1}}],["将启用框架的方式从注解改为",{"2":{"225":1}}],["将更好的支持处理",{"2":{"217":1}}],["将更有可能得到解答",{"2":{"179":1}}],["将starter模块中的部分组件功能分离为核心模块中的独立组件",{"2":{"215":1}}],["将student",{"2":{"132":2}}],["将来其他人可以通过网页搜索找到你的问题和答案",{"2":{"184":1}}],["将员工集合中的员工名称映射到",{"2":{"173":1}}],["将指定部门下所有的员工名称映射到",{"2":{"173":1}}],["将自动在查询字段后面追加该外键字段",{"2":{"171":1}}],["将自动为接口创建",{"2":{"30":1}}],["将使用被",{"2":{"169":1}}],["将对象序列化为",{"2":{"154":1}}],["将对象的",{"2":{"63":1}}],["将按照规定的顺序同步执行填充操作",{"2":{"152":1}}],["将注解分离至独立的",{"2":{"214":1}}],["将注解放到方法上",{"2":{"147":1}}],["将注解配置在类而非属性或方法上",{"2":{"92":1}}],["将当前是否有特定的数据源容器确认是否要应用对应的操作",{"2":{"120":1}}],["将默认使用它作为实际的映射策略",{"2":{"97":1,"142":1}}],["将尝试对所有的同名字段进行拷贝",{"2":{"92":1}}],["将属性值合成为参数对象",{"0":{"92":1}}],["将数据源对象中的",{"2":{"86":1}}],["将输入的",{"2":{"73":1}}],["将该方法",{"2":{"70":1}}],["将手机号中间四位替换为",{"2":{"65":1,"67":1}}],["将得到的",{"2":{"46":1}}],["将",{"2":{"33":1,"130":1,"139":1,"140":1,"158":1,"216":1,"227":1,"255":1,"256":1,"259":1,"260":1,"276":1,"285":1}}],["将根据你在方法上的操作配置对返回值进行填充",{"2":{"153":1}}],["将根据你的配置",{"2":{"92":1}}],["将根据目标对象是否属于指定类型确认是否要应用对应的操作",{"2":{"119":1}}],["将根据指定属性值是否为空确认是否要应用对应的操作",{"2":{"118":1}}],["将根据指定属性值是否等于期望值确认是否要应用对应的操作",{"2":{"117":1}}],["将根据指定表达式的执行结果确认是否要应用对应的操作",{"2":{"116":1}}],["将根据现有的条件自动查找最匹配的方法",{"2":{"71":1}}],["将根据",{"2":{"31":1}}],["将其",{"2":{"281":1}}],["将其配置为一个数据源",{"2":{"259":1}}],["将其转换为对应的表字段",{"2":{"172":1}}],["将其对应的",{"2":{"136":1}}],["将其设置为多例",{"2":{"95":1}}],["将其它参数作为数据源",{"0":{"33":1}}],["将其声明为操作者",{"2":{"29":1}}],["将其注册到全局配置类",{"2":{"1":1}}],["将无法正确解析到该注解",{"2":{"24":1}}],["将目标注解作为元注解",{"2":{"24":1}}],["将创建一个",{"2":{"21":1}}],["将会根据参数对象为填充操作找到对应的数据源对象进行属性映射",{"2":{"276":1}}],["将会删除所有以特定前缀开头的",{"2":{"178":1}}],["将会清除某个命名空间中的缓存",{"2":{"178":1}}],["将会在",{"2":{"159":1}}],["将会通过反射创建一个实例",{"2":{"95":1}}],["将会通过后处理器自动解析并注册",{"2":{"70":1}}],["将会优先从",{"2":{"95":1}}],["将会先过滤控制再做判断",{"2":{"78":1}}],["将会先将操作按数据源容器分组",{"2":{"6":1}}],["将会直接将待处理对象本身作为数据源",{"2":{"63":1}}],["将会使用首个匹配的工厂去生成代理方法",{"2":{"37":1}}],["将会使用",{"2":{"35":1}}],["将会分别解析每个参数的类型",{"2":{"34":1}}],["将会统一按照该配置对参数进行填充",{"2":{"34":1}}],["将会被适配为一个",{"2":{"33":1}}],["将会自动地完成填充",{"2":{"332":1}}],["将会自动加载相关的组件",{"2":{"155":1,"162":1}}],["将会自动进行类型转换",{"2":{"134":1}}],["将会自动注册",{"2":{"82":1}}],["将会自动尝试将",{"2":{"26":1}}],["将会自动获取并注册它",{"2":{"17":1}}],["将会自动从",{"2":{"15":1}}],["将会把要注册的容器对象包装并替换具备缓存功能的增强容器",{"2":{"8":1}}],["将每一组操作再拆分为更细粒度的任务",{"2":{"6":1}}],["oder>",{"2":{"270":1,"271":1}}],["o",{"2":{"208":2}}],["outlook",{"2":{"187":1}}],["out",{"2":{"159":1,"311":1,"312":1,"313":2,"319":1,"320":1,"321":2,"327":1,"328":1}}],["ognlexpressioncontext",{"2":{"158":1}}],["ognlexpressionevaluator",{"2":{"158":1}}],["ognl",{"2":{"116":1,"232":1,"234":1}}],["orm",{"2":{"285":1,"333":1}}],["org",{"2":{"185":3}}],["or",{"2":{"113":3,"121":1}}],["orderservice",{"2":{"270":1,"271":1}}],["orders",{"2":{"270":6}}],["order>",{"2":{"270":1}}],["ordertypename",{"2":{"273":1}}],["ordertypecode",{"2":{"270":2,"273":1}}],["ordertypemap",{"2":{"270":3}}],["ordertype>",{"2":{"270":1}}],["ordertype",{"2":{"269":2,"270":6,"271":5,"272":4,"273":3}}],["order注解对装配操作排序",{"2":{"214":1}}],["order注解",{"2":{"126":1}}],["order",{"2":{"73":4,"74":1,"126":1,"130":2,"218":1,"220":1,"226":1,"269":3,"270":7,"271":4,"272":6,"273":5,"277":1,"285":4}}],["orderedbeanoperationexecutor",{"2":{"32":1,"127":1,"129":2,"152":2,"160":1,"262":1,"283":1}}],["overflow",{"0":{"182":1},"2":{"182":1}}],["overwritenotnullmappingstrategy",{"2":{"97":1,"142":1,"222":1}}],["overwritemappingstrategy",{"2":{"97":1,"142":1}}],["override",{"2":{"9":3,"10":3,"13":1,"20":6,"23":3,"121":3,"143":1,"177":1,"248":1,"252":1,"277":1}}],["ok",{"2":{"77":1,"149":1,"265":1}}],["on",{"2":{"77":2,"149":4,"232":1,"234":1,"265":2,"266":1}}],["onotoonemethod",{"2":{"71":5,"74":1,"75":2}}],["only",{"2":{"60":1,"242":1}}],["onlyexplicitlyincluded",{"2":{"49":4}}],["onlypublic",{"2":{"48":1,"49":2}}],["one",{"2":{"48":4,"49":2,"58":3,"59":3,"72":2,"73":9,"173":1,"259":2,"260":2}}],["onetomanyassembleoperationhandler",{"2":{"38":1,"41":1,"42":1,"173":1,"290":1}}],["onetooneassembleoperationhandler",{"2":{"38":1,"39":2,"86":1}}],["of",{"2":{"35":2,"48":1,"58":1,"73":4,"74":1,"226":1,"270":1,"331":1}}],["objectmapper",{"2":{"154":1,"156":2,"157":7,"158":9,"159":4}}],["objectcontainer",{"2":{"80":1}}],["object",{"2":{"13":1,"20":3,"33":1,"121":1,"124":4,"143":3,"176":2}}],["object>",{"2":{"13":2,"20":2,"23":1,"29":1,"33":3,"52":1,"58":1,"67":1,"119":2,"143":1,"176":2,"263":1,"280":4}}],["object>>",{"2":{"5":1,"27":1,"32":1,"263":1}}],["objects",{"2":{"10":3,"67":1,"94":2,"252":2,"270":3}}],["op",{"2":{"208":2,"252":2}}],["op2",{"2":{"111":1,"114":2}}],["op1",{"2":{"111":3,"114":2}}],["opsforvalue",{"2":{"177":2}}],["opsforcontainer",{"2":{"52":1,"54":1,"68":1,"76":1,"83":1,"308":1,"313":1,"316":1,"321":1,"325":1,"328":1}}],["opsforcomponent",{"2":{"8":1,"20":1,"23":1,"65":1,"121":1,"143":1}}],["opsforproxy",{"2":{"30":1,"37":1}}],["operationhandler",{"2":{"329":2}}],["operations",{"2":{"281":1,"283":2}}],["operation",{"2":{"121":1,"281":1,"329":1}}],["operationannotationresolver",{"2":{"217":1}}],["operationannotationproxymethodfactory",{"2":{"37":1}}],["operationannotationhandler",{"2":{"21":1,"23":1,"282":1,"285":1}}],["operationawarebean",{"2":{"10":2,"80":1,"113":1,"248":2,"252":2}}],["operationexecutor",{"2":{"1":4,"6":2}}],["operatetemplate",{"2":{"35":6,"124":1,"145":1,"223":1,"252":2,"284":3}}],["operatemethod",{"2":{"35":1}}],["operate",{"2":{"5":1,"29":1,"31":1,"32":1,"33":3,"238":1,"239":1,"245":2,"246":2}}],["operatorproxyfactory中代理方法的生成也应当支持多种策略",{"2":{"217":1}}],["operatorproxymethodfactory",{"2":{"37":1}}],["operators",{"2":{"30":2}}],["operatorscan",{"2":{"30":2,"231":1}}],["operatorinterface",{"2":{"5":1,"27":2,"29":1,"30":3,"32":1,"33":2,"35":2,"36":1,"110":1,"119":2,"120":1}}],["operator",{"2":{"5":2,"27":3,"29":2,"30":2,"31":1,"32":2,"33":3,"35":4,"36":1,"110":1,"119":2,"120":1,"217":1,"225":1}}],["ramendik",{"2":{"213":1}}],["random",{"2":{"179":1}}],["root",{"2":{"208":2}}],["role",{"2":{"89":5,"123":4}}],["rtfm",{"0":{"204":1},"2":{"204":1,"208":1,"211":1}}],["rgb",{"2":{"194":2}}],["runwith",{"2":{"313":1,"321":1}}],["run",{"2":{"50":1,"60":1,"313":1,"321":1}}],["runtime",{"2":{"1":2,"23":1,"24":1,"121":1,"273":3}}],["r",{"2":{"26":1,"263":4}}],["release",{"2":{"306":2,"315":3}}],["readme",{"2":{"221":1}}],["read",{"2":{"204":1}}],["review",{"2":{"197":1}}],["reverse",{"2":{"48":1,"49":1}}],["re",{"2":{"185":2}}],["reporting",{"2":{"181":1}}],["requestparam",{"2":{"149":1,"266":1}}],["requestbody",{"2":{"149":3,"265":2,"266":1}}],["requiredargsconstructor",{"2":{"9":1,"51":2,"56":1,"58":1,"59":1,"61":2,"79":2,"143":1,"254":1,"256":1,"263":1,"275":2,"276":1,"277":1,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1}}],["restconroller",{"2":{"159":1}}],["responsebody",{"2":{"159":2}}],["resolveoperationsfromcurrentelement",{"2":{"153":2,"231":1}}],["resourcevalue",{"2":{"143":1}}],["results",{"2":{"263":2,"275":3}}],["result",{"2":{"77":5,"149":10,"150":1,"245":1,"265":7,"266":3}}],["resultkey",{"2":{"71":2,"72":1,"73":3,"75":1,"79":2,"260":1,"263":1}}],["resulttype",{"2":{"13":1,"17":1,"18":1,"71":2,"72":1,"73":3,"74":1,"75":1,"77":2,"79":2,"130":2,"260":1,"263":1,"271":2,"272":2,"285":2}}],["registerrepository",{"2":{"166":1}}],["registermapcontainer",{"2":{"308":1,"313":1,"316":1,"321":1,"325":1,"328":1}}],["registermodule",{"2":{"157":1,"158":1}}],["registermethodcontainers",{"2":{"76":1}}],["registerpropertymappingstrategy",{"2":{"143":1}}],["registervaluemapperprovider",{"2":{"65":1,"67":2}}],["registeroperatorproxymethodfactory",{"2":{"37":1}}],["registeroperationannotationhandler",{"2":{"23":1}}],["register",{"2":{"33":1,"165":2,"166":2,"223":1}}],["registeradapter",{"2":{"33":2}}],["registerconditionparser",{"2":{"121":1}}],["registercontainerprovider",{"2":{"54":1}}],["registercontainer",{"2":{"52":1,"68":1,"83":1,"280":1,"294":1}}],["registercontainerlifecycleprocessor",{"2":{"8":1}}],["registercachemanager",{"2":{"20":1}}],["retrun",{"2":{"82":1}}],["retentionpolicy",{"2":{"23":1,"24":1,"121":1,"273":3}}],["retention",{"2":{"23":1,"24":1,"121":1,"273":3}}],["return",{"2":{"9":1,"10":1,"13":2,"17":1,"18":1,"20":2,"23":4,"25":1,"35":2,"56":2,"65":1,"67":2,"82":1,"87":2,"94":1,"103":1,"121":3,"149":3,"159":1,"176":2,"252":1,"263":1,"265":2,"266":1,"271":1,"307":1,"312":1,"313":1,"320":1,"321":1,"332":1}}],["remove",{"2":{"19":1,"20":2,"178":1}}],["removecache",{"2":{"19":1,"178":2}}],["remark",{"2":{"10":1}}],["redistemplate",{"2":{"176":6,"177":3,"178":2}}],["rediscachemanager",{"2":{"176":2}}],["redis",{"0":{"174":1},"2":{"16":3,"174":2,"175":3,"176":1,"177":1,"178":2,"225":1}}],["refactor",{"2":{"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"226":1,"227":1,"230":1,"231":1,"234":1}}],["referencemappingstrategy",{"2":{"97":1,"142":2}}],["reference",{"2":{"97":1}}],["reflect",{"2":{"237":2}}],["reflectivedisassembleoperationhandler",{"2":{"107":2}}],["reflectivealiaspropertykeyresolver",{"2":{"94":2,"95":1}}],["reflectiveseparablepropertykeyresolver",{"2":{"93":1}}],["reflectivebeankeyresolver",{"2":{"92":1}}],["reflectivepropertyoperator",{"2":{"25":1,"158":1,"219":1,"220":1}}],["reflectasm",{"2":{"25":1,"237":1}}],["ref",{"2":{"5":1,"23":1,"24":2,"32":1,"41":1,"42":1,"44":2,"45":1,"46":1,"51":2,"52":1,"55":2,"61":3,"63":1,"74":1,"80":1,"86":1,"87":2,"88":1,"89":2,"90":1,"97":4,"123":3,"126":3,"131":4,"132":3,"133":1,"135":1,"136":1,"137":1,"138":3,"139":7,"140":1,"142":4,"143":2,"159":1,"160":1,"168":1,"173":1,"234":1,"255":1,"256":1,"259":3,"260":3,"272":2,"273":3,"275":1,"277":1,"281":1,"285":4,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1,"332":1}}],["rpc",{"2":{"6":1,"331":1,"333":1}}],["mergedannotation",{"2":{"285":1}}],["methodresultautooperatesupport",{"2":{"297":1}}],["methodresultautooperateadvisor",{"2":{"147":1,"297":1}}],["methodargumentautooperatesupport",{"2":{"297":1}}],["methodargumentautooperateadvisor",{"2":{"147":1,"297":1}}],["methodinvokercontainer",{"2":{"222":1}}],["methodcontainerfactory",{"2":{"70":2}}],["methodcontainerannotationprocessor",{"2":{"70":1}}],["methodhandler",{"2":{"222":1}}],["methodhandle",{"2":{"25":1}}],["methodhandlepropertyoperator",{"2":{"25":1}}],["method",{"2":{"23":1,"72":1,"79":3,"121":1,"243":1,"245":2,"271":2,"285":1}}],["multikeyassembleoperationhandler",{"2":{"214":1}}],["mutt",{"2":{"185":2}}],["milestone",{"2":{"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"225":1,"226":1,"227":1,"230":1,"231":1,"234":1}}],["milliseconds",{"2":{"1":1,"14":1,"15":1,"19":2,"177":1}}],["mikhail",{"2":{"213":1}}],["mitchel",{"2":{"213":1}}],["mime",{"2":{"187":2}}],["mv1005",{"2":{"185":3}}],["mget",{"2":{"177":3}}],["module",{"2":{"156":1,"157":1}}],["msg",{"2":{"77":1,"149":1,"265":1}}],["mpbasemappercontainerregister支持懒加载",{"2":{"216":1}}],["mp",{"2":{"53":1,"172":1,"209":1,"216":1,"234":1}}],["mybatisplus相关扩展的测试用例数据库更换为h2",{"2":{"217":1}}],["mybatisplusquerycontainerprovider",{"2":{"53":1,"164":1,"166":2}}],["mybatisplus",{"0":{"161":1},"1":{"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1},"2":{"53":1,"161":2,"214":1,"216":2,"285":1}}],["mybatis",{"2":{"25":1,"30":1,"162":3,"165":1,"173":1,"175":1,"223":1}}],["matic",{"2":{"208":2}}],["male",{"2":{"51":1,"61":2,"137":2,"254":1,"256":1,"331":1}}],["main",{"2":{"50":1,"60":1,"328":1}}],["manual",{"2":{"204":1}}],["manytomanyassemblehandler",{"2":{"93":2}}],["manytomanyassembleoperationhandler",{"2":{"38":1,"44":3,"45":1,"138":3,"143":2,"271":1,"272":1,"273":1,"291":1,"292":1}}],["many",{"2":{"73":3,"173":1}}],["manager",{"2":{"14":1}}],["max",{"2":{"23":1,"121":1}}],["mapbuilder",{"2":{"308":1,"313":1,"316":1,"321":1,"325":1,"328":1}}],["mapcontainer",{"2":{"33":1,"52":2,"280":5}}],["mapcachemanager",{"2":{"15":2,"16":1,"18":1}}],["mapped",{"2":{"226":1,"231":1}}],["mapperscan",{"2":{"30":1}}],["mapper",{"2":{"27":1,"66":1,"67":1,"164":1,"165":5,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"223":2}}],["mapping配置",{"2":{"215":1}}],["mappingtemplate",{"2":{"139":1}}],["mappingtemplates",{"2":{"23":1}}],["mappingtype",{"2":{"72":2,"73":14,"74":1,"173":2,"231":1,"259":1,"260":1,"276":1}}],["mapping",{"2":{"5":1,"6":3,"10":2,"23":2,"24":2,"27":1,"29":1,"32":1,"33":3,"41":1,"42":1,"44":2,"45":1,"46":1,"51":1,"52":1,"55":2,"61":2,"63":1,"73":4,"74":1,"79":2,"80":1,"86":1,"87":2,"88":1,"89":2,"90":1,"92":1,"93":1,"94":1,"97":1,"123":3,"126":3,"131":5,"132":3,"133":1,"135":2,"136":2,"137":1,"138":2,"139":7,"140":2,"142":1,"143":4,"159":1,"160":1,"168":1,"173":1,"222":1,"226":1,"255":1,"256":1,"259":3,"260":3,"271":1,"272":3,"273":5,"275":1,"276":2,"277":1,"281":1,"285":4,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1,"332":1}}],["mapstruct",{"2":{"27":1,"131":1}}],["mapaccessiblepropertyoperator",{"2":{"25":1}}],["mapmaker",{"2":{"18":1,"298":1}}],["map",{"2":{"5":1,"9":2,"13":2,"16":1,"17":1,"18":1,"20":11,"25":2,"27":2,"29":1,"32":1,"33":6,"40":1,"52":3,"56":1,"69":5,"71":1,"73":7,"82":1,"137":1,"177":1,"216":1,"217":1,"238":3,"255":1,"263":5,"270":6,"275":4,"276":1,"280":8,"294":1,"308":4,"313":3,"316":4,"321":3,"325":4,"328":3,"331":1}}],["io",{"2":{"333":1}}],["import",{"2":{"307":2,"313":1}}],["impl",{"2":{"15":1}}],["implements",{"2":{"9":1,"10":1,"13":1,"50":1,"56":1,"60":1,"82":1,"143":1,"177":1,"248":1,"252":1,"275":2,"277":1}}],["itemoforder",{"2":{"270":4}}],["itemmap",{"2":{"270":2}}],["itemids",{"2":{"270":2}}],["itemsoforder",{"2":{"270":2}}],["itemservice",{"2":{"270":1,"271":1,"272":1}}],["items",{"2":{"269":2,"270":2,"271":1,"272":1,"273":1}}],["item>",{"2":{"269":1,"270":3,"271":1,"272":2,"273":1}}],["item",{"2":{"269":2,"270":7,"271":7,"272":9,"273":7}}],["irc",{"0":{"183":1},"2":{"183":5}}],["ignore",{"2":{"86":1,"118":1,"247":1}}],["issues",{"2":{"214":1,"287":1}}],["isinvalid",{"2":{"19":1}}],["isnull",{"2":{"10":1,"94":2}}],["if",{"2":{"10":1,"67":1,"94":2,"248":1,"270":3}}],["in",{"2":{"168":1,"169":1,"170":1,"171":1,"172":1}}],["instance",{"2":{"158":3}}],["instanceof",{"2":{"119":1,"121":1,"252":1}}],["info",{"2":{"80":2}}],["includes",{"2":{"124":3,"151":2,"165":2,"250":1}}],["include",{"2":{"49":4}}],["includeclasses",{"2":{"30":1,"50":1,"60":1}}],["includepackages",{"2":{"30":1,"50":1,"60":1}}],["init",{"2":{"8":1,"9":2,"157":1}}],["interger>",{"2":{"263":2}}],["interger",{"2":{"263":3}}],["international",{"2":{"200":1}}],["internalproviderassembleannotationhandler",{"2":{"23":2}}],["interface",{"2":{"5":1,"23":1,"24":1,"27":1,"29":1,"32":1,"33":2,"35":1,"36":1,"67":1,"110":1,"119":2,"120":1,"121":1,"272":2,"273":3,"285":1}}],["integer>forlambda",{"2":{"90":1}}],["integer>formap",{"2":{"82":1}}],["integer>",{"2":{"33":1,"43":1,"52":1,"56":2,"73":6,"77":2,"82":3,"129":1,"130":2,"138":1,"149":3,"153":1,"255":1,"258":2,"259":2,"262":1,"263":1,"265":2,"266":1,"270":3,"271":1,"272":2,"280":5,"285":1,"331":1,"332":1}}],["integer",{"2":{"3":2,"6":3,"10":2,"23":2,"24":2,"33":3,"41":1,"42":1,"43":1,"45":2,"52":2,"55":2,"56":1,"61":2,"68":2,"73":3,"74":1,"77":1,"80":1,"82":1,"86":1,"87":2,"88":1,"89":1,"90":4,"93":2,"94":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"112":1,"113":2,"117":4,"120":1,"121":1,"123":2,"126":4,"130":1,"132":2,"133":2,"135":2,"139":3,"140":2,"149":1,"150":1,"151":1,"152":1,"159":4,"160":3,"167":2,"168":1,"169":1,"172":3,"173":1,"248":2,"249":3,"250":3,"251":4,"252":3,"254":2,"255":1,"256":2,"258":4,"259":2,"260":2,"262":3,"263":3,"265":1,"269":3,"270":3,"271":3,"272":2,"273":3,"274":1,"275":3,"276":2,"277":1,"280":4,"281":1,"285":2,"308":2,"309":1,"313":3,"316":2,"317":1,"321":3,"325":2,"326":1,"328":3,"331":2,"332":1}}],["int",{"2":{"1":2,"23":1,"58":1,"59":1,"121":1}}],["id=3",{"2":{"311":1,"319":1,"327":1}}],["id=2",{"2":{"311":1,"319":1,"327":1}}],["id=1",{"2":{"311":1,"319":1,"327":1}}],["id4",{"2":{"126":3}}],["id3",{"2":{"126":5,"138":1,"249":1,"250":1,"251":2,"252":6}}],["id2",{"2":{"126":5,"138":1,"249":1,"250":1,"251":1,"252":1}}],["id1",{"2":{"126":3,"138":1,"249":1,"250":1,"251":3,"252":1}}],["identify",{"2":{"90":2}}],["identity",{"2":{"9":1,"23":1,"56":1,"68":2}}],["idarray",{"2":{"43":1}}],["idlist",{"2":{"43":1}}],["idstr",{"2":{"43":1}}],["ids",{"2":{"40":2,"56":2,"73":3,"77":2,"82":1,"90":2,"93":1,"129":1,"130":4,"149":6,"153":1,"255":2,"258":2,"259":2,"262":1,"265":4,"266":2,"270":2,"271":2,"272":2,"275":4,"280":2,"285":1,"331":2,"332":2}}],["id",{"2":{"5":1,"6":2,"10":4,"23":3,"24":4,"27":1,"29":3,"32":1,"33":3,"36":2,"40":2,"41":2,"42":2,"52":1,"55":2,"61":1,"71":4,"72":1,"73":3,"74":2,"75":2,"79":4,"80":2,"86":4,"87":3,"88":3,"89":7,"90":2,"92":2,"94":8,"97":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"111":8,"114":5,"117":4,"120":1,"121":2,"123":5,"126":3,"130":2,"132":2,"133":2,"135":3,"137":1,"139":2,"140":2,"142":1,"153":2,"159":4,"167":1,"168":3,"169":4,"172":2,"173":4,"233":1,"234":1,"247":2,"255":2,"258":1,"259":2,"260":2,"262":4,"263":4,"269":5,"270":1,"271":2,"272":1,"273":1,"274":3,"275":1,"276":2,"277":2,"280":4,"281":2,"309":3,"313":2,"317":3,"321":2,"326":3,"328":2,"329":1,"331":1}}],["30",{"0":{"215":1,"219":1,"234":1}}],["3",{"0":{"5":1,"6":1,"10":1,"15":2,"19":1,"20":1,"31":1,"37":1,"43":1,"44":1,"45":1,"46":2,"50":1,"60":1,"67":1,"73":1,"88":1,"91":1,"92":1,"93":1,"94":2,"95":1,"104":1,"105":1,"107":1,"112":1,"118":1,"121":1,"130":1,"136":1,"149":1,"160":1,"166":1,"167":1,"168":1,"169":1,"170":2,"171":1,"177":1,"217":1,"223":1,"224":1,"239":1,"243":1,"245":1,"252":1,"256":1,"260":1,"272":1,"277":1,"281":1,"308":1,"317":1,"325":1,"333":1},"1":{"44":1,"45":1,"46":1,"92":1,"93":1,"94":1,"95":1,"168":1,"169":1,"170":1,"171":1},"2":{"6":1,"33":1,"44":2,"46":1,"65":1,"67":1,"78":2,"113":5,"128":1,"138":1,"143":1,"177":4,"179":1,"217":1,"218":1,"262":1,"270":1,"271":1,"272":1,"273":1,"280":1,"308":1,"311":1,"312":1,"313":3,"315":3,"316":1,"319":1,"320":1,"321":3,"325":1,"327":1,"328":2,"331":2}}],["从某种程度来说",{"2":{"331":1}}],["从缓存或",{"2":{"331":1}}],["从全局配置类获取执行器",{"2":{"283":1}}],["从全局配置类获取解析器",{"2":{"283":1}}],["从全局配置类中获取配置解析器",{"2":{"281":1}}],["从全局配置中获取",{"2":{"15":1}}],["从容器中得到按相应",{"2":{"280":1}}],["从容器中获取到对应的数据后",{"2":{"131":1}}],["从容器中获取对应的枚举实例",{"2":{"58":1}}],["从返回值中提取待填充数据时",{"2":{"232":1,"234":1}}],["从另一个角度来看",{"2":{"209":1}}],["从资深黑客那里得到的唯一严重缺陷反馈",{"2":{"201":1}}],["从开机",{"2":{"192":1}}],["从注解元素获取配置",{"0":{"153":1}}],["从数据源容器获得的一个键值将对应一批数据源对象",{"2":{"138":1}}],["从而实现级联填充的效果",{"2":{"261":1}}],["从而实现字段值的同步更新",{"2":{"63":1}}],["从而在后续调用时略过配置解析步骤",{"2":{"246":1}}],["从而有四种情况",{"2":{"167":1}}],["从而对条件取反",{"2":{"112":1}}],["从而保证它与数据源接受的参数类型一致",{"2":{"90":1}}],["从命名空间为",{"2":{"86":1}}],["从方法数据源容器调用适配方法以获取数据源",{"2":{"26":1}}],["从",{"2":{"4":1,"8":1,"10":1,"55":1,"78":1,"90":1,"121":1,"128":1,"143":1,"153":2,"187":1,"279":1,"285":2}}],["你所面临的场景越多样化",{"2":{"333":1}}],["你所付出的也是微不足道的",{"2":{"210":1}}],["你了解了如何基于自动填充",{"2":{"267":1}}],["你有一个方法",{"2":{"258":1}}],["你有一个",{"2":{"254":1}}],["你定义了一个根据",{"2":{"247":1}}],["你必须有清楚而详尽的缺陷说明文件作后盾",{"2":{"208":1}}],["你必须让我看看",{"2":{"192":1}}],["你完全有可能是第一个注意到被成千上万用户反复使用的系统调用与函数库文件有明显缺陷的人",{"2":{"208":1}}],["你还需要有一个操作执行器",{"2":{"283":1}}],["你还可以通过",{"2":{"333":1}}],["你还可以通过预置的组合注解方便地使用它们",{"2":{"18":1}}],["你还可以在注解中调整字段的映射规则",{"2":{"281":1}}],["你还得把它送到修车铺",{"2":{"210":1}}],["你还有什么要补充的吗",{"2":{"208":1}}],["你能在这儿找到用户群组的清单",{"2":{"208":1}}],["你能帮我吗",{"2":{"208":4}}],["你能做的最糟糕的事莫过于哀嚎你的遭遇",{"2":{"207":1}}],["你要的是",{"2":{"207":1}}],["你要求他们奉献的时间越少",{"2":{"196":1}}],["你该这么做",{"2":{"207":1}}],["你以本指南所描述的或类似的方式",{"2":{"207":1}}],["你偶尔真的会碰到无礼和无聊的言行",{"2":{"206":1}}],["你是指这两个中的哪一个吗",{"2":{"205":1}}],["你不应该因此不爽",{"2":{"204":1}}],["你不会想让这种事发生在自己身上的",{"2":{"181":1}}],["你自己去搜索这些信息比灌给你",{"2":{"204":1}}],["你应该先清除它",{"2":{"205":1}}],["你应该对他祖母般的慈祥表示感谢",{"2":{"204":1}}],["你应该去读一读",{"2":{"204":1}}],["你应该能提供相应位置的修正或替代文件",{"2":{"190":1}}],["你希望能看到你问题的人可能永远也看不到",{"2":{"200":1}}],["你会在下次提问时尝到甜头",{"2":{"202":1}}],["你会在回复中看到这点",{"2":{"190":1}}],["你会从中学到东西",{"2":{"198":1}}],["你越有可能从真正专业而且很忙的专家那里得到解答",{"2":{"196":1}}],["你越有可能得到实质性的帮助",{"2":{"179":1}}],["你很可能就自己找到了解决方法或权宜之计",{"2":{"189":1}}],["你很可能被忽略掉或者被看作失败者",{"2":{"181":1}}],["你得到有效的回答的机会和速度都会大大的提升",{"2":{"188":1}}],["你给了相应人员处置你邮件的选择",{"2":{"184":1}}],["你也不能强求技术支持总是免费的",{"2":{"210":1}}],["你也该有足够的智慧去",{"2":{"208":1}}],["你也该这样做",{"2":{"183":1}}],["你也可能被要求去爬爬论坛的旧文",{"2":{"204":1}}],["你也可以添加自己的注解处理器以便支持自定义注解",{"2":{"285":1}}],["你也可以",{"2":{"211":1}}],["你也可以设置更细粒度的条件",{"2":{"150":1}}],["你也可以按照选项式风格",{"2":{"260":1}}],["你也可以按照",{"2":{"147":1}}],["你也可以自定义一个条件注解",{"2":{"121":1}}],["你也可以选择令目标类实现",{"2":{"113":1}}],["你也可以选择不在方法上加任何注解",{"2":{"34":1}}],["你也可以将其放置在类上",{"2":{"110":1}}],["你也可以提供自己的实现类来替换默认的类型解析器",{"2":{"106":1}}],["你也可以提供一个无参构造方法",{"2":{"95":1}}],["你也可以像",{"2":{"55":1}}],["你也可以使用",{"2":{"36":1,"126":1,"132":1,"133":1,"135":1,"136":1}}],["你也可以实现",{"2":{"26":1,"95":1}}],["你也可以注册自己的缓存管理器",{"2":{"17":1}}],["你也可以引入",{"2":{"16":1}}],["你也可以通过让目标对象实现",{"2":{"252":1}}],["你也可以通过设置操作的应用条件来实现类似的效果",{"2":{"151":1}}],["你也可以通过",{"2":{"33":1,"45":1}}],["你也可以通过替换",{"2":{"24":1}}],["你也可以通过管理器获取具体的缓存对象",{"2":{"19":1}}],["你也可以通过获取",{"2":{"15":1}}],["你也可以通过配置文件配置要对哪些容器应用缓存",{"2":{"14":1}}],["你也可以直接在数据源的层面直接就处理好级联关系",{"2":{"263":1}}],["你也可以直接实现",{"2":{"65":1}}],["你也可以直接为已有的操作器添加额外的装饰器",{"2":{"25":1}}],["你也可以直接将注解加在配置类里的工厂方法上",{"2":{"13":1}}],["你也可以直接使用默认提供的组合注解快捷使用",{"2":{"3":1}}],["你也可以在任意注解或配置类中通过",{"2":{"307":1}}],["你也可以在方法参数上添加",{"2":{"147":1}}],["你也可以在类上声明",{"2":{"88":1}}],["你也可以在带有",{"2":{"13":1}}],["你也可以在手动填充时使用",{"2":{"4":1}}],["你再到特定相关主题的网站去找",{"2":{"182":1}}],["你的",{"2":{"255":1}}],["你的说明里应该包含你的操作步骤",{"2":{"193":1}}],["你的加入也有可能使情况走向极端",{"2":{"181":1}}],["你的数据源容器接受的",{"2":{"90":1}}],["你就知道了答案",{"2":{"208":1}}],["你就有完成它的能力和决心",{"2":{"179":1}}],["你就可以在",{"2":{"52":1}}],["你就可以基于方法填充任意类型的对象了",{"2":{"31":1}}],["你将会是自己去挣到一个答案",{"2":{"179":1}}],["你将该管理器直接交由",{"2":{"20":1}}],["你并没有",{"2":{"179":1}}],["你没有",{"2":{"179":1}}],["你声明的管理器的",{"2":{"177":1}}],["你仅需要让自己的实现类继承它并实现关键的抽象方法即可",{"2":{"121":1}}],["你仅需要将其交给",{"2":{"17":1}}],["你都快通过操作门面后手动注册容器",{"2":{"83":1}}],["你在抱怨前已经做了这些",{"2":{"190":1}}],["你在属性上添加了条件注解",{"2":{"114":1}}],["你在",{"2":{"79":1}}],["你同样可以通过在被",{"2":{"79":1}}],["你只需要把自定义的注解解析器交给",{"2":{"121":1}}],["你只需要填写足以区分出两个方法的前部分参数即可",{"2":{"71":1}}],["你只需要将自定义策略交由",{"2":{"98":1,"143":1}}],["你只需要将",{"2":{"56":1}}],["你只需要将该注解处理器交由",{"2":{"23":1}}],["你只需要与",{"2":{"26":2}}],["你只需要实现三个抽象方法即可",{"2":{"23":1}}],["你只需将其交给",{"2":{"8":1}}],["你直接基于",{"2":{"23":1}}],["你需要提前准备好一些数据源",{"2":{"308":1,"316":1,"325":1}}],["你需要提供精确有内容的信息",{"2":{"189":1}}],["你需要根据",{"2":{"258":1}}],["你需要根据你的需要定义一个注解",{"2":{"23":1}}],["你需要配置一个操作",{"2":{"254":1}}],["你需要的信息非常容易获得",{"2":{"204":1}}],["你需要通过它完成包括数据源注册在内的各种必要操作",{"2":{"279":1}}],["你需要通过自动注册",{"2":{"163":1}}],["你需要通过",{"2":{"159":1}}],["你需要通过全局配置获取该组件",{"2":{"121":1}}],["你需要触发操作的执行",{"2":{"144":1}}],["你需要将其注册到",{"2":{"121":1,"280":1}}],["你需要将其手动注册到全局配置中",{"2":{"54":1}}],["你需要自己避免循环引用",{"2":{"105":1}}],["你需要使用",{"2":{"71":1}}],["你需要跳过前五位",{"2":{"67":1}}],["你需要向",{"2":{"65":1}}],["你需要在",{"2":{"255":1,"259":2}}],["你需要在自己的配置类中基于",{"2":{"176":1}}],["你需要在启动类或配置类添加",{"2":{"30":1}}],["你需要在创建",{"2":{"17":1}}],["你需要实现",{"2":{"20":1,"121":1}}],["你总是可以通过容器的",{"2":{"19":1}}],["你可能得到像是建议采用另一个更合适的工具的回复",{"2":{"194":1}}],["你可能需要考虑事务对管道操作的一些影响",{"2":{"177":1}}],["你可能需要手动的刷新缓存",{"2":{"19":1}}],["你可以参考",{"2":{"307":1}}],["你可以参照着理解一下",{"2":{"73":1}}],["你可以选择手动填充或自动填充",{"2":{"310":1,"318":1}}],["你可以选择阅读后续章节",{"2":{"304":1}}],["你可以选择直接通过缓存管理器移除这个缓存",{"2":{"19":1}}],["你可以尝试在源码中",{"2":{"287":1}}],["你可以根据参数对象查询出相关的数据",{"2":{"276":1}}],["你可以根据情况自行选择",{"2":{"147":1}}],["你可以根据情况选择",{"2":{"35":1,"285":1}}],["你可以结合一个填充起来比较麻烦的的订单列表查询的例子",{"2":{"267":1}}],["你可以为每个操作指定生效条件",{"2":{"251":1}}],["你可以为三个操作分别指定其所属的分组",{"2":{"250":1}}],["你可以令你的待填充对象实现",{"2":{"248":1}}],["你可以向很多商业公司寻求帮助",{"2":{"210":1}}],["你可以问与",{"2":{"208":1}}],["你可以要求给点提示",{"2":{"198":1}}],["你可以不必在",{"2":{"153":1}}],["你可以不配置",{"2":{"153":1}}],["你可以不指定",{"2":{"80":1}}],["你可以定义一个策略",{"2":{"143":1}}],["你可以手动指定期望值类型",{"2":{"117":1}}],["你可以指定条件的类型为",{"2":{"113":1}}],["你可以指定批量大小",{"2":{"6":1}}],["你可以同时为操作应用多个条件",{"2":{"113":1}}],["你可以额外的为其指定一个",{"2":{"89":1}}],["你可以绑定到一个",{"2":{"88":1}}],["你可以",{"2":{"86":1}}],["你可以快速的使用",{"2":{"79":1}}],["你可以只填写方法名",{"2":{"71":1}}],["你可以将",{"2":{"307":1}}],["你可以将注解的",{"2":{"112":1}}],["你可以将注解声明在接口或抽象类上",{"2":{"71":1}}],["你可以将条件绑定到指定的操作上",{"2":{"111":1}}],["你可以将你的容器直接交给",{"2":{"82":1}}],["你可以将任何输入collection集合并返回map集合的",{"2":{"68":1}}],["你可以基于选项式风格的配置",{"2":{"271":1}}],["你可以基于更多的配置项和不同的声明方式来配置基于方法的填充操作",{"2":{"259":1}}],["你可以基于更多的配置项和不同的声明方式来配置基于枚举的填充操作",{"2":{"255":1}}],["你可以基于配置文件对",{"2":{"235":1}}],["你可以基于代理来实现自动填充方法的参数和返回值",{"2":{"146":1}}],["你可以基于注解完成一些自定义的逻辑",{"2":{"67":1}}],["你可以基于任何类型的数据源创建容器",{"2":{"52":1}}],["你可以基于它实现支持装配操作的注解处理器",{"2":{"23":1}}],["你可以基于它实现支持装配或拆卸操作的注解处理器",{"2":{"23":1}}],["你可以使用引入",{"2":{"174":1}}],["你可以使用",{"2":{"51":1,"61":1,"79":1,"86":1}}],["你可以使用组合注解机制优化它",{"2":{"24":1}}],["你可以用它实现类似的效果",{"2":{"46":1}}],["你可以直接阅读",{"2":{"334":1}}],["你可以直接升级",{"2":{"302":1}}],["你可以直接通过常量来引用策略",{"2":{"97":1}}],["你可以直接将其注册到",{"2":{"98":1}}],["你可以直接将其交给",{"2":{"95":1}}],["你可以直接将带有容器方法的类交由",{"2":{"70":1}}],["你可以直接在原配置的基础上添加注解",{"2":{"110":1}}],["你可以直接在类或方法上添加",{"2":{"71":1}}],["你可以直接在操作者接口中定义一个抽象方法",{"2":{"35":1}}],["你可以直接在实现了",{"2":{"13":1}}],["你可以直接参见文档",{"2":{"29":1}}],["你可以更灵活的添加一些自定义的逻辑",{"2":{"10":1}}],["你可以感受一下上述回调接口的使用场景",{"2":{"10":1}}],["你可以在避免",{"2":{"333":1}}],["你可以在后文",{"2":{"280":1}}],["你可以在里面指定过滤器或执行器",{"2":{"145":1}}],["你可以在注解中使用",{"2":{"131":1}}],["你可以在注解中通过",{"2":{"90":1}}],["你可以在手动填充和自动填充的情况下使用分组功能",{"2":{"124":1}}],["你可以在表达式中通过",{"2":{"116":1}}],["你可以在同一个键上声明多次装配操作",{"2":{"89":1}}],["你可以在方法上添加",{"2":{"75":1}}],["你可以在子类中绑定父类方法作为方法容器",{"2":{"71":1}}],["你可以在自定义的容器类上直接添加",{"2":{"56":1}}],["你可以在类或者方法上添加",{"2":{"13":1}}],["你可以在",{"2":{"3":1,"5":1,"39":1,"50":1,"55":1,"60":1,"77":1,"93":1,"99":1,"122":1}}],["你可以通过依赖注入获得它",{"2":{"279":1}}],["你可以通过依赖注入来获得操作者接口",{"2":{"30":1}}],["你可以通过下述代码基于默认配置手动创建一个全局配置对象",{"2":{"279":1}}],["你可以通过下述方式来配置如何生成参数对象",{"2":{"74":1}}],["你可以通过下述方式来指定如何生成参数对象",{"2":{"42":1}}],["你可以通过下述方法进行替换",{"2":{"1":1}}],["你可以通过编码的方式更灵活地排除一些操作",{"2":{"252":1}}],["你可以通过其他渠道获得帮助",{"2":{"210":1}}],["你可以通过手动代理实现类似的效果",{"2":{"146":1}}],["你可以通过它使用",{"2":{"145":1}}],["你可以通过它去创建所有类型的容器实例",{"2":{"69":1}}],["你可以通过在手动或自动装配时指定使用异步执行器来实现多线程填充的效果",{"2":{"303":1}}],["你可以通过在",{"2":{"123":1}}],["你可以通过在配置文件中配置枚举包路径",{"2":{"60":1}}],["你可以通过在配置文件中配置常量包路径",{"2":{"50":1}}],["你可以通过实现",{"2":{"98":1,"143":1}}],["你可以通过指定的",{"2":{"280":1}}],["你可以通过指定",{"2":{"91":1}}],["你可以通过类似的方法指定从返回的包装类中获取实际数据",{"2":{"77":1}}],["你可以通过添加自己的",{"2":{"70":1}}],["你可以通过配置文件或者注解配置扫描路径",{"2":{"50":1,"60":1}}],["你可以通过配置类重新配置执行器",{"2":{"1":1}}],["你可以通过操作门面手动创建代理对象",{"2":{"30":1}}],["你可以通过直接在接口抽象方法上添加",{"2":{"27":1}}],["你可以通过各种注解去声明操作配置",{"2":{"21":1}}],["你可以通过",{"2":{"6":1,"17":1,"18":1,"35":1,"51":1,"61":1,"92":1,"159":1,"280":1}}],["你可以通过改变执行器支持异步填充",{"2":{"0":1}}],["02",{"0":{"226":1,"227":1}}],["01",{"0":{"225":1,"226":1}}],["0版本后",{"2":{"222":1}}],["06",{"0":{"220":1,"232":1,"233":1,"234":1}}],["08",{"0":{"218":1,"220":1,"221":1,"230":1}}],["07",{"0":{"218":1,"219":1,"231":1}}],["05",{"0":{"217":1,"231":1,"232":1}}],["09",{"0":{"216":1,"222":1}}],["04",{"0":{"216":1,"230":1}}],["03",{"0":{"214":1,"215":1,"228":1,"229":1}}],["0086",{"2":{"67":4}}],["0",{"0":{"214":2,"215":1,"216":1,"217":1,"218":2,"219":2,"220":2,"221":1,"222":1,"223":1,"225":1,"226":1,"227":1,"230":1,"231":1,"234":1},"2":{"3":1,"10":2,"13":1,"42":1,"46":1,"50":2,"60":2,"61":1,"64":1,"65":1,"67":1,"74":1,"75":1,"77":1,"78":1,"79":1,"86":1,"91":1,"96":1,"97":1,"108":1,"112":2,"113":9,"126":1,"131":1,"132":1,"133":1,"135":1,"136":1,"141":1,"153":1,"174":1,"217":1,"218":4,"219":2,"220":4,"247":1,"251":1,"254":1,"256":1,"302":2,"331":1}}],["0l",{"2":{"1":1}}],["7",{"0":{"77":1,"140":1,"153":1,"230":1,"285":1},"2":{"3":1,"42":1,"65":1,"67":1,"74":1,"91":1,"131":1,"132":1,"133":1,"135":1,"136":1,"153":1,"179":1}}],["n",{"2":{"283":1}}],["nasa",{"2":{"200":1}}],["name=",{"2":{"311":3,"319":3,"327":3}}],["namesapce",{"2":{"55":1,"272":1,"273":1,"285":1}}],["namespace",{"2":{"9":1,"13":2,"14":4,"17":1,"18":1,"19":1,"23":2,"33":2,"48":1,"49":2,"52":1,"55":1,"58":1,"59":2,"68":3,"71":4,"72":1,"73":6,"74":1,"75":1,"99":2,"120":1,"177":2,"231":1,"272":5,"273":2,"275":2,"280":1,"281":1,"285":1,"308":1,"316":1,"325":1}}],["name3",{"2":{"46":1,"143":2,"249":2,"250":2,"251":1,"252":2}}],["name2",{"2":{"46":1,"143":2,"249":2,"250":2,"251":2,"252":2}}],["name1",{"2":{"46":1,"143":2,"159":2,"249":2,"250":2,"251":2,"252":2}}],["name",{"2":{"5":1,"6":2,"10":4,"20":4,"24":4,"27":1,"29":1,"32":1,"33":3,"39":1,"41":2,"42":1,"44":2,"46":3,"49":2,"52":2,"55":6,"59":1,"63":2,"74":1,"79":4,"80":2,"86":3,"87":3,"88":2,"89":3,"92":3,"93":2,"94":2,"99":2,"105":1,"110":8,"111":2,"112":1,"113":1,"114":1,"116":3,"117":2,"118":2,"123":7,"132":8,"133":8,"136":5,"138":4,"139":4,"140":6,"143":6,"159":3,"167":1,"168":3,"169":1,"170":2,"171":4,"172":8,"173":1,"248":4,"251":1,"258":1,"259":1,"260":1,"262":3,"269":1,"271":8,"272":8,"273":8,"274":2,"275":4,"276":2,"277":2,"281":5,"285":4,"309":4,"313":3,"317":4,"321":3,"326":4,"328":3,"329":1,"332":2}}],["nulix",{"2":{"209":2}}],["nullable",{"2":{"20":1,"121":1,"143":1,"277":1}}],["null",{"0":{"247":1},"2":{"13":1,"36":2,"71":1,"72":1,"78":6,"86":5,"96":1,"97":4,"113":1,"117":4,"118":2,"141":1,"142":4,"221":1,"247":7,"251":1}}],["number",{"2":{"65":1,"66":1,"67":2}}],["num",{"2":{"58":3,"59":2}}],["none与",{"2":{"231":1}}],["none",{"2":{"226":1}}],["nonnull",{"2":{"10":1,"20":1,"23":1,"67":2,"121":1,"252":1,"270":3}}],["no",{"0":{"302":1},"2":{"73":4,"221":1,"226":2,"231":1,"276":1,"302":2}}],["noscanenum",{"2":{"60":1}}],["noscanconstant",{"2":{"50":1}}],["nothing",{"2":{"3":2,"124":2,"147":3,"148":1,"150":1,"151":1,"152":1}}],["negate",{"2":{"112":2,"117":1,"121":3}}],["nestedfoo",{"2":{"140":3}}],["nested",{"2":{"110":1,"123":2,"140":3,"281":2}}],["nestedbean",{"2":{"10":7}}],["needscanenum",{"2":{"60":1}}],["needscanconstant",{"2":{"50":1}}],["new",{"2":{"1":7,"6":1,"8":1,"9":1,"13":1,"15":2,"17":1,"18":1,"19":2,"20":3,"23":1,"25":2,"27":1,"31":1,"35":6,"37":1,"48":1,"52":1,"59":1,"69":1,"76":1,"94":1,"121":2,"128":2,"146":1,"149":3,"158":8,"159":2,"176":2,"255":1,"263":2,"265":2,"266":1,"269":1,"275":1,"280":3,"283":1,"307":1,"311":3,"312":3,"313":6,"319":3,"320":3,"321":6,"327":3,"328":3}}],["nsetedbean",{"2":{"6":2}}],["50",{"2":{"185":1}}],["5",{"0":{"33":1,"75":1,"99":1,"114":1,"120":1,"138":1,"151":1,"173":1,"226":1,"247":1,"283":1,"310":1,"311":1,"312":1,"321":1,"327":1},"1":{"311":1,"312":1},"2":{"1":1,"6":1,"10":1,"67":1,"179":1,"247":1,"302":1,"315":3}}],["创建全局配置",{"0":{"324":1}}],["创建全局配置类",{"2":{"158":1}}],["创建",{"2":{"227":1}}],["创建自定义策略",{"2":{"143":1}}],["创建操作门面",{"2":{"54":1,"324":1,"328":1}}],["创建并注册数据源",{"2":{"308":1,"313":1,"316":1,"321":1,"325":1,"328":1}}],["创建并注册",{"0":{"54":1}}],["创建容器时可以指定",{"2":{"231":1}}],["创建容器",{"0":{"48":1,"58":1}}],["创建代理对象",{"0":{"30":1},"2":{"146":1}}],["创建组合注解",{"2":{"24":1}}],["创建一个基于",{"2":{"280":2}}],["创建一个默认配置类",{"2":{"279":1,"280":1,"281":1}}],["创建一个代理工厂",{"2":{"146":1}}],["创建一个全局配置类",{"2":{"146":1}}],["创建一个操作门面",{"2":{"65":1}}],["创建一个数据源容器",{"2":{"23":1}}],["创建一个缓存",{"2":{"19":2}}],["创建异步操作执行器",{"2":{"1":1,"6":1}}],["创建线程池",{"2":{"1":1}}],["bytebuddy",{"2":{"231":1}}],["bsd",{"2":{"208":1}}],["bigler",{"2":{"206":1}}],["bill比什么也不说要来的好",{"2":{"202":1}}],["bindmethodparamtypes",{"2":{"71":3,"72":1}}],["bindmethod",{"2":{"71":2,"72":1,"79":2,"271":2,"272":2,"276":1,"285":2}}],["bug",{"0":{"190":1},"2":{"181":2,"185":1,"188":2,"189":1,"190":5,"194":1,"197":2,"201":1,"219":1,"224":1,"228":1,"229":1,"232":1,"233":1}}],["builder",{"2":{"121":1,"227":1}}],["build",{"2":{"1":1,"23":1,"48":1,"58":1,"121":1,"308":1,"313":1,"316":1,"321":1,"325":1,"328":1}}],["bate",{"0":{"219":1}}],["bass",{"2":{"208":2}}],["base",{"2":{"123":2,"124":2,"151":2}}],["basemapper",{"2":{"53":1,"161":1,"163":1,"167":2}}],["baomidou",{"2":{"162":1}}],["boot",{"2":{"162":1,"217":1,"315":8}}],["boolean",{"2":{"10":1,"72":2,"79":1,"121":2,"252":1}}],["boundoperationids",{"2":{"121":1}}],["b",{"2":{"11":4,"26":2,"43":3,"71":1,"84":2,"90":2,"96":2,"97":3,"131":4,"132":1,"141":2,"142":3,"143":1,"209":1,"211":3,"281":2,"308":1,"311":1,"313":1,"316":1,"319":1,"321":1,"325":1,"327":1,"328":1,"331":2}}],["be",{"2":{"222":1}}],["beforeassembleoperation",{"2":{"10":1}}],["beanmethodcontainerregistrar",{"2":{"296":2}}],["beandefinition",{"2":{"30":1}}],["beanoperationparser",{"2":{"281":3,"282":1,"283":2,"287":1}}],["beanoperation",{"2":{"246":1,"329":1}}],["beanoperations",{"2":{"21":1,"23":2,"127":1,"281":2,"283":1,"287":1,"329":3}}],["beanoperationexecutor",{"2":{"0":1,"127":1,"144":1,"145":1,"283":3,"329":1}}],["beanname",{"2":{"17":1,"18":1,"79":2,"164":1,"177":1,"214":1,"260":1}}],["bean",{"2":{"6":9,"10":1,"13":1,"25":1,"30":1,"37":1,"55":1,"56":1,"79":1,"82":1,"94":5,"95":1,"167":2,"172":1,"176":2,"226":1,"243":1,"290":1,"291":1,"292":1,"296":1,"297":1,"307":2}}],["ds",{"2":{"275":4}}],["db",{"2":{"233":1,"234":1,"331":2,"333":1}}],["dtos",{"2":{"74":1,"276":1}}],["duplicatestrategy",{"2":{"59":3,"72":3}}],["dynamicsourceproxymethodfactory",{"2":{"37":1}}],["dynamiccontaineroperatorproxymethodfactory",{"2":{"33":1,"222":1}}],["debug",{"2":{"219":1,"220":1}}],["dependency>",{"2":{"155":6,"162":4,"175":4,"306":10,"315":12,"323":4}}],["dept>",{"2":{"263":3}}],["deptmapper",{"2":{"263":5}}],["deptservice",{"2":{"263":1}}],["deptnames",{"2":{"173":1}}],["deptempvo",{"2":{"173":2}}],["dept",{"2":{"130":3,"262":3,"263":11}}],["deptids",{"2":{"73":2}}],["deptid",{"2":{"73":2,"173":2}}],["departments",{"2":{"105":1}}],["department>",{"2":{"105":1}}],["department",{"2":{"102":3,"103":1,"104":1,"105":2,"106":1,"107":1}}],["demonstrating",{"2":{"197":1}}],["demo3application",{"2":{"50":2,"60":2}}],["demo",{"2":{"50":2,"60":2,"241":1,"242":1}}],["desensitization",{"2":{"65":1,"66":1,"67":2}}],["deserializer",{"2":{"38":1}}],["destroy",{"2":{"8":1,"9":2}}],["delegate",{"2":{"25":4}}],["decoratedpropertyoperator",{"2":{"25":3}}],["determinenamespace",{"2":{"23":1}}],["defaultcrane4jspringconfiguration",{"2":{"307":7,"313":1}}],["default",{"2":{"23":9,"121":4,"222":1}}],["def",{"2":{"15":2}}],["disorderedbeanoperationexecutor",{"2":{"283":1}}],["disassembleoperationhandler",{"2":{"107":1}}],["disassembleoperation",{"2":{"22":1,"281":1,"282":1}}],["disassembleannotationhandler",{"2":{"22":1}}],["disassemble",{"2":{"6":1,"10":1,"21":1,"22":1,"102":2,"103":1,"104":2,"105":1,"106":1,"107":1,"110":1,"122":1,"123":3,"130":2,"216":1,"271":1,"272":1,"273":1,"281":1,"288":1}}],["dictmapper",{"2":{"276":2}}],["dictquerydto>",{"2":{"276":1}}],["dictquerydto",{"2":{"276":4}}],["dictvo",{"2":{"275":2,"277":2}}],["dictvo>",{"2":{"275":2,"276":1}}],["dicts",{"2":{"275":5}}],["dictservice",{"2":{"9":3,"23":3,"275":6,"276":2,"277":3}}],["dictcontainerprovider",{"2":{"277":2}}],["dictcontainer",{"2":{"275":2}}],["dicttype",{"2":{"74":2,"276":2,"277":2}}],["dictitemqueryvo",{"2":{"74":1}}],["dictitemquerydto>",{"2":{"74":2}}],["dictitemquerydto",{"2":{"74":1}}],["dictitems",{"2":{"23":2}}],["dictids",{"2":{"23":2,"277":2}}],["dictid",{"2":{"23":1,"74":2,"276":2}}],["dict>>",{"2":{"275":2}}],["dict>builder",{"2":{"23":1}}],["dict>",{"2":{"23":4,"275":4}}],["dictannotationhandler",{"2":{"23":3}}],["dictname",{"2":{"23":2,"74":2}}],["dict",{"2":{"23":5,"74":1,"274":2,"275":17,"276":1,"277":4}}],["dictdo",{"2":{"9":1,"23":1}}],["dictdo>",{"2":{"9":1,"23":1}}],["databind",{"2":{"155":1}}],["datas",{"2":{"82":1,"280":1}}],["dataprovider",{"2":{"33":3,"68":5}}],["data",{"2":{"6":1,"10":1,"42":2,"45":1,"46":1,"51":1,"61":1,"74":2,"77":7,"79":2,"80":1,"92":2,"93":1,"94":1,"149":9,"159":1,"160":1,"175":3,"248":1,"254":1,"255":1,"256":1,"258":2,"259":1,"260":1,"265":7,"266":2,"269":2,"271":2,"272":2,"273":2,"274":1,"275":1,"276":2,"277":1,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1,"332":1}}],["doprocess",{"2":{"287":1}}],["domapping",{"2":{"143":1}}],["dosomething",{"2":{"35":2,"146":1}}],["doc",{"2":{"217":1,"218":1,"220":1,"221":1,"223":1,"230":1}}],["docs",{"2":{"214":1,"215":1}}],["documented",{"2":{"23":1,"24":1,"121":1}}],["docreatecache",{"2":{"20":2}}],["do",{"2":{"3":2,"71":2,"74":1,"75":1,"124":2,"129":1,"147":3,"148":1,"150":1,"151":1,"152":1,"177":1,"250":1,"258":2,"259":2,"262":1}}],["d",{"2":{"1":1,"71":2,"143":1,"192":1,"275":5}}],["persions",{"2":{"331":2}}],["personmapper",{"2":{"331":1,"332":1}}],["person",{"2":{"331":5,"332":1}}],["person>",{"2":{"331":1,"332":1}}],["p",{"2":{"205":1}}],["pc133",{"2":{"192":1}}],["plus",{"2":{"162":4,"165":1,"173":1,"175":1,"223":1}}],["post",{"2":{"181":1}}],["postmapping",{"2":{"149":3,"265":2,"266":1}}],["pool",{"2":{"1":1}}],["phone",{"2":{"65":4,"66":2,"67":8}}],["pa2007",{"2":{"192":1}}],["patch",{"2":{"187":1}}],["pathvariable",{"2":{"159":1}}],["pagebyids",{"2":{"149":1,"266":1}}],["pagedto",{"2":{"149":3,"266":3}}],["page",{"2":{"149":2,"266":2}}],["packages",{"2":{"50":1,"60":1,"241":2,"242":2,"246":2}}],["parse",{"2":{"281":1,"283":1}}],["parsertype",{"2":{"32":1}}],["parser",{"2":{"21":1,"281":2,"283":2}}],["parentdeptid",{"2":{"262":2}}],["partitioncontainerprovider",{"2":{"54":1}}],["parametersfillproxymethodfactory",{"2":{"37":1}}],["parameter",{"2":{"33":2}}],["printable",{"2":{"187":1}}],["println",{"2":{"159":1,"311":1,"312":1,"313":2,"319":1,"320":1,"321":2,"327":1,"328":1}}],["private",{"2":{"5":1,"6":8,"9":3,"10":7,"13":2,"20":1,"23":3,"24":4,"27":2,"29":1,"30":1,"32":1,"33":3,"35":3,"36":1,"39":2,"41":2,"42":4,"43":2,"44":4,"45":2,"46":2,"49":1,"51":4,"52":2,"55":4,"56":1,"58":3,"59":3,"61":8,"63":2,"66":1,"67":1,"74":4,"77":3,"79":8,"80":3,"86":2,"87":1,"88":2,"89":3,"90":2,"92":4,"93":2,"94":4,"97":2,"99":4,"102":2,"103":1,"104":2,"105":3,"106":2,"107":2,"110":3,"111":4,"112":1,"113":2,"114":2,"116":1,"117":4,"118":2,"120":1,"123":6,"126":4,"130":2,"132":5,"133":4,"135":4,"136":2,"137":1,"138":4,"139":10,"140":5,"142":2,"143":5,"149":3,"157":3,"159":2,"160":2,"167":3,"168":2,"169":1,"170":1,"171":1,"172":6,"173":2,"177":1,"254":3,"256":3,"258":2,"259":1,"260":1,"265":3,"269":9,"271":9,"272":8,"273":9,"279":1,"281":3,"285":6,"308":1,"309":2,"312":1,"313":4,"316":1,"317":2,"320":1,"321":4,"326":2,"328":2,"332":2}}],["preson>",{"2":{"331":1}}],["preocessfoo",{"2":{"153":1}}],["prefix",{"2":{"143":3}}],["predicate",{"2":{"124":1}}],["projectconfiguration",{"2":{"307":2}}],["projectlombok",{"2":{"306":1,"315":1,"323":1}}],["proxy",{"2":{"146":2}}],["provider2",{"2":{"68":2}}],["provider1",{"2":{"68":2}}],["prop2",{"2":{"42":2,"92":2}}],["prop1",{"2":{"42":2,"92":2}}],["propertymapping",{"2":{"143":2}}],["propertymappingstrategymanager",{"2":{"23":3}}],["propertymappingstrategy",{"2":{"23":3,"46":1,"97":3,"98":2,"142":1,"143":4,"222":1}}],["property",{"2":{"117":7,"118":1,"222":1}}],["propertyoperatorholder",{"2":{"25":1}}],["propertyoperator",{"2":{"25":6,"140":1,"222":1}}],["proptemplates",{"2":{"23":2,"139":2}}],["prop",{"2":{"23":1,"79":1,"130":1,"131":5,"132":2,"133":2,"135":2,"136":2,"249":3,"250":3,"251":2,"252":3,"271":2,"272":1,"287":1}}],["props",{"2":{"5":1,"6":3,"10":2,"23":3,"24":2,"27":1,"29":1,"32":1,"33":3,"41":1,"42":1,"44":2,"45":1,"46":1,"51":1,"52":1,"55":2,"61":2,"63":1,"74":1,"79":1,"80":1,"84":1,"86":1,"87":2,"88":1,"89":2,"90":1,"92":1,"93":1,"94":1,"97":1,"123":3,"126":3,"131":4,"132":2,"133":1,"135":1,"136":1,"138":2,"139":4,"140":1,"142":1,"143":2,"159":2,"160":1,"168":1,"173":1,"226":1,"271":1,"272":2,"273":3,"275":1,"276":1,"281":1,"285":2,"287":1,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1,"332":1}}],["protected",{"2":{"20":2,"23":3,"30":1,"121":2}}],["processnum",{"2":{"1":3}}],["processors",{"2":{"1":3}}],["public",{"2":{"3":2,"9":4,"10":3,"13":4,"17":1,"18":1,"20":6,"23":3,"24":1,"25":1,"30":1,"35":4,"42":2,"45":1,"46":1,"48":4,"49":4,"50":2,"51":2,"52":1,"56":3,"60":2,"67":1,"71":4,"73":6,"74":3,"75":1,"77":4,"80":1,"82":4,"87":2,"88":1,"90":1,"92":2,"93":1,"94":1,"103":1,"104":1,"110":2,"111":2,"114":1,"117":1,"118":1,"119":2,"120":1,"121":3,"124":2,"129":1,"130":2,"140":2,"143":2,"147":2,"148":1,"149":5,"150":1,"151":1,"152":1,"153":2,"159":1,"167":1,"172":1,"176":4,"177":2,"248":2,"250":1,"252":1,"254":1,"255":3,"256":1,"258":4,"259":3,"260":1,"262":1,"263":1,"265":4,"266":1,"269":2,"271":3,"272":5,"273":5,"274":1,"275":3,"276":3,"277":3,"285":1,"307":3,"309":1,"312":2,"313":5,"317":1,"320":2,"321":5,"326":1,"328":2,"332":2}}],["putifabsent",{"2":{"20":2}}],["put",{"2":{"1":1,"20":2,"69":1,"263":7,"275":1,"308":3,"313":3,"316":3,"321":3,"325":3,"328":3}}],[">",{"2":{"1":1,"9":2,"13":2,"15":1,"17":1,"18":1,"20":2,"23":2,"27":1,"31":1,"33":3,"40":1,"48":1,"65":3,"67":2,"68":3,"69":2,"80":3,"90":1,"126":3,"132":3,"133":2,"135":2,"136":2,"137":1,"138":2,"149":5,"155":2,"162":2,"175":2,"176":4,"177":1,"252":1,"255":1,"263":6,"265":2,"266":3,"270":7,"271":5,"272":5,"273":5,"275":7,"277":3,"280":3,"283":1,"285":4,"306":3,"315":3,"323":2,"331":2}}],["27",{"0":{"229":1}}],["25",{"0":{"222":1}}],["256mb",{"2":{"192":1}}],["21",{"0":{"221":1}}],["23",{"0":{"214":1,"227":1}}],["233",{"2":{"192":1}}],["2600",{"2":{"209":1}}],["2022",{"2":{"330":1}}],["2024",{"0":{"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1}}],["2023",{"0":{"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1}}],["2001",{"2":{"209":1}}],["200",{"2":{"77":1,"149":1,"265":1}}],["20",{"2":{"6":6,"192":3,"193":1}}],["2",{"0":{"2":1,"3":1,"4":2,"5":1,"9":1,"14":1,"16":1,"17":1,"18":2,"19":1,"23":1,"30":1,"34":1,"35":1,"36":2,"40":1,"41":1,"42":2,"45":1,"49":1,"55":1,"59":1,"64":1,"65":1,"66":2,"67":1,"72":1,"83":1,"87":1,"90":1,"93":1,"98":1,"103":1,"106":1,"111":1,"115":1,"116":1,"117":2,"118":1,"119":1,"120":1,"124":1,"127":1,"128":1,"129":2,"134":1,"135":1,"143":1,"146":1,"147":1,"148":2,"149":1,"150":1,"151":1,"152":1,"153":1,"156":1,"157":1,"158":2,"159":1,"163":1,"164":1,"165":2,"166":1,"169":1,"176":1,"216":1,"218":1,"219":1,"220":1,"221":1,"222":2,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":2,"230":1,"231":1,"232":1,"233":2,"234":1,"238":1,"240":1,"241":1,"242":2,"243":1,"244":1,"251":1,"255":1,"259":1,"263":1,"266":1,"270":1,"271":1,"276":1,"280":1,"307":1,"312":1,"316":1,"320":1,"324":1,"332":1},"1":{"3":1,"4":1,"5":1,"17":1,"18":1,"19":1,"35":1,"36":1,"41":1,"42":1,"65":1,"66":1,"67":1,"116":1,"117":1,"118":1,"119":1,"120":1,"128":1,"129":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"157":1,"158":1,"164":1,"165":1,"166":1,"241":1,"242":1,"243":1,"244":1},"2":{"1":2,"3":1,"10":1,"13":1,"33":1,"35":2,"42":1,"44":2,"46":2,"50":2,"51":1,"57":2,"58":2,"59":2,"60":2,"61":1,"64":1,"74":1,"75":1,"77":1,"78":1,"79":3,"86":1,"90":4,"91":1,"96":1,"97":1,"108":1,"112":3,"113":4,"126":1,"128":1,"130":1,"131":1,"132":1,"133":1,"135":1,"136":1,"138":1,"141":1,"143":1,"153":1,"154":2,"174":1,"177":4,"179":1,"209":1,"218":2,"219":1,"220":3,"247":1,"251":1,"255":2,"262":1,"269":1,"270":1,"271":1,"272":1,"273":1,"280":1,"302":2,"306":2,"308":1,"311":1,"312":1,"313":3,"316":1,"319":1,"320":1,"321":3,"325":1,"327":1,"328":2,"331":2}}],["环境不同",{"2":{"310":1,"318":1}}],["环境默认启用",{"2":{"230":1}}],["环境使用",{"0":{"305":1,"314":1,"322":1},"1":{"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1},"2":{"217":1,"218":1,"220":1}}],["环境使用时",{"2":{"13":1}}],["环境和",{"2":{"217":1,"218":1,"220":1}}],["环境可以直接从",{"2":{"145":1}}],["环境下",{"2":{"95":1}}],["环境下使用自动填充",{"2":{"231":1}}],["环境下使用",{"2":{"26":1}}],["环境则可以直接从",{"2":{"83":1}}],["环境或者非",{"2":{"83":1}}],["环境也可以直接从",{"2":{"76":1}}],["环境需要手动注册到",{"2":{"56":1}}],["环境",{"0":{"157":1,"158":1},"2":{"1":1,"8":1,"17":2,"18":1,"20":1,"24":1,"26":2,"30":3,"54":1,"86":1,"121":1,"296":2,"297":2}}],["环境中也提供了很好的支持",{"2":{"304":1}}],["环境中通过",{"2":{"302":1}}],["环境中组件的初始化时机",{"2":{"231":1}}],["环境中你也可以直接从",{"2":{"65":1}}],["环境中使用",{"2":{"26":1,"304":3}}],["环境中",{"2":{"1":1,"23":1,"24":1,"30":1,"37":1,"50":1,"54":1,"56":1,"60":1,"65":1,"70":1,"71":1,"76":1,"82":1,"83":1,"98":2,"99":1,"116":2,"121":1,"126":1,"143":1,"146":2,"150":2,"157":1,"158":1,"164":1,"165":1,"235":1,"279":1,"304":1,"310":1,"318":1,"323":1}}],["它就是",{"2":{"330":1}}],["它默认提供了三种实现",{"2":{"283":1}}],["它默认使用的线程池配置如下",{"2":{"1":1}}],["它依然从全局配置中获取",{"2":{"283":1}}],["它还可以基于枚举",{"2":{"280":1}}],["它从一开始就支持通过下级部门",{"2":{"263":1}}],["它返回一个",{"2":{"258":1}}],["它包含下述字段",{"2":{"258":1}}],["它怎么这么烂",{"2":{"209":1}}],["它不是这样运作的",{"2":{"207":1}}],["它不能工作会让你完全被忽略",{"2":{"197":1}}],["它是有益健康且合理的",{"2":{"207":1}}],["它是直截了当",{"2":{"206":1}}],["它是我们在日常中最经常使用的容器之一",{"2":{"70":1}}],["它多半会被忽略",{"2":{"187":1}}],["它也支持基于",{"2":{"160":1}}],["它也是最常用的注解处理器",{"2":{"23":1}}],["它同样从全局配置类中获取",{"2":{"281":1}}],["它同样也可做到类似的效果",{"2":{"153":1}}],["它同样能够生效",{"2":{"13":1}}],["它只代表在遍历",{"2":{"127":1}}],["它将被忽略",{"2":{"123":1}}],["它将会被标记为",{"2":{"19":1}}],["它将会覆盖",{"2":{"1":1}}],["它已经实现好了大部分逻辑",{"2":{"121":1}}],["它主要是作为一个区分标识",{"2":{"89":1}}],["它对应一个在类或类属性上声明的",{"2":{"84":1}}],["它通常与",{"2":{"73":1}}],["它通常用于存放系统启动后加载的配置项或字典项",{"2":{"69":1}}],["它用于指定如何对结果集按",{"2":{"73":1}}],["它用于管理一些创建过程较为复杂的数据源容器",{"2":{"53":1}}],["它基于注解处理器",{"2":{"70":1}}],["它使用起来会更加灵活",{"2":{"68":1}}],["它实际上是基于键值的内省",{"2":{"64":1}}],["它实现了",{"2":{"9":1}}],["它支持通过",{"2":{"57":1}}],["它支持配置过期时间和并发等级等各种功能",{"2":{"16":1}}],["它会更直观一些",{"2":{"55":1}}],["它可以是类",{"2":{"67":1}}],["它可以用于在某些场景下仅针对键值进行转换",{"2":{"64":1}}],["它可以满足绝大部分的需求",{"2":{"54":1}}],["它可以处理某些无法直接在类上配置注解的业务场景",{"2":{"27":1}}],["它的作用有点类似于",{"2":{"47":1}}],["它的结构为",{"2":{"23":1}}],["它被用于支持包括装配操作执行器",{"2":{"25":1}}],["它类似于",{"2":{"25":1}}],["它们通过独一无二的命名空间",{"2":{"308":1,"316":1,"325":1}}],["它们通常不直接使用",{"2":{"281":1}}],["它们通常分为两类",{"2":{"281":1}}],["它们有所区别",{"2":{"284":1}}],["它们主要的区别在于填充的触发时机",{"2":{"284":1}}],["它们实际上是通过注册在操作配置解析器",{"2":{"282":1}}],["它们并不复杂",{"2":{"278":1}}],["它们依然会分开成两个步骤分别查库",{"2":{"263":1}}],["它们是通过参与者积极而公开地执行来维持的",{"2":{"207":1}}],["它们按抽象程度从高到低分别为",{"2":{"23":1}}],["它们底层实际上依赖于解析器中对应的操作注解处理器",{"2":{"21":1}}],["它允许你使用基于",{"2":{"16":1}}],["它提个三个抽象方法",{"2":{"8":1}}],["scope>",{"2":{"306":2,"315":4}}],["scope>test",{"2":{"306":2,"315":4}}],["sd",{"2":{"263":4}}],["sdram",{"2":{"192":1}}],["shared",{"2":{"244":2}}],["shell",{"2":{"208":2}}],["s2464",{"2":{"209":2}}],["samba",{"2":{"208":1}}],["san",{"2":{"49":1}}],["slot",{"2":{"194":1}}],["slackware",{"2":{"188":1}}],["sql",{"0":{"172":1},"2":{"168":1,"169":3,"170":1,"171":1,"172":3,"208":2,"234":1}}],["system",{"2":{"159":1,"311":1,"312":1,"313":2,"319":1,"320":1,"321":2,"327":1,"328":1}}],["synthesizedannotation",{"2":{"24":1,"285":1}}],["swagger",{"2":{"147":1}}],["srpingutil",{"2":{"255":1}}],["sringutil",{"2":{"121":1,"143":1}}],["src3",{"2":{"44":1}}],["src2",{"2":{"44":1}}],["src1",{"2":{"44":1}}],["src",{"2":{"24":2,"41":1,"42":1,"44":1,"46":1,"55":2,"74":1,"86":1,"87":2,"88":1,"89":2,"90":1,"97":4,"123":3,"131":4,"132":3,"133":1,"135":1,"136":2,"137":1,"138":2,"139":7,"140":1,"142":4,"143":2,"168":1,"173":1,"259":3,"260":3,"271":1,"272":3,"273":3,"281":1,"285":4,"332":1}}],["spi",{"2":{"225":1}}],["space",{"2":{"200":1}}],["spel",{"2":{"99":1,"116":1,"150":2}}],["springrunner",{"2":{"321":1}}],["springjunit4classrunner",{"2":{"313":1}}],["spring环境下",{"2":{"220":1}}],["springframework",{"2":{"175":1,"306":2,"315":3}}],["springmvc",{"2":{"154":1,"159":1}}],["springaop",{"2":{"144":1,"284":3,"297":1}}],["springapplication",{"2":{"50":1,"60":1}}],["springboottest",{"2":{"321":1}}],["springboot3",{"0":{"299":1}}],["springboot",{"0":{"314":1},"1":{"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1},"2":{"59":1,"86":1,"219":1,"220":1,"226":2,"232":1,"234":1,"246":1,"304":2,"315":2}}],["springbootapplication",{"2":{"50":1,"60":1}}],["springconvertermanager",{"2":{"26":1}}],["springcache",{"2":{"13":1}}],["springutil",{"2":{"4":1,"8":1,"20":1,"23":1,"30":1,"37":1,"67":1,"128":1,"130":1,"145":1,"166":1,"252":1}}],["spring",{"0":{"157":1,"158":1,"305":1,"322":1},"1":{"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"323":1,"324":1,"325":1,"326":1,"327":1,"328":1},"2":{"1":2,"4":1,"7":1,"8":3,"13":1,"17":3,"18":3,"20":2,"23":2,"24":3,"25":1,"26":6,"30":6,"37":3,"47":1,"50":2,"53":2,"54":3,"55":1,"56":3,"60":2,"65":4,"70":2,"71":1,"76":5,"79":2,"82":3,"83":4,"95":4,"98":3,"99":2,"108":1,"116":2,"121":4,"126":1,"128":1,"143":3,"144":1,"145":3,"146":3,"150":2,"157":3,"158":1,"159":1,"164":2,"165":2,"167":1,"175":1,"176":1,"214":1,"217":4,"218":3,"220":3,"225":1,"227":3,"230":1,"231":2,"235":1,"243":1,"255":1,"279":3,"285":1,"290":1,"291":1,"292":1,"296":3,"297":4,"304":5,"306":4,"307":5,"310":2,"315":3,"318":2,"323":1,"329":1}}],["skipqueryifkeycollisempty",{"2":{"72":1,"78":1}}],["skip",{"2":{"67":6}}],["substring",{"2":{"65":2,"67":3}}],["superclass",{"2":{"71":2}}],["super",{"2":{"20":1,"23":1,"121":1,"124":1,"182":1}}],["supportoperation",{"2":{"10":1,"252":1}}],["softconcurrentmap",{"2":{"231":1}}],["softconcurrentmapcachemanager",{"2":{"18":1}}],["sources",{"2":{"275":4}}],["sourcevalue",{"2":{"143":2}}],["source",{"2":{"143":1}}],["some",{"2":{"82":1}}],["something",{"2":{"19":1,"71":2,"74":1,"75":1,"129":1,"177":1,"250":1,"258":2,"259":2,"262":1}}],["sorted",{"2":{"218":1,"220":1}}],["sort",{"2":{"23":3,"66":1,"67":1,"112":1,"113":5,"121":3,"126":5}}],["size",{"2":{"263":1,"275":1}}],["sig11",{"2":{"192":2}}],["simon",{"2":{"188":1}}],["simplename",{"2":{"49":1,"59":1}}],["simpleconvertermanager",{"2":{"26":1,"158":1}}],["simplecrane4jglobalconfiguration",{"2":{"1":2,"17":1,"98":2,"146":1,"158":2,"279":1,"280":1,"281":1}}],["simpleannotationfinder",{"2":{"23":1,"48":1,"59":1,"158":2}}],["singletonmap",{"2":{"15":1}}],["seconddepts",{"2":{"263":2}}],["seconddeptids",{"2":{"263":3}}],["seconddeptid",{"2":{"262":2,"263":3}}],["seconddeptname",{"2":{"262":2,"263":3}}],["seconds",{"2":{"13":3,"14":1,"75":1,"79":1}}],["search",{"2":{"204":1}}],["service",{"2":{"255":3,"312":5,"313":4,"320":5,"321":5}}],["serviceimpl",{"2":{"255":3}}],["servlet",{"2":{"231":1}}],["servletcontext",{"0":{"302":1},"2":{"221":1,"226":1,"302":2}}],["server",{"2":{"182":1}}],["serializable",{"2":{"121":2}}],["serializer",{"2":{"38":1}}],["selects",{"2":{"169":1,"171":1,"172":1}}],["select",{"2":{"168":1,"169":1,"170":1,"171":1,"172":1}}],["selectlistbyids",{"2":{"270":2}}],["selectlist",{"2":{"53":2,"270":1,"271":1}}],["sex",{"2":{"136":2}}],["setname",{"2":{"270":1,"275":1}}],["setnameformat",{"2":{"1":1}}],["setcustomertype",{"2":{"270":1}}],["setcustomername",{"2":{"270":1}}],["setcorepoolsize",{"2":{"1":1}}],["setordertype",{"2":{"270":1}}],["setgendername",{"2":{"331":1}}],["setgendercode",{"2":{"255":1}}],["setglobalprefix",{"2":{"176":1,"177":1,"178":1}}],["setenableclearcache",{"2":{"178":1}}],["setfoolist",{"2":{"124":1}}],["setignorenullkey",{"2":{"86":1}}],["set",{"0":{"302":1},"2":{"43":1,"71":2,"75":1,"221":1,"226":1,"231":1,"270":2,"302":2}}],["setpropertyoperator",{"2":{"25":1}}],["settype",{"2":{"270":1}}],["setter",{"2":{"25":1,"26":1,"159":1,"219":1,"220":1,"269":2,"287":1,"306":1,"309":1,"313":1,"315":1,"317":1,"321":1,"323":1,"326":1,"328":1}}],["setthreadnameprefix",{"2":{"1":1}}],["setbatchsize",{"2":{"1":1,"6":2}}],["setrejectedexecutionhandler",{"2":{"1":1}}],["setqueuecapacity",{"2":{"1":1}}],["setallowcorethreadtimeout",{"2":{"1":1}}],["setmaxpoolsize",{"2":{"1":1}}],["smartoperationawarebean",{"2":{"10":1,"80":1,"113":1}}],["stfw",{"0":{"204":1},"2":{"209":2}}],["studentteacherage",{"2":{"139":1}}],["studentteachername",{"2":{"139":2}}],["studentmappingtemplate",{"2":{"139":3}}],["studentclassname映射到studentvo",{"2":{"132":1}}],["studentclassname",{"2":{"132":3,"139":2}}],["student>",{"2":{"129":1,"255":1,"262":1}}],["studentvo",{"2":{"44":3,"132":5,"133":4,"135":4,"136":6,"137":1,"138":4,"139":3,"143":2}}],["studentname映射到studentvo",{"2":{"132":1}}],["studentname",{"2":{"24":2,"86":2,"87":2,"88":1,"132":3,"139":2}}],["student",{"2":{"24":4,"52":1,"73":1,"86":3,"87":5,"88":2,"126":2,"128":3,"129":1,"132":5,"133":4,"135":15,"139":2,"248":1,"254":3,"255":3,"256":2,"262":1}}],["station",{"2":{"200":1}}],["static",{"2":{"6":1,"10":1,"13":1,"20":1,"48":4,"49":4,"50":1,"51":3,"60":1,"61":1,"66":1,"67":1,"79":2,"139":1,"159":1,"160":1,"275":2,"276":1,"309":1,"312":1,"313":2,"317":1,"320":1,"321":2,"326":1,"328":2}}],["stack",{"0":{"182":1},"2":{"182":6}}],["starter",{"2":{"162":1,"217":1,"315":4}}],["standardannotation",{"2":{"23":5}}],["standardassembleannotationadapter",{"2":{"23":1}}],["standardassembleannotation",{"2":{"23":3}}],["strategy",{"2":{"222":2}}],["strict",{"2":{"119":2}}],["stringkeyrediscachemanager",{"2":{"176":4,"177":4,"178":2}}],["stringredistemplate",{"2":{"176":2}}],["string>create",{"2":{"308":1,"313":1,"316":1,"321":1,"325":1,"328":1}}],["string>>",{"2":{"263":1}}],["string>",{"2":{"9":2,"13":2,"15":2,"17":1,"18":1,"19":3,"40":1,"41":1,"42":1,"44":1,"48":1,"58":1,"59":1,"68":1,"69":1,"71":2,"75":1,"118":1,"137":1,"138":1,"143":3,"173":1,"176":1,"177":4,"178":1,"275":3,"308":1,"313":1,"316":1,"321":1,"325":1,"328":1}}],["string",{"2":{"5":1,"6":3,"9":3,"10":4,"13":1,"20":2,"23":9,"24":2,"27":1,"32":1,"39":2,"42":3,"43":1,"44":3,"45":1,"46":3,"48":3,"49":3,"50":1,"51":4,"52":1,"55":2,"56":1,"58":1,"59":1,"60":1,"61":3,"63":2,"65":2,"66":1,"67":3,"69":1,"73":3,"74":4,"77":1,"79":4,"80":2,"82":1,"86":1,"87":1,"88":1,"89":2,"90":5,"92":4,"93":2,"94":4,"97":2,"99":4,"105":1,"110":2,"111":4,"114":2,"116":1,"117":2,"118":1,"121":1,"123":3,"124":3,"132":3,"133":2,"136":2,"137":2,"138":4,"139":6,"140":2,"142":2,"143":5,"149":1,"159":1,"167":1,"168":1,"170":1,"171":1,"172":3,"176":2,"177":2,"225":1,"248":2,"249":3,"250":3,"251":3,"252":4,"254":2,"255":1,"256":2,"258":4,"259":2,"260":2,"262":3,"263":6,"265":1,"269":5,"270":2,"271":5,"272":5,"273":5,"274":2,"275":6,"276":3,"277":2,"281":1,"285":4,"309":1,"313":1,"317":1,"321":1,"326":1,"328":2,"332":1}}],["stream",{"2":{"9":1,"13":1,"17":1,"18":1,"23":1,"33":1,"40":1,"56":1,"68":1,"80":1,"90":1,"143":1,"255":1,"263":5,"270":6,"275":6,"277":1,"280":1,"331":1}}],["athlon",{"2":{"209":1}}],["acccessor",{"2":{"248":1,"254":1,"255":1,"256":1}}],["accept",{"2":{"143":1}}],["acmecorp",{"2":{"208":2}}],["amd",{"2":{"192":1}}],["amp",{"0":{"281":1},"2":{"117":4,"138":1,"290":1,"291":1,"292":1}}],["age",{"2":{"167":1,"169":1,"171":1,"172":6,"248":3,"258":1,"259":1,"260":1}}],["aop",{"2":{"146":1,"234":1,"255":2,"259":2,"262":1,"312":1,"315":1,"320":1}}],["and",{"2":{"113":2,"121":2}}],["annotationfinder",{"2":{"23":3,"24":1,"121":3}}],["annotation",{"2":{"23":14,"24":1,"121":7,"214":1}}],["annotated",{"2":{"60":1,"242":1}}],["annotatedenum",{"2":{"58":1,"59":1}}],["annotatedelement",{"2":{"21":2,"23":2,"67":1,"121":1,"329":1}}],["annotatedmethod",{"2":{"13":2,"17":2,"18":2}}],["address",{"2":{"258":1,"259":1,"260":1}}],["addpropertymappingstrategy",{"2":{"98":1}}],["admin",{"2":{"123":5}}],["adapterregister",{"2":{"33":1}}],["apollo",{"2":{"192":1}}],["applicationrunner",{"2":{"50":1,"60":1,"221":1}}],["api",{"2":{"49":1,"51":1,"59":1,"61":1,"72":1,"79":1,"83":1,"145":1,"177":1,"215":1,"218":1,"231":1,"234":1,"284":1,"333":1}}],["alpha",{"0":{"217":1,"218":1},"2":{"218":1}}],["allargsconstructor",{"2":{"77":1,"149":1,"265":1}}],["alldicts",{"2":{"9":4}}],["alldictcontainer",{"2":{"9":1}}],["alert",{"2":{"59":1,"72":1}}],["alias",{"2":{"39":1,"63":3,"99":2}}],["artifactid>aspectjweaver",{"2":{"315":1}}],["artifactid>lombok",{"2":{"306":1,"315":1,"323":1}}],["artifactid>junit",{"2":{"306":1}}],["artifactid>jackson",{"2":{"155":2}}],["artifactid>spring",{"2":{"175":1,"306":2,"315":3}}],["artifactid>mybatis",{"2":{"162":1}}],["artifactid>",{"2":{"155":3,"162":2,"175":2,"306":5,"315":6,"323":2}}],["artifactid>crane4j",{"2":{"155":1,"162":1,"175":1,"306":1,"315":1,"323":1}}],["arraylsit",{"2":{"263":1}}],["arraylist",{"2":{"27":1,"31":1,"283":1}}],["arrays",{"2":{"128":1,"177":4,"255":1,"280":1,"311":1,"312":1,"313":2,"319":1,"320":1,"321":2,"327":1,"328":1}}],["argument",{"2":{"245":1}}],["argautooperateproxymethodfactory",{"2":{"37":1}}],["argautooperate",{"2":{"36":1,"37":1,"124":1,"147":1}}],["args",{"2":{"13":2,"17":2,"18":2,"50":2,"60":2,"71":2,"75":1,"328":1}}],["autoconfigure",{"2":{"315":1}}],["auto",{"2":{"165":2,"223":1,"245":2}}],["autowried",{"2":{"27":1,"33":1,"157":2}}],["autowired",{"2":{"23":1,"30":1,"35":2,"279":1,"308":1,"312":1,"313":2,"316":1,"320":1,"321":2}}],["autooperateannotatedelementresolver",{"2":{"223":1}}],["autooperatemodule",{"2":{"158":2}}],["autooperateproxy",{"2":{"146":3}}],["autooperate",{"0":{"36":1,"297":1},"2":{"3":2,"32":1,"36":4,"37":1,"124":3,"129":2,"130":2,"147":5,"148":1,"149":3,"150":1,"151":1,"152":2,"153":3,"159":2,"160":2,"219":1,"220":1,"222":1,"223":1,"225":1,"230":1,"231":2,"232":1,"234":1,"250":1,"255":1,"259":1,"262":2,"265":2,"266":1,"271":1,"284":2,"312":1,"313":1,"320":1,"321":1,"332":1}}],["abstractassembleoperationhandler",{"2":{"287":1}}],["abstractcondition",{"2":{"121":2}}],["abstractconditionparser",{"2":{"121":2}}],["abstractcacheablepropertyoperator",{"2":{"218":1,"220":1}}],["abstractcacheobject",{"2":{"20":3}}],["abstractcachemanager",{"2":{"20":4}}],["abstractinternalproviderassembleannotationhandler",{"2":{"23":1}}],["abstractstandardassembleannotationhandler",{"2":{"23":1}}],["abstractstandardoperationannotationhandler",{"2":{"23":1}}],["a",{"2":{"11":4,"24":2,"26":2,"43":3,"71":4,"84":2,"90":1,"96":2,"97":2,"131":4,"132":1,"141":2,"142":2,"143":1,"209":1,"211":3,"281":2,"308":1,"311":1,"313":1,"316":1,"319":1,"321":1,"325":1,"327":1,"328":1,"331":2}}],["afteroperationscompletion",{"2":{"10":1,"248":1}}],["aspectj",{"2":{"315":1}}],["asm",{"2":{"237":2}}],["asmreflectivepropertyoperator",{"2":{"25":1}}],["ascii",{"2":{"187":1}}],["aslist",{"2":{"128":1,"177":4,"255":1,"280":1,"311":1,"312":1,"313":2,"319":1,"320":1,"321":2,"327":1,"328":1}}],["assembling",{"2":{"86":1,"118":1,"247":1}}],["assembleitem",{"2":{"273":2}}],["assemblecustomer",{"2":{"273":2}}],["assembleconstant",{"2":{"22":1,"51":2,"227":1,"285":1}}],["assembleconstantannotationhandler",{"2":{"22":1}}],["assembleordertype",{"2":{"273":2}}],["assembleopeartionhandler",{"2":{"230":1}}],["assembleoperatehandler",{"2":{"38":2}}],["assembleoperationhandler",{"2":{"91":1,"138":1}}],["assembleoperation",{"2":{"22":6,"167":1,"252":1,"281":1,"282":1,"287":1}}],["assembledb",{"2":{"234":1}}],["assemble注解指定了数据源容器和字段映射",{"2":{"132":1}}],["assemble注解的sort属性优先于spring的",{"2":{"126":1}}],["assemblexxx",{"2":{"34":1,"287":1,"290":1,"291":1,"292":1}}],["assemblestudent",{"2":{"24":3}}],["assemblekey",{"2":{"22":1,"66":2,"67":2,"285":1}}],["assemblekeyannotationhandler",{"2":{"22":1,"65":3,"67":2}}],["assemblemethod",{"2":{"22":1,"79":7,"222":1,"260":1,"271":2,"276":1,"285":2}}],["assemblemethodannotationhandler",{"2":{"22":1}}],["assemblempannotationhandler",{"2":{"22":1,"167":1}}],["assemblemp",{"2":{"21":1,"22":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":2,"216":1,"285":1}}],["assembleannotationhandler",{"2":{"22":1}}],["assembleenumannotationhandler",{"2":{"22":1}}],["assembleenum",{"2":{"21":1,"22":1,"51":1,"57":1,"61":3,"217":1,"221":2,"225":1,"255":2,"256":1,"271":1,"285":1,"332":1}}],["assemble",{"2":{"5":1,"6":3,"10":2,"21":1,"22":1,"24":2,"27":2,"29":2,"32":1,"33":3,"39":2,"41":1,"42":1,"44":2,"45":1,"46":1,"52":2,"55":3,"63":1,"74":1,"80":2,"84":4,"85":1,"86":2,"87":2,"88":1,"89":4,"90":1,"92":1,"93":1,"94":1,"97":1,"99":3,"110":3,"111":4,"112":1,"113":1,"114":2,"116":1,"117":4,"118":2,"119":2,"120":1,"122":1,"123":4,"126":5,"130":1,"131":1,"132":2,"133":2,"135":2,"136":2,"137":1,"138":2,"139":4,"140":1,"142":1,"143":2,"153":2,"159":1,"160":1,"216":1,"222":1,"227":1,"249":3,"250":3,"251":2,"252":3,"259":1,"262":3,"263":1,"272":4,"273":3,"275":1,"277":1,"281":1,"285":1,"309":1,"313":1,"317":1,"321":1,"326":1,"328":1}}],["as",{"2":{"46":1,"169":2,"171":2,"172":4}}],["asyncautooperate",{"2":{"3":1}}],["async",{"2":{"1":1}}],["asyncbeanoperationexecutor",{"2":{"0":1,"1":2,"3":1,"5":1,"6":2,"152":2,"222":1,"230":1,"283":1,"293":1}}],["availableprocessors",{"2":{"1":2}}],["核心数",{"2":{"1":1}}],["ci",{"2":{"214":1}}],["chain",{"2":{"239":1,"248":1,"254":1,"255":1,"256":1}}],["chainaccessiblepropertyoperator",{"2":{"25":1,"140":2}}],["chore",{"2":{"214":1}}],["childclass",{"2":{"71":1}}],["cnname",{"2":{"61":3}}],["cn",{"2":{"30":2,"50":1,"60":1,"214":1,"222":2,"241":1,"242":1,"246":1,"287":1}}],["custommappingstrategy",{"2":{"143":3}}],["custommethodfactory",{"2":{"37":1}}],["custompropertymappingstrategy",{"2":{"98":1,"143":1}}],["custompropertyoperator",{"2":{"25":3}}],["customstrategy",{"2":{"98":2,"143":2}}],["customermap",{"2":{"270":1}}],["customers",{"2":{"270":2}}],["customerservice",{"2":{"40":1,"270":1,"271":3,"272":1,"285":6}}],["customer>",{"2":{"270":2,"272":1,"285":1}}],["customertype",{"2":{"269":1,"271":3,"272":3,"273":3,"285":8}}],["customername",{"2":{"269":1,"271":3,"272":3,"273":3,"285":8}}],["customernames",{"2":{"41":3,"42":2}}],["customerids",{"2":{"270":2}}],["customerid",{"2":{"269":2,"270":2,"271":1,"272":1,"273":1,"285":4}}],["customerquerydto",{"2":{"42":2,"74":1}}],["customervo",{"2":{"41":2,"42":1}}],["customerdo",{"2":{"40":1,"41":1}}],["customercontainer",{"2":{"40":1}}],["customer",{"2":{"40":2,"41":1,"42":1,"270":6,"271":3,"272":5,"273":3,"285":8}}],["customcachemanager",{"2":{"20":3}}],["customcacheobject",{"2":{"20":6}}],["customcontainer",{"2":{"13":1,"177":7}}],["custom",{"2":{"13":1,"99":2}}],["customlifecycleprocessor",{"2":{"8":1}}],["c",{"2":{"11":2,"43":3,"71":4,"143":1,"209":2,"211":2,"308":1,"311":1,"313":1,"316":1,"319":1,"321":1,"325":1,"327":1,"328":1}}],["clear",{"2":{"9":1,"19":1,"20":2,"178":2}}],["classes",{"2":{"321":1}}],["classbasedautooperateannotatedelementresolver",{"2":{"158":1}}],["classname",{"2":{"132":5,"139":4}}],["classid",{"2":{"73":1}}],["class",{"2":{"3":3,"4":1,"5":1,"6":2,"8":1,"9":1,"10":2,"13":3,"17":1,"18":1,"20":3,"23":4,"24":2,"30":6,"32":2,"33":1,"35":2,"36":2,"37":1,"39":2,"41":2,"42":4,"44":2,"45":2,"46":1,"48":3,"49":2,"50":4,"51":2,"52":1,"55":2,"56":1,"58":2,"59":2,"60":4,"61":2,"63":1,"65":1,"66":1,"67":3,"71":5,"73":2,"74":4,"75":1,"77":3,"79":6,"80":1,"82":2,"86":1,"87":1,"88":1,"89":1,"90":2,"92":3,"93":3,"94":2,"97":1,"99":2,"102":2,"103":2,"104":2,"105":2,"106":1,"107":3,"110":3,"111":2,"112":1,"113":2,"114":1,"116":1,"117":5,"118":1,"119":2,"121":3,"123":3,"124":2,"126":1,"128":1,"129":2,"130":6,"132":2,"133":2,"135":2,"136":2,"137":1,"138":2,"139":4,"140":3,"142":1,"143":4,"145":1,"147":3,"149":3,"150":1,"151":1,"152":4,"159":3,"160":4,"166":1,"167":1,"168":1,"172":2,"173":2,"176":2,"177":1,"246":1,"248":1,"249":1,"250":2,"251":2,"252":2,"254":1,"255":5,"256":2,"258":3,"259":4,"260":1,"262":2,"263":2,"265":2,"266":1,"269":2,"271":9,"272":6,"273":4,"274":1,"275":3,"276":5,"277":2,"280":1,"281":4,"283":3,"285":3,"307":3,"309":1,"312":2,"313":6,"317":1,"320":2,"321":6,"326":1,"328":2,"332":2}}],["cast",{"2":{"222":1}}],["case",{"2":{"197":1}}],["cannot",{"2":{"222":1}}],["category",{"2":{"23":5}}],["cachetest",{"2":{"177":1}}],["cachename",{"2":{"176":1}}],["cachemanger",{"2":{"176":3}}],["cachemanagermap",{"2":{"17":1}}],["cachemanager",{"2":{"11":2,"15":6,"17":2,"19":8,"20":1,"176":2,"177":2,"178":6,"244":1}}],["cacheablepropertyoperator",{"2":{"25":1,"218":1,"220":1}}],["cacheablecontainer",{"2":{"15":5}}],["cacheablecontainerprocessor",{"2":{"8":1}}],["cachedefinition",{"2":{"15":2}}],["caches",{"2":{"14":1}}],["cacheobject",{"2":{"11":2,"19":3,"178":2}}],["cache",{"2":{"11":1,"16":1,"18":1,"19":6,"79":2,"177":3,"178":3,"244":4,"298":1}}],["callerrunspolicy",{"2":{"1":2}}],["color",{"2":{"194":1}}],["coll",{"2":{"46":1}}],["collecttoentities",{"2":{"287":1}}],["collector",{"2":{"90":1,"263":2}}],["collectors",{"2":{"9":1,"13":1,"17":1,"18":1,"23":1,"33":1,"40":1,"56":1,"68":1,"80":1,"90":1,"143":1,"255":1,"263":3,"270":5,"275":6,"277":1,"331":1}}],["collect",{"2":{"9":1,"13":1,"17":1,"18":1,"23":1,"33":1,"40":1,"56":1,"68":1,"80":1,"143":1,"255":1,"263":5,"270":5,"275":6,"277":1,"280":1,"331":1}}],["collections",{"2":{"15":1,"68":1,"82":1,"275":1,"280":1}}],["collection",{"2":{"5":1,"9":1,"13":1,"27":1,"29":1,"32":1,"33":3,"56":1,"71":2,"82":1,"101":1,"118":1,"130":2,"147":1,"153":2,"177":1,"255":1,"270":1,"272":2,"275":2,"276":1,"285":1,"312":1,"320":1}}],["corsair",{"2":{"192":1}}],["core模块应该默认支持ognl表达式",{"2":{"215":1}}],["core",{"2":{"155":3,"188":1,"222":2,"287":1,"323":2}}],["com",{"2":{"50":1,"60":1}}],["completemapping",{"2":{"287":1}}],["comparator",{"2":{"23":1}}],["component",{"2":{"9":1,"23":1,"30":1,"35":2,"56":2,"82":1,"255":1,"258":2,"259":2,"263":1,"275":1,"276":1,"277":1,"312":1,"313":1,"320":1,"321":1}}],["code",{"2":{"6":2,"51":1,"58":3,"61":2,"77":1,"80":2,"112":3,"113":11,"149":1,"254":2,"255":2,"256":3,"265":1,"271":1,"272":1,"332":1}}],["config",{"2":{"150":2,"246":1}}],["configuratiopn",{"2":{"176":2}}],["configurationutil",{"2":{"146":1}}],["configuration",{"2":{"1":3,"6":1,"13":2,"15":1,"23":2,"25":1,"30":1,"82":1,"98":2,"146":2,"158":2,"279":2,"280":2,"281":2,"283":2,"307":2,"313":1,"321":1}}],["configureoperationannotationhandler",{"2":{"65":1}}],["consumer",{"2":{"143":1}}],["constantcontainer",{"2":{"51":1,"218":1,"219":1,"220":2,"294":1}}],["constantcontainerbuilder",{"2":{"48":1}}],["constant",{"2":{"50":2,"51":3,"60":1,"241":2,"242":1}}],["context",{"2":{"306":1}}],["controller",{"2":{"77":1,"149":1,"159":2,"265":1,"267":1}}],["contstant",{"2":{"47":1}}],["containerdefinition",{"2":{"222":1}}],["containermhetod",{"2":{"259":1}}],["containermanager",{"2":{"177":1,"294":1}}],["containermethd",{"2":{"130":2}}],["containermethodannotationprocessor",{"2":{"296":1}}],["containermethod",{"0":{"296":1},"2":{"13":3,"17":1,"18":1,"71":4,"72":1,"73":7,"74":1,"75":1,"77":3,"78":1,"79":5,"218":1,"220":1,"225":1,"226":1,"231":1,"243":1,"259":1,"260":1,"263":1,"271":2,"272":2,"276":1,"285":2}}],["containerenumscan",{"2":{"60":2,"231":1}}],["containerenum注解的枚举",{"2":{"60":1,"242":1}}],["containerenum",{"2":{"59":2,"61":7,"221":1,"225":1,"255":1,"256":1,"272":1}}],["containerprovider",{"2":{"53":2,"54":1,"55":2,"220":1,"277":2}}],["containerparam",{"2":{"33":3,"37":1}}],["containerconstantscan",{"2":{"50":2}}],["containerconstant",{"2":{"48":1,"49":8,"51":6,"215":1}}],["containercache",{"2":{"13":4,"17":2,"56":1,"75":2,"79":4,"177":1,"226":1,"227":1,"233":1,"234":1}}],["containeradapterregister",{"2":{"33":2}}],["containers",{"2":{"15":1,"23":1,"33":1,"48":4,"52":1,"58":4,"59":2,"68":3,"69":3,"80":1,"82":1,"90":1,"244":2,"280":6}}],["containerinstancelifecycleprocessor",{"2":{"8":1}}],["containerregisterlogger",{"2":{"8":1}}],["containerlifecycleprocessor",{"2":{"8":1,"227":1}}],["container2",{"2":{"6":4}}],["container1",{"2":{"6":9}}],["container",{"2":{"5":1,"6":3,"8":1,"9":5,"10":2,"13":4,"14":1,"15":4,"23":1,"24":2,"27":1,"29":1,"32":1,"33":6,"39":1,"40":1,"41":1,"42":1,"44":2,"45":1,"46":1,"48":3,"50":1,"52":5,"55":2,"56":3,"58":3,"59":2,"60":1,"68":3,"69":2,"74":1,"80":3,"82":2,"83":1,"84":1,"86":1,"87":2,"88":1,"89":1,"90":1,"92":1,"93":1,"94":1,"97":1,"99":3,"110":3,"111":4,"112":2,"113":2,"114":2,"116":1,"117":4,"118":2,"119":2,"120":1,"123":3,"126":3,"130":1,"132":2,"133":2,"135":2,"136":2,"137":1,"138":2,"139":2,"140":1,"142":1,"143":2,"153":2,"159":2,"160":1,"177":2,"222":2,"241":2,"242":2,"243":1,"249":3,"250":3,"251":2,"252":3,"275":3,"277":2,"280":11,"281":2,"287":1,"300":1,"308":1,"309":1,"313":1,"316":1,"317":1,"321":1,"325":1,"326":1,"328":1}}],["conditionaltypehierarchybeanoperationparser",{"2":{"121":1}}],["conditiondescriptor",{"2":{"121":2}}],["conditionparser",{"2":{"121":1}}],["conditiontype",{"2":{"113":3,"121":2}}],["conditionontargetserializable>",{"2":{"121":1}}],["conditionontargetserializableparser",{"2":{"121":2}}],["conditionontargetserializable",{"2":{"121":6}}],["conditionontargettype",{"2":{"119":3}}],["conditiononcontainer",{"2":{"120":2}}],["conditiononproperty",{"2":{"117":5,"251":1}}],["conditiononpropertynotempty",{"2":{"110":1,"118":3}}],["conditiononpropertynotnull",{"2":{"86":1,"113":1,"118":3,"251":1}}],["conditiononexpression",{"2":{"110":3,"111":2,"112":1,"113":5,"114":1,"116":2,"251":1}}],["condition",{"2":{"36":2,"150":2,"227":1}}],["conversionservice",{"2":{"26":1}}],["converterregistry",{"2":{"26":1}}],["convertermanager",{"2":{"26":4,"134":1}}],["convert",{"2":{"26":1,"298":1}}],["concurrentreferencehashmap",{"2":{"18":1}}],["cross",{"2":{"181":1}}],["crane",{"2":{"330":3}}],["cranej4",{"2":{"86":1,"176":1}}],["crane4jinitializer",{"2":{"221":1}}],["crane4japplicationcontext",{"2":{"220":1}}],["crane4jconfig",{"2":{"176":2}}],["crane4jexampleconfiguration",{"2":{"82":1}}],["crane4jglobalsorter",{"2":{"23":1}}],["crane4jglobalconfiguration",{"2":{"23":1,"53":1,"56":1,"146":1,"177":2,"178":1,"223":1,"279":3,"280":1,"281":1,"294":1}}],["crane4j目前提供了七个内置的操作注解处理器",{"2":{"22":1}}],["crane4jtemplate",{"2":{"4":2,"8":4,"20":3,"23":4,"30":3,"37":3,"52":4,"54":4,"65":7,"68":4,"76":4,"83":4,"121":2,"128":2,"130":1,"143":2,"144":1,"145":4,"234":1,"308":3,"311":1,"313":4,"316":3,"319":1,"321":4,"324":3,"325":1,"327":1,"328":5}}],["crane4j",{"0":{"332":1,"333":1},"2":{"0":2,"1":4,"7":2,"8":2,"9":1,"10":1,"11":1,"13":1,"16":2,"17":1,"18":1,"21":1,"23":2,"24":2,"25":2,"26":1,"30":2,"34":2,"38":1,"52":2,"53":1,"54":1,"55":1,"63":1,"64":1,"65":1,"70":3,"71":1,"80":1,"82":1,"84":1,"86":1,"87":1,"89":1,"90":1,"92":2,"95":2,"98":1,"103":1,"108":1,"116":1,"117":2,"118":3,"119":1,"120":1,"121":2,"122":1,"125":1,"130":2,"140":1,"143":1,"144":1,"145":2,"146":2,"149":1,"153":1,"154":1,"155":3,"159":2,"161":1,"162":3,"163":1,"169":1,"172":1,"174":1,"175":3,"177":4,"178":2,"214":4,"217":3,"218":2,"220":2,"222":2,"223":1,"226":1,"235":1,"237":1,"238":1,"241":1,"242":1,"243":1,"245":1,"246":1,"247":2,"248":2,"249":1,"253":1,"255":1,"257":1,"259":1,"261":1,"264":1,"268":1,"271":1,"274":1,"275":1,"276":1,"278":1,"279":3,"280":3,"281":2,"282":1,"284":1,"285":2,"287":2,"298":1,"302":1,"304":3,"305":1,"306":3,"307":2,"308":1,"314":1,"315":4,"316":1,"322":1,"323":3,"325":1,"329":1,"330":2,"331":1,"332":2,"333":5}}],["createautooperateproxy",{"2":{"146":1}}],["createoperatorproxy",{"2":{"30":1}}],["createcondition",{"2":{"121":1}}],["createcontainer",{"2":{"23":1}}],["createcache",{"2":{"19":2}}],["create",{"2":{"1":1,"13":1,"98":1,"146":1,"158":1,"279":1,"280":1,"281":1}}],["cpu",{"2":{"1":1,"192":1}}],["td",{"2":{"263":2}}],["tyan",{"2":{"209":1}}],["typeresolver",{"2":{"106":1,"148":2}}],["typename",{"2":{"51":2,"61":2}}],["typehierarchybeanoperationparser",{"2":{"21":1,"32":1}}],["type",{"2":{"3":4,"6":1,"10":1,"23":7,"24":1,"36":2,"42":2,"51":3,"61":3,"71":1,"72":1,"73":7,"74":2,"79":4,"102":1,"103":1,"104":1,"105":1,"106":2,"107":1,"110":1,"113":3,"121":5,"123":1,"124":2,"129":1,"130":2,"147":3,"148":2,"149":2,"150":3,"151":2,"152":3,"153":1,"159":1,"160":1,"250":1,"255":2,"256":1,"259":1,"260":1,"262":1,"265":1,"266":1,"269":1,"271":8,"272":9,"273":8,"274":2,"275":7,"276":3,"277":1,"281":1,"285":4,"312":1,"313":1,"320":1,"321":1,"332":1}}],["tact",{"2":{"206":1}}],["tatham",{"2":{"188":1}}],["tag",{"2":{"182":1}}],["table",{"2":{"194":2}}],["tableinfo",{"2":{"172":1}}],["tableid",{"2":{"167":1,"169":1,"172":1}}],["tablefield",{"2":{"167":2,"172":2}}],["tablename",{"2":{"167":1,"172":1}}],["targettype",{"2":{"79":4,"271":2,"285":1}}],["target",{"2":{"23":1,"24":1,"79":2,"110":3,"111":2,"112":1,"113":5,"114":1,"116":3,"119":1,"121":3,"124":4,"143":1,"251":1,"273":3}}],["targetserializableconditionparser",{"2":{"121":1}}],["targets",{"2":{"5":1,"27":1,"29":1,"31":1,"32":1,"33":4,"119":2,"153":2}}],["t>",{"2":{"77":1,"106":2,"148":1,"149":1,"265":1}}],["two",{"2":{"48":4,"49":2,"58":3,"59":3}}],["tuple",{"2":{"35":4}}],["t",{"2":{"26":1,"65":1,"77":2,"149":2,"265":2}}],["toset",{"2":{"263":2,"275":2}}],["to",{"2":{"72":1,"73":6,"173":1,"222":2,"259":1,"260":1}}],["tolist",{"2":{"13":1,"17":1,"18":1,"255":1,"270":2}}],["tomap",{"2":{"9":1,"23":1,"33":1,"56":1,"68":1,"80":1,"90":1,"263":3,"270":3,"275":2,"277":1,"280":1,"331":1}}],["thirddepts",{"2":{"263":3}}],["thirddept",{"2":{"263":2}}],["thirddeptids",{"2":{"263":2}}],["thirddeptid",{"2":{"262":1,"263":3}}],["thirddeptname",{"2":{"262":2,"263":3}}],["this",{"2":{"10":5,"20":1,"77":1,"149":1,"252":1,"265":1}}],["the",{"2":{"204":2}}],["three",{"2":{"48":4,"49":3}}],["threadlocal",{"2":{"217":1}}],["thread",{"2":{"1":1,"185":1}}],["threadfactorybuilder",{"2":{"1":1}}],["threadpoolexecutor",{"2":{"1":6,"6":1}}],["threadpooltaskexecutor",{"2":{"1":1}}],["tex",{"2":{"208":2}}],["teacherage",{"2":{"139":2}}],["teachername",{"2":{"139":4}}],["teachernames",{"2":{"44":3,"46":2,"138":4,"143":7}}],["teacher>",{"2":{"44":1,"45":1,"138":1}}],["teachers",{"2":{"44":2,"45":2,"138":2}}],["teacherids",{"2":{"44":3,"45":1,"46":1,"138":3,"143":2}}],["teacher",{"2":{"44":4,"138":8,"143":5}}],["test3",{"2":{"249":1,"250":1,"252":1}}],["test2",{"2":{"14":1,"249":1,"250":1,"251":1,"252":1}}],["test1",{"2":{"14":1,"249":1,"250":1,"251":1,"252":1}}],["testcontainer",{"2":{"13":1,"33":2,"82":1,"244":2}}],["test",{"2":{"5":1,"13":1,"15":1,"19":8,"32":1,"48":1,"58":1,"82":1,"121":1,"159":1,"160":1,"177":8,"178":2,"197":1,"214":1,"217":1,"281":1,"306":1,"308":2,"309":1,"313":3,"315":1,"316":2,"317":1,"321":3,"325":2,"326":1,"328":2}}],["template",{"2":{"4":2,"121":2,"128":2,"130":1,"143":2,"145":4,"176":4,"252":2}}],["time",{"2":{"14":4}}],["timeunit",{"2":{"1":1,"13":6,"15":1,"19":2,"20":2,"75":2,"79":2,"177":2}}],["tip",{"2":{"0":1,"6":1,"13":1,"35":1,"59":1,"69":1,"71":1,"77":1,"80":1,"86":1,"88":1,"89":1,"90":1,"92":1,"93":1,"110":1,"113":1,"117":1,"118":1,"126":1,"129":1,"130":1,"149":1,"150":1,"151":1,"152":1,"153":1,"169":1,"171":1,"255":1,"259":1,"262":1,"263":1,"276":1,"283":1,"307":1,"308":1,"316":1,"325":1}}],["true",{"2":{"1":1,"19":1,"48":1,"49":3,"51":2,"60":1,"61":2,"72":2,"78":2,"79":1,"112":2,"117":3,"118":1,"119":2,"150":2,"153":2,"165":2,"178":1,"237":1,"238":2,"239":2,"242":1,"243":2,"247":2,"248":1,"254":1,"255":1,"256":1}}],["==",{"2":{"112":1,"113":8,"117":1,"251":1}}],["==========",{"2":{"73":8}}],["=",{"2":{"1":6,"3":3,"4":2,"5":5,"6":8,"8":1,"9":3,"10":7,"13":9,"15":4,"17":3,"18":2,"19":6,"20":2,"23":8,"24":10,"25":3,"27":4,"29":3,"30":5,"31":1,"32":6,"33":11,"35":4,"36":6,"37":1,"39":2,"40":1,"41":5,"42":7,"44":9,"45":5,"46":6,"48":8,"49":6,"50":3,"51":6,"52":5,"54":1,"55":9,"56":1,"58":4,"59":6,"60":3,"61":7,"63":2,"65":3,"66":2,"67":6,"68":4,"69":2,"71":8,"73":16,"74":9,"75":5,"76":2,"77":6,"79":16,"80":4,"83":1,"86":4,"87":8,"88":5,"89":10,"90":5,"92":4,"93":5,"94":8,"97":5,"98":2,"99":2,"102":1,"103":1,"104":2,"105":1,"107":2,"110":12,"111":15,"112":5,"113":13,"114":9,"116":3,"117":15,"118":6,"119":5,"120":2,"121":1,"123":17,"124":5,"126":12,"128":1,"129":2,"130":10,"131":10,"132":8,"133":4,"135":5,"136":5,"137":3,"138":9,"139":19,"140":4,"142":5,"143":16,"145":2,"146":4,"147":4,"149":7,"150":3,"151":2,"152":4,"153":6,"158":3,"159":7,"160":7,"166":1,"168":4,"169":2,"170":2,"171":3,"172":2,"173":7,"176":1,"177":7,"178":2,"223":1,"248":6,"249":6,"250":11,"251":9,"252":7,"254":1,"255":10,"256":6,"259":13,"260":13,"262":11,"263":14,"265":5,"266":2,"270":14,"271":16,"272":21,"273":14,"275":14,"276":7,"277":4,"279":1,"280":7,"281":8,"283":4,"285":18,"308":1,"309":3,"311":1,"312":2,"313":7,"316":1,"317":3,"319":1,"320":2,"321":8,"324":1,"325":1,"326":3,"327":1,"328":6,"331":8,"332":5}}],["16",{"0":{"233":1}}],["13",{"0":{"228":1}}],["15",{"0":{"225":1}}],["12",{"0":{"224":1},"2":{"306":1}}],["123",{"2":{"117":3,"269":2}}],["18",{"0":{"223":1},"2":{"248":3}}],["1899",{"2":{"192":1}}],["1等",{"2":{"188":1}}],["1l",{"2":{"19":2}}],["10086",{"2":{"251":2}}],["10012341234",{"2":{"67":1}}],["100l",{"2":{"15":1}}],["1000l",{"2":{"13":3,"75":1,"79":1,"177":1}}],["10",{"0":{"217":1,"223":1,"224":1},"2":{"1":1,"6":3,"248":3,"306":2}}],["1",{"0":{"1":1,"3":1,"8":1,"12":1,"13":2,"14":1,"17":1,"22":1,"28":1,"29":2,"30":1,"31":1,"32":1,"33":1,"35":1,"39":1,"41":1,"44":1,"48":1,"54":1,"58":1,"63":1,"65":1,"71":1,"82":1,"85":1,"86":2,"87":1,"88":1,"89":1,"92":1,"97":1,"101":1,"102":2,"103":1,"104":1,"105":1,"109":1,"110":2,"111":1,"112":1,"113":1,"114":1,"116":1,"123":1,"126":1,"128":1,"132":1,"133":2,"134":1,"142":1,"145":1,"147":1,"155":1,"157":1,"162":1,"164":1,"168":1,"175":1,"214":1,"215":2,"216":1,"217":1,"221":1,"224":1,"228":1,"232":1,"236":1,"237":2,"238":1,"239":1,"241":1,"250":1,"254":1,"258":1,"262":1,"265":1,"268":1,"269":2,"270":1,"275":1,"279":1,"306":1,"311":1,"315":1,"319":1,"323":1,"331":1},"1":{"13":1,"14":1,"15":1,"29":1,"30":1,"31":1,"32":1,"33":1,"86":1,"87":1,"88":1,"89":1,"102":1,"103":1,"104":1,"105":1,"110":1,"111":1,"112":1,"113":1,"114":1,"133":1,"134":1,"237":1,"238":1,"239":1,"269":1,"270":1},"2":{"1":1,"6":2,"15":1,"33":1,"35":2,"44":2,"46":1,"50":1,"58":2,"59":2,"60":1,"61":2,"66":1,"67":1,"78":2,"96":1,"113":1,"126":1,"128":1,"130":1,"138":1,"141":1,"143":1,"150":2,"159":4,"177":4,"179":1,"185":3,"217":1,"218":1,"220":1,"222":1,"254":1,"255":1,"256":1,"262":1,"269":1,"270":1,"280":1,"283":2,"308":1,"311":1,"312":1,"313":3,"316":1,"319":1,"320":1,"321":3,"325":1,"327":1,"328":2,"331":2}}],["中查到的数据一般不直接具备所有字段",{"2":{"331":1}}],["中异步执行器一节",{"2":{"293":1}}],["中多对多装配一节",{"2":{"291":1,"292":1}}],["中一对多装配一节",{"2":{"290":1}}],["中即为",{"2":{"290":1,"291":1,"292":1}}],["中或者相关交流群中反馈",{"2":{"287":1}}],["中不必再进行数据源配置",{"2":{"256":1}}],["中带有",{"2":{"243":1}}],["中适配器部分代码",{"2":{"222":1}}],["中反馈",{"2":{"214":1}}],["中寻求与该项目相关的协助",{"2":{"183":1}}],["中汲取教训",{"2":{"179":1}}],["中搜过下列句子但没有找到什么有用的东西",{"2":{"179":1}}],["中配置的主键",{"2":{"169":1}}],["中配置一些附加信息来调整键值的解析策略",{"2":{"91":1}}],["中并没有",{"2":{"159":1}}],["中自动填充这一节",{"2":{"130":1}}],["中根据部门",{"2":{"173":1}}],["中根据",{"2":{"130":1}}],["中通过",{"2":{"122":1}}],["中指定如何进行属性映射",{"2":{"92":1}}],["中拿到的所有",{"2":{"90":1}}],["中显式的使用通用响应体包装返回值",{"2":{"77":1,"149":1,"265":1}}],["中获取对应的值",{"2":{"69":1}}],["中获取缓存",{"2":{"15":1}}],["中的注解处理器",{"2":{"282":1}}],["中的快速开始",{"2":{"221":1}}],["中的缓存",{"2":{"178":1}}],["中的缓存配置将不会生效",{"2":{"79":1}}],["中的映射配置移到模板类中",{"2":{"139":1}}],["中的装配操作时的顺序",{"2":{"127":1}}],["中的分组校验",{"2":{"122":1}}],["中的所有",{"2":{"102":1}}],["中的",{"2":{"53":1,"287":1}}],["中的各种数据源容器",{"2":{"52":1}}],["中的序列化器",{"2":{"38":1}}],["中的默认配置",{"2":{"1":1}}],["中基于该数据源配置一个填充操作",{"2":{"259":1}}],["中基于",{"2":{"37":1}}],["中有不少需要通过反射调用有参方法的场景",{"2":{"26":1}}],["中分别基于",{"2":{"6":1}}],["中",{"2":{"0":1,"11":1,"25":1,"42":1,"45":1,"52":1,"56":1,"59":1,"74":1,"79":1,"84":1,"98":1,"121":1,"125":1,"146":1,"159":1,"220":1,"280":1,"281":1,"285":1,"308":1,"316":1,"325":1}}],["在数据源需要通过频繁的网络",{"2":{"333":1}}],["在数据源层面处理级联关系",{"0":{"263":1}}],["在日常开发中",{"2":{"331":1}}],["在后续通过命名空间",{"2":{"308":1,"316":1,"325":1}}],["在后续的内容中",{"2":{"278":1}}],["在需要嵌套填充的属性上添加",{"2":{"288":1}}],["在创建完容器后",{"2":{"280":1}}],["在创建对象时只填充一部分属性",{"2":{"122":1}}],["在将原本的注解封装为一个新组合注解后",{"2":{"273":1}}],["在将常量属性注册到容器后",{"2":{"49":1}}],["在本文的例子中",{"2":{"267":1}}],["在自动填充时",{"2":{"250":1}}],["在自动填充时使用",{"0":{"3":1}}],["在应用启动后自动注册为容器",{"2":{"241":1,"242":1}}],["在依赖中排除",{"2":{"232":1,"234":1}}],["在序列化和反序列化过程中填充",{"2":{"222":1}}],["在启动类添加",{"2":{"221":1,"302":1}}],["在启动后将会自动注册",{"2":{"65":1}}],["在启动后",{"2":{"8":1}}],["在不同的情况下可能有些字段要填充",{"2":{"333":1}}],["在不同类的同名方法上添加",{"2":{"222":1}}],["在不指定",{"2":{"221":1}}],["在不影响连贯性之下",{"2":{"185":1}}],["在没有找到",{"2":{"219":1,"220":1}}],["在各个组件中由于参数",{"2":{"219":1,"220":1}}],["在最后一个问题中",{"2":{"209":1}}],["在它的邮件列表",{"2":{"208":1}}],["在黑客社区的论坛中",{"2":{"207":1}}],["在黑客中",{"2":{"202":1}}],["在下一节",{"2":{"206":1}}],["在行事之前一定要非常非常的有根据",{"2":{"206":1}}],["在此之前",{"2":{"208":1}}],["在此之后才指明可以避免的盲点",{"2":{"202":1}}],["在此处",{"2":{"36":1}}],["在人来人往的邮件列表里",{"2":{"202":1}}],["在项目的用户邮件列表或论坛中提问",{"2":{"198":1}}],["在项目启动后依然会自动注册",{"2":{"223":1}}],["在项目启动后它会自动注册",{"2":{"54":1}}],["在项目启动后",{"2":{"30":1,"157":1,"244":1}}],["在信的开头就要说出来",{"2":{"197":1}}],["在第七行以后",{"2":{"197":1}}],["在命令行处理的情况下",{"2":{"193":1}}],["在编译内核时",{"2":{"192":1}}],["在精炼你的",{"2":{"189":1}}],["在英语论坛中",{"2":{"187":1}}],["在论坛",{"2":{"186":1,"187":1,"204":1}}],["在网页论坛上",{"2":{"185":1}}],["在差异部分则描述与期望的行为不一致的地方",{"2":{"185":1}}],["在目标部分指出是哪一个或哪一组东西有问题",{"2":{"185":1}}],["在邮件列表",{"2":{"185":1}}],["在邮件列表或新闻组寻求帮助时加上一句",{"2":{"179":1}}],["在任何论坛发文以前",{"2":{"183":1}}],["在任意时刻自动回收",{"2":{"18":1}}],["在看到这类问题的时候",{"2":{"208":1}}],["在看",{"2":{"182":1}}],["在仔细挑选的公共论坛中提问",{"2":{"181":1}}],["在选择论坛",{"2":{"181":1}}],["在选项式配置中",{"2":{"79":1}}],["在太多的不同新闻群组上重复转贴同样的问题",{"2":{"181":1}}],["在探讨进阶技术问题的论坛张贴非常初级的问题",{"2":{"181":1}}],["在与主题不合的论坛上贴出你的问题",{"2":{"181":1}}],["在向专家求助之前",{"2":{"179":1}}],["在你提问之前预先将黑客们可能提出的问题回答一遍",{"2":{"188":1}}],["在你的电子邮件中",{"2":{"184":1}}],["在你准备要通过电子邮件",{"2":{"179":1}}],["在你要转换的字段",{"2":{"66":1}}],["在提问之前",{"0":{"179":1}}],["在引入依赖后",{"2":{"176":1}}],["在开头就描述你的目标",{"2":{"194":1}}],["在开头简述问题",{"2":{"193":1}}],["在开启自动注册的情况下",{"2":{"165":1}}],["在开始填充对象之前",{"2":{"308":1,"316":1,"325":1}}],["在开始前",{"2":{"155":1,"162":1,"175":1}}],["在开始装配前",{"2":{"105":1}}],["在开始解析配置前",{"2":{"21":1}}],["在默认使用",{"2":{"154":1}}],["在默认情况",{"2":{"89":1}}],["在默认情况下",{"2":{"19":1,"80":1,"93":1,"96":1,"141":1,"178":1,"247":1}}],["在运行时自动推断类型",{"2":{"149":1}}],["在特定情况下",{"2":{"149":1,"266":1}}],["在方法上添加注解",{"2":{"312":1,"320":1}}],["在方法上声明",{"0":{"87":1,"103":1}}],["在方法上声明装配操作时",{"2":{"29":1}}],["在方法参数添加",{"2":{"284":1}}],["在方法添加",{"2":{"219":1,"220":1,"284":1}}],["在方法调用前后自动完成",{"2":{"144":1}}],["在代码时排除",{"2":{"252":1}}],["在代码中完成",{"2":{"144":1}}],["在代码上",{"2":{"84":1}}],["在注解中通过",{"2":{"143":1}}],["在注解中通过命名空间引用容器",{"2":{"52":1}}],["在实际执行时",{"2":{"130":1}}],["在示例中",{"2":{"123":1}}],["在某牌显卡",{"2":{"185":1}}],["在某些情况下",{"2":{"100":1,"106":1,"148":1,"177":1}}],["在某个",{"2":{"86":1}}],["在执行器进行预解析",{"2":{"246":1}}],["在执行填充之前",{"2":{"150":1}}],["在执行自动填充操作时",{"2":{"148":1}}],["在执行拆卸操作时",{"2":{"106":1}}],["在执行的过程中涉及到大量的逻辑判断",{"2":{"95":1}}],["在执行装配操作前和完成装配操作后",{"2":{"10":1}}],["在无法直接从",{"2":{"95":1}}],["在无法直接修改父类的情况下",{"2":{"88":1}}],["在父类或父类的属性上声明的操作",{"2":{"88":1}}],["在类上声明",{"0":{"88":1,"104":1}}],["在有返回值的无参方法上声明也是允许的",{"2":{"87":1,"103":1}}],["在属性上声明",{"0":{"86":1,"102":1}}],["在回调方法中实现你想要的效果",{"2":{"80":1}}],["在配置解析过程中",{"2":{"107":1}}],["在配置填充操作时",{"2":{"80":1}}],["在配置中引用",{"0":{"55":1}}],["在设计上参考了",{"2":{"70":1}}],["在批量映射的情况下",{"2":{"44":1,"138":1}}],["在多对多的情况下",{"2":{"43":1}}],["在上一个示例中",{"2":{"248":1}}],["在上一个版本的基础上修复了一些",{"2":{"219":1}}],["在上面这个写法中",{"2":{"153":1}}],["在上面的示例中",{"2":{"41":1,"44":1,"102":1}}],["在上述两种风格的基础上",{"2":{"273":1}}],["在上述配置中",{"2":{"46":1}}],["在上述代码中",{"2":{"33":1,"90":1,"250":1,"252":1}}],["在上述示例中",{"2":{"9":1,"56":1,"63":1,"123":1,"126":1,"151":1,"152":1}}],["在整个装配过程中负责实际的属性读写操作",{"2":{"38":1}}],["在一些非英语国家",{"2":{"183":1}}],["在一些情况下",{"2":{"90":1,"94":1,"138":1}}],["在一些场景中",{"2":{"38":1}}],["在一对多的情况下",{"2":{"40":1,"42":1}}],["在一个接口上添加",{"2":{"29":1}}],["在这一步",{"2":{"287":4}}],["在这之前",{"2":{"248":1,"249":1,"253":1,"257":1,"261":1,"264":1,"274":1}}],["在这种模式下",{"2":{"35":1}}],["在这种情况下",{"2":{"34":1,"35":1,"79":1,"138":1,"178":1,"200":1,"207":1,"274":1}}],["在这部分功能使用了非常典型的责任链模式",{"2":{"21":1}}],["在调用代理对象的",{"2":{"31":1}}],["在抽象方法上使用",{"2":{"29":1}}],["在字段映射时调用的",{"2":{"26":1}}],["在原有功能的基础上支持通过链式操作符读写嵌套对象属性",{"2":{"25":1}}],["在原有功能的基础上支持读写",{"2":{"25":1}}],["在原有功能的基础上支持",{"2":{"25":1}}],["在定义了对应注解后",{"2":{"23":1}}],["在crane4j中",{"2":{"21":1}}],["在非",{"0":{"158":1,"322":1},"1":{"323":1,"324":1,"325":1,"326":1,"327":1,"328":1},"2":{"17":1,"24":1,"26":1,"30":2,"56":1,"304":1,"323":1}}],["在使用时",{"2":{"167":1}}],["在使用前",{"2":{"65":1,"163":1}}],["在使用",{"2":{"17":1,"183":1}}],["在完成填充后",{"2":{"10":1}}],["在填充开始前",{"2":{"10":1}}],["在容器被销毁时",{"2":{"9":1}}],["在容器被使用时",{"2":{"9":1}}],["在容器生命周期的三个关键节点输出相关信息",{"2":{"8":1}}],["在用户的容器注册前",{"2":{"8":1}}],["在操作者接口中",{"2":{"5":1}}],["在操作者接口中使用",{"0":{"5":1}}],["在手动填充时使用",{"0":{"4":1}}],["在进行自动填充时",{"2":{"3":1}}],["在",{"0":{"157":1,"305":1,"314":1},"1":{"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1},"2":{"0":1,"1":1,"3":1,"11":1,"13":1,"17":1,"18":1,"23":1,"24":1,"25":1,"26":2,"30":2,"37":1,"50":3,"51":1,"52":1,"56":1,"57":1,"59":1,"60":3,"61":1,"64":1,"65":2,"71":1,"72":1,"74":1,"75":1,"76":1,"77":1,"79":2,"82":1,"84":1,"86":2,"90":1,"91":1,"95":1,"96":1,"97":1,"98":1,"99":1,"108":1,"116":1,"121":1,"124":1,"125":1,"126":1,"131":1,"132":1,"133":1,"135":1,"136":1,"139":1,"141":1,"143":1,"146":2,"150":2,"153":1,"154":1,"157":1,"159":1,"164":1,"165":1,"174":1,"192":1,"230":1,"235":1,"247":1,"267":1,"276":1,"280":1,"281":1,"290":1,"291":1,"292":1,"302":1,"304":2,"307":1,"308":1,"310":1,"316":1,"318":1,"325":1,"329":1,"330":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/docs/assets/chunks/@localSearchIndexroot.DLuqSLTp.js b/docs/assets/chunks/@localSearchIndexroot.DLuqSLTp.js new file mode 100644 index 00000000..2d6ce9b2 --- /dev/null +++ b/docs/assets/chunks/@localSearchIndexroot.DLuqSLTp.js @@ -0,0 +1 @@ +const t='{"documentCount":337,"nextId":337,"documentIds":{"0":"/advanced/async_executor.html#异步填充","1":"/advanced/async_executor.html#_1-启用执行器","2":"/advanced/async_executor.html#_2-使用执行器","3":"/advanced/async_executor.html#_2-1-在自动填充时使用","4":"/advanced/async_executor.html#_2-2-在手动填充时使用","5":"/advanced/async_executor.html#_2-3-在操作者接口中使用","6":"/advanced/async_executor.html#_3-批量大小","7":"/advanced/cache.html#缓存","8":"/advanced/cache.html#_1-使用","9":"/advanced/cache.html#_1-1-通过注解配置","10":"/advanced/cache.html#_1-2-使用配置文件配置","11":"/advanced/cache.html#_3-3-手动配置","12":"/advanced/cache.html#_2-缓存管理器","13":"/advanced/cache.html#_2-1-指定缓存管理器","14":"/advanced/cache.html#_2-2-使用内置管理器","15":"/advanced/cache.html#_2-3-刷新缓存","16":"/advanced/cache.html#_3-自定义缓存","17":"/advanced/combination_annotation.html#组合注解","18":"/advanced/callback_of_component.html#组件的回调接口","19":"/advanced/callback_of_component.html#_1-容器生命周期处理器","20":"/advanced/callback_of_component.html#_2-容器生命周期接口","21":"/advanced/callback_of_component.html#_3-对象回调接口","22":"/advanced/operation_annotation_handler.html#注解处理器","23":"/advanced/operation_annotation_handler.html#_1-内置处理器","24":"/advanced/operation_annotation_handler.html#_2-自定义注解处理器","25":"/advanced/operator_interface.html#操作者接口","26":"/advanced/operator_interface.html#_1-统一填充方法参数","27":"/advanced/operator_interface.html#_1-1-声明装配操作","28":"/advanced/operator_interface.html#_1-2-创建代理对象","29":"/advanced/operator_interface.html#_1-3-对入参进行填充","30":"/advanced/operator_interface.html#_1-4-指定执行器和解析器","31":"/advanced/operator_interface.html#_1-5-将其它参数作为数据源","32":"/advanced/operator_interface.html#_2-分别填充方法参数","33":"/advanced/operator_interface.html#_2-1-简单使用","34":"/advanced/operator_interface.html#_2-2-使用-autooperate-注解","35":"/advanced/operator_interface.html#_3-方法工厂","36":"/advanced/reflection_factory.html#反射工厂","37":"/advanced/type_converter.html#类型转换器","38":"/basic/assemble_operation_handler.html#装配处理器","39":"/basic/assemble_operation_handler.html#_1-一对一","40":"/basic/assemble_operation_handler.html#_2-一对多","41":"/basic/assemble_operation_handler.html#_2-1-使用一对多装配处理器","42":"/basic/assemble_operation_handler.html#_2-2-使用参数对象作为-key-值","43":"/basic/assemble_operation_handler.html#_3-多对多","44":"/basic/assemble_operation_handler.html#_3-1-使用多对多装配处理器","45":"/basic/assemble_operation_handler.html#_3-2-更换分隔符","46":"/basic/assemble_operation_handler.html#_3-3-拼接字符串","47":"/basic/container/constant_container.html#常量容器","48":"/basic/container/constant_container.html#_1-创建容器","49":"/basic/container/constant_container.html#_2-可配置项","50":"/basic/container/constant_container.html#_3-批量扫描","51":"/basic/container/constant_container.html#_4-选项式配置","52":"/basic/container/container_abstract.html#数据源容器","53":"/basic/container/container_provider.html#容器提供者","54":"/basic/container/container_provider.html#_1-创建并注册","55":"/basic/container/container_provider.html#_2-在配置中引用","56":"/basic/container/custom_container.html#自定义容器","57":"/basic/container/enum_container.html#枚举容器","58":"/basic/container/enum_container.html#_1-创建容器","59":"/basic/container/enum_container.html#_2-可配置项","60":"/basic/container/enum_container.html#_3-批量扫描","61":"/basic/container/enum_container.html#_4-选项式配置","62":"/basic/container/introspection_container.html#对象内省","63":"/basic/container/introspection_container.html#_1-对象内省","64":"/basic/container/introspection_container.html#_2-键值映射","65":"/basic/container/introspection_container.html#_2-1-配置","66":"/basic/container/introspection_container.html#_2-2-使用","67":"/basic/container/introspection_container.html#_2-3-获取注解元素","68":"/basic/container/lambda_container.html#lambda-容器","69":"/basic/container/map_container.html#集合容器","70":"/basic/container/method_container.html#方法容器","71":"/basic/container/method_container.html#_1-声明容器","72":"/basic/container/method_container.html#_2-可选配置项","73":"/basic/container/method_container.html#_3-对结果分组","74":"/basic/container/method_container.html#_4-接受参数对象","75":"/basic/container/method_container.html#_5-缓存","76":"/basic/container/method_container.html#_6-手动注册","77":"/basic/container/method_container.html#_7-包装类提取","78":"/basic/container/method_container.html#_8-空值处理","79":"/basic/container/method_container.html#_9-选项式配置","80":"/basic/container/object_container.html#对象容器","81":"/basic/container/register_container.html#注册数据源容器","82":"/basic/container/register_container.html#_1-自动注册","83":"/basic/container/register_container.html#_2-手动注册","84":"/basic/declare_assemble_operation.html#声明一个装配操作","85":"/basic/declare_assemble_operation.html#_1-声明装配操作","86":"/basic/declare_assemble_operation.html#_1-1-在属性上声明","87":"/basic/declare_assemble_operation.html#_1-2-在方法上声明","88":"/basic/declare_assemble_operation.html#_1-3-在类上声明","89":"/basic/declare_assemble_operation.html#_1-4-重复声明","90":"/basic/declare_assemble_operation.html#_2-显式指定key类型","91":"/basic/declare_assemble_operation.html#_3-键的解析策略","92":"/basic/declare_assemble_operation.html#_3-1-将属性值合成为参数对象","93":"/basic/declare_assemble_operation.html#_3-2-将字符串按分隔符拆分","94":"/basic/declare_assemble_operation.html#_3-3-为键值指定别名","95":"/basic/declare_assemble_operation.html#_3-4-自定义解析器","96":"/basic/declare_assemble_operation.html#_4-属性映射策略","97":"/basic/declare_assemble_operation.html#_4-1-指定策略","98":"/basic/declare_assemble_operation.html#_4-2-自定义策略","99":"/basic/declare_assemble_operation.html#_5-表达式支持","100":"/basic/declare_disassemble_operation.html#填充嵌套对象","101":"/basic/declare_disassemble_operation.html#_1-声明拆卸操作","102":"/basic/declare_disassemble_operation.html#_1-1-在属性上声明","103":"/basic/declare_disassemble_operation.html#_1-2-在方法上声明","104":"/basic/declare_disassemble_operation.html#_1-3-在类上声明","105":"/basic/declare_disassemble_operation.html#_1-3-递归拆卸","106":"/basic/declare_disassemble_operation.html#_2-自动推断类型","107":"/basic/declare_disassemble_operation.html#_3-拆卸操作处理器","108":"/basic/operation_condition.html#设置操作触发条件","109":"/basic/operation_condition.html#_1-使用","110":"/basic/operation_condition.html#_1-1-配置","111":"/basic/operation_condition.html#_1-2-绑定到操作","112":"/basic/operation_condition.html#_1-3-取反","113":"/basic/operation_condition.html#_1-4-组合","114":"/basic/operation_condition.html#_1-5-注解的作用域","115":"/basic/operation_condition.html#_2-内置注解","116":"/basic/operation_condition.html#_2-1-当表达式结果为真","117":"/basic/operation_condition.html#_2-2-当指定属性值等于指定值","118":"/basic/operation_condition.html#_2-3-当指定属性值非空","119":"/basic/operation_condition.html#_2-4-当填充对象为指定类型","120":"/basic/operation_condition.html#_2-5-当存在指定数据源容器","121":"/basic/operation_condition.html#_3-自定义条件","122":"/basic/operation_group.html#操作分组","123":"/basic/operation_group.html#_1-配置分组","124":"/basic/operation_group.html#_2-按操作组执行","125":"/basic/operation_sort.html#操作排序","126":"/basic/operation_sort.html#_1-配置排序规则","127":"/basic/operation_sort.html#_2-按顺序执行","128":"/basic/operation_sort.html#_2-1-手动填充","129":"/basic/operation_sort.html#_2-2-自动填充","130":"/basic/operation_sort.html#_3-与嵌套填充配合使用","131":"/basic/operation_sort.html#_3-1-平铺操作执行器","132":"/basic/operation_sort.html#_3-2-递归操作执行器","133":"/basic/property_mapping.html#配置属性映射","134":"/basic/property_mapping.html#_1-属性到属性","135":"/basic/property_mapping.html#_1-1-同名属性","136":"/basic/property_mapping.html#_1-2-自动类型转换","137":"/basic/property_mapping.html#_2-对象到属性","138":"/basic/property_mapping.html#_3-属性到键","139":"/basic/property_mapping.html#_4-对象到键","140":"/basic/property_mapping.html#_5-批量映射","141":"/basic/property_mapping.html#_6-属性映射模板","142":"/basic/property_mapping.html#_7-链式操作符","143":"/basic/property_mapping.html#_8-属性映射策略","144":"/basic/property_mapping.html#_8-1-指定策略","145":"/basic/property_mapping.html#_8-2-自定义策略","146":"/basic/trigger_operation.html#触发操作","147":"/basic/trigger_operation.html#_1-手动填充","148":"/basic/trigger_operation.html#_2-自动填充","149":"/basic/trigger_operation.html#_2-1-配置","150":"/basic/trigger_operation.html#_2-2-自动类型推断","151":"/basic/trigger_operation.html#_2-3-包装类提取","152":"/basic/trigger_operation.html#_2-4-条件表达式","153":"/basic/trigger_operation.html#_2-5-指定分组","154":"/basic/trigger_operation.html#_2-6-指定执行器","155":"/basic/trigger_operation.html#_2-7-从注解元素获取配置","156":"/extension/jackson_extension.html#jackson-插件","157":"/extension/jackson_extension.html#_1-安装","158":"/extension/jackson_extension.html#_2-启用插件","159":"/extension/jackson_extension.html#_2-1-在-spring-环境","160":"/extension/jackson_extension.html#_2-2-在非-spring-环境","161":"/extension/jackson_extension.html#_2-使用","162":"/extension/jackson_extension.html#_3-可选配置","163":"/extension/mybatis_plus_extension.html#mybatisplus-插件","164":"/extension/mybatis_plus_extension.html#_1-安装","165":"/extension/mybatis_plus_extension.html#_2-注册mapper","166":"/extension/mybatis_plus_extension.html#_2-1-懒加载","167":"/extension/mybatis_plus_extension.html#_2-2-自动注册","168":"/extension/mybatis_plus_extension.html#_2-3-手动注册","169":"/extension/mybatis_plus_extension.html#_3-使用","170":"/extension/mybatis_plus_extension.html#_3-1-根据主键查询全部字段","171":"/extension/mybatis_plus_extension.html#_3-2-根据主键查询指定字段","172":"/extension/mybatis_plus_extension.html#_3-3-根据指定外键查询全部字段","173":"/extension/mybatis_plus_extension.html#_3-4-根据指定外键查询指定字段","174":"/extension/mybatis_plus_extension.html#_4-指定查询字段-sql","175":"/extension/mybatis_plus_extension.html#_5-对结果分组","176":"/extension/redis_extension.html#redis-插件","177":"/extension/redis_extension.html#_1-安装","178":"/extension/redis_extension.html#_2-启用缓存管理器","179":"/extension/redis_extension.html#_3-键前缀","180":"/extension/redis_extension.html#_4-清空缓存","181":"/other/How-To-Ask-Questions-The-Smart-Way.html#在提问之前","182":"/other/How-To-Ask-Questions-The-Smart-Way.html#当你提问时","183":"/other/How-To-Ask-Questions-The-Smart-Way.html#慎选提问的论坛","184":"/other/How-To-Ask-Questions-The-Smart-Way.html#stack-overflow","185":"/other/How-To-Ask-Questions-The-Smart-Way.html#网站和-irc-论坛","186":"/other/How-To-Ask-Questions-The-Smart-Way.html#第二步-使用项目邮件列表","187":"/other/How-To-Ask-Questions-The-Smart-Way.html#使用有意义且描述明确的标题","188":"/other/How-To-Ask-Questions-The-Smart-Way.html#使问题容易回复","189":"/other/How-To-Ask-Questions-The-Smart-Way.html#使用易于读取且标准的文件格式发送问题","190":"/other/How-To-Ask-Questions-The-Smart-Way.html#精确地描述问题并言之有物","191":"/other/How-To-Ask-Questions-The-Smart-Way.html#话不在多而在精","192":"/other/How-To-Ask-Questions-The-Smart-Way.html#别动辄声称找到-bug","193":"/other/How-To-Ask-Questions-The-Smart-Way.html#低声下气不能代替你的功课","194":"/other/How-To-Ask-Questions-The-Smart-Way.html#描述问题症状而非你的猜测","195":"/other/How-To-Ask-Questions-The-Smart-Way.html#按发生时间先后列出问题症状","196":"/other/How-To-Ask-Questions-The-Smart-Way.html#描述目标而不是过程","197":"/other/How-To-Ask-Questions-The-Smart-Way.html#别要求使用私人电邮回复","198":"/other/How-To-Ask-Questions-The-Smart-Way.html#清楚明确地表达你的问题以及需求","199":"/other/How-To-Ask-Questions-The-Smart-Way.html#询问有关代码的问题时","200":"/other/How-To-Ask-Questions-The-Smart-Way.html#别把自己家庭作业的问题贴上来","201":"/other/How-To-Ask-Questions-The-Smart-Way.html#去掉无意义的提问句","202":"/other/How-To-Ask-Questions-The-Smart-Way.html#即使你很急也不要在标题写紧急","203":"/other/How-To-Ask-Questions-The-Smart-Way.html#礼多人不怪-而且有时还很有帮助","204":"/other/How-To-Ask-Questions-The-Smart-Way.html#问题解决后-加个简短的补充说明","205":"/other/How-To-Ask-Questions-The-Smart-Way.html#如何解读答案","206":"/other/How-To-Ask-Questions-The-Smart-Way.html#rtfm-和-stfw-如何知道你已完全搞砸了","207":"/other/How-To-Ask-Questions-The-Smart-Way.html#如果还是搞不懂","208":"/other/How-To-Ask-Questions-The-Smart-Way.html#处理无礼的回应","209":"/other/How-To-Ask-Questions-The-Smart-Way.html#如何避免扮演失败者","210":"/other/How-To-Ask-Questions-The-Smart-Way.html#不该问的问题","211":"/other/How-To-Ask-Questions-The-Smart-Way.html#好问题与蠢问题","212":"/other/How-To-Ask-Questions-The-Smart-Way.html#如果得不到回答","213":"/other/How-To-Ask-Questions-The-Smart-Way.html#如何更好地回答问题","214":"/other/How-To-Ask-Questions-The-Smart-Way.html#相关资源","215":"/other/How-To-Ask-Questions-The-Smart-Way.html#鸣谢","216":"/other/changelog.html#_1-0-0-2023-03-23","217":"/other/changelog.html#_1-1-0-2023-03-30","218":"/other/changelog.html#_1-2-0-2023-04-09","219":"/other/changelog.html#_1-3-0-alpha-2023-05-10","220":"/other/changelog.html#_2-0-0-alpha-2023-07-08","221":"/other/changelog.html#_2-0-0-bate-2023-07-30","222":"/other/changelog.html#_2-0-0-2023-08-06","223":"/other/changelog.html#_2-1-0-2023-08-21","224":"/other/changelog.html#_2-2-0-2023-09-25","225":"/other/changelog.html#_2-3-0-2023-10-18","226":"/other/changelog.html#_2-3-1-2023-12-10","227":"/other/changelog.html#_2-4-0-2024-01-15","228":"/other/changelog.html#_2-5-0-2024-02-01","229":"/other/changelog.html#_2-6-0-2024-02-23","230":"/other/changelog.html#_2-6-1-2024-03-13","231":"/other/changelog.html#_2-6-2-2024-03-27","232":"/other/changelog.html#_2-7-0-2024-04-08","233":"/other/changelog.html#_2-8-0-2024-05-07","234":"/other/changelog.html#_2-8-1-2024-06-05","235":"/other/changelog.html#_2-8-2-2024-06-16","236":"/other/changelog.html#_2-9-0-2024-06-30","237":"/other/configuration_properties.html#配置文件","238":"/other/configuration_properties.html#_1-反射","239":"/other/configuration_properties.html#_1-1-是否启用字节码反射","240":"/other/configuration_properties.html#_1-2-是否支持处理map对象","241":"/other/configuration_properties.html#_1-3-是否支持链式操作符","242":"/other/configuration_properties.html#_2-容器","243":"/other/configuration_properties.html#_2-1-扫描常量容器","244":"/other/configuration_properties.html#_2-2-扫描枚举容器","245":"/other/configuration_properties.html#_2-3-扫描方法容器","246":"/other/configuration_properties.html#_2-4-容器缓存配置","247":"/other/configuration_properties.html#_3-自动填充","248":"/other/configuration_properties.html#_4-操作配置预解析","249":"/other/configuration_properties.html#_5-是否忽略-key-值为-null-的操作","250":"/use_case/example_additional_action.html#示例-如何在填充后进行附加操作","251":"/use_case/example_exclude_operation.html#示例-如何在执行时排除某些操作","252":"/use_case/example_exclude_operation.html#_1-进行分组填充","253":"/use_case/example_exclude_operation.html#_2-设置条件填充","254":"/use_case/example_exclude_operation.html#_3-手动排除","255":"/use_case/example_fill_enum.html#示例-如何基于枚举进行填充","256":"/use_case/example_fill_enum.html#_1-准备","257":"/use_case/example_fill_enum.html#_2-使用","258":"/use_case/example_fill_enum.html#_3-组合式配置","259":"/use_case/example_fill_method.html#示例-如何基于方法填充","260":"/use_case/example_fill_method.html#_1-准备","261":"/use_case/example_fill_method.html#_2-使用","262":"/use_case/example_fill_method.html#_3-选项式配置","263":"/use_case/example_fill_relations.html#示例-如何级联填充","264":"/use_case/example_fill_relations.html#_1-指定填充顺序","265":"/use_case/example_fill_relations.html#_2-在数据源层面处理级联关系","266":"/use_case/example_fill_wrapped_return_value.html#示例-如何填充被包装的返回值","267":"/use_case/example_fill_wrapped_return_value.html#_1-填充被包装的数据","268":"/use_case/example_fill_wrapped_return_value.html#_2-填充被多级包装的数据","269":"/use_case/example_multi_datasource.html#示例-如何填充一个复杂对象","270":"/use_case/example_multi_datasource.html#_1-原始代码","271":"/use_case/example_multi_datasource.html#_1-1-实体类与数据结构","272":"/use_case/example_multi_datasource.html#_1-2-实现代码","273":"/use_case/example_multi_datasource.html#_2-使用选项式风格配置","274":"/use_case/example_multi_datasource.html#_3-使用组合式风格配置","275":"/use_case/example_multi_datasource.html#_4-使用组合注解简化配置","276":"/use_case/example_multi_key.html#示例-如何通过多个key关联数据","277":"/use_case/example_multi_key.html#_1-使用对象容器","278":"/use_case/example_multi_key.html#_2-使用方法容器","279":"/use_case/example_multi_key.html#_3-配合容器提供者使用","280":"/user_guide/basic_concept.html#基本概念","281":"/user_guide/basic_concept.html#_1-全局配置","282":"/user_guide/basic_concept.html#_2-数据源容器","283":"/user_guide/basic_concept.html#_3-操作配置-解析器","284":"/user_guide/basic_concept.html#_4-注解处理器","285":"/user_guide/basic_concept.html#_5-操作执行器","286":"/user_guide/basic_concept.html#_6-填充方式","287":"/user_guide/basic_concept.html#_7-配置风格","288":"/user_guide/faq.html#faq","289":"/user_guide/faq.html#填充不生效","290":"/user_guide/faq.html#如何实现嵌套填充","291":"/user_guide/faq.html#如何实现级联填充","292":"/user_guide/faq.html#如何处理一对多的情况","293":"/user_guide/faq.html#键字段可以是按分隔符拼接的字符串吗","294":"/user_guide/faq.html#键字段可以是集合或数组吗","295":"/user_guide/faq.html#为什么使用异步执行器的时候报错","296":"/user_guide/faq.html#怎么刷新容器的数据","297":"/user_guide/faq.html#怎么忽略掉某些字段不进行填充","298":"/user_guide/faq.html#为什么-containermethod-注解不生效","299":"/user_guide/faq.html#为什么-autooperate-注解不生效","300":"/user_guide/faq.html#为什么引了-guava-和-hutool","301":"/user_guide/faq.html#支持-jdk9-springboot3-吗","302":"/user_guide/faq.html#容器可以做一些自定义的初始化-销毁操作吗","303":"/user_guide/faq.html#可以支持同时根据多个-key-字段填充数据吗","304":"/user_guide/faq.html#启动应用报错-no-servletcontext-set","305":"/user_guide/faq.html#可以多线程填充吗","306":"/user_guide/getting_started/getting_started_abstract.html#快速开始","307":"/user_guide/getting_started/getting_started_with_spring.html#在-spring-环境使用","308":"/user_guide/getting_started/getting_started_with_spring.html#_1-安装","309":"/user_guide/getting_started/getting_started_with_spring.html#_2-启用配置","310":"/user_guide/getting_started/getting_started_with_spring.html#_3-配置数据源","311":"/user_guide/getting_started/getting_started_with_spring.html#_4-配置填充操作","312":"/user_guide/getting_started/getting_started_with_spring.html#_5-触发填充","313":"/user_guide/getting_started/getting_started_with_spring.html#_5-1-手动填充","314":"/user_guide/getting_started/getting_started_with_spring.html#_5-2-自动填充","315":"/user_guide/getting_started/getting_started_with_spring.html#_6-完整代码","316":"/user_guide/getting_started/getting_started_with_springboot.html#在-springboot-环境使用","317":"/user_guide/getting_started/getting_started_with_springboot.html#_1-安装","318":"/user_guide/getting_started/getting_started_with_springboot.html#_2-配置数据源","319":"/user_guide/getting_started/getting_started_with_springboot.html#_3-配置填充操作","320":"/user_guide/getting_started/getting_started_with_springboot.html#_4-触发填充","321":"/user_guide/getting_started/getting_started_with_springboot.html#_4-1-手动填充","322":"/user_guide/getting_started/getting_started_with_springboot.html#_4-2-自动填充","323":"/user_guide/getting_started/getting_started_with_springboot.html#_5-完整代码","324":"/user_guide/getting_started/getting_started_without_spring.html#在非-spring-环境使用","325":"/user_guide/getting_started/getting_started_without_spring.html#_1-安装","326":"/user_guide/getting_started/getting_started_without_spring.html#_2-创建全局配置","327":"/user_guide/getting_started/getting_started_without_spring.html#_3-配置数据源","328":"/user_guide/getting_started/getting_started_without_spring.html#_4-配置填充操作","329":"/user_guide/getting_started/getting_started_without_spring.html#_5-触发操作","330":"/user_guide/getting_started/getting_started_without_spring.html#_6-完整代码","331":"/user_guide/operational_principle.html#原理","332":"/user_guide/what_is_crane4j.html#简介","333":"/user_guide/what_is_crane4j.html#_1-什么是字段填充","334":"/user_guide/what_is_crane4j.html#_2-用-crane4j-怎么做","335":"/user_guide/what_is_crane4j.html#_3-为什么需要-crane4j","336":"/user_guide/what_is_crane4j.html#_4-如何开始使用"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,19],"1":[2,1,77],"2":[2,1,1],"3":[3,2,27],"4":[2,2,18],"5":[3,2,31],"6":[2,1,95],"7":[1,1,31],"8":[2,1,1],"9":[2,3,92],"10":[3,3,25],"11":[2,3,41],"12":[2,1,34],"13":[3,3,52],"14":[2,3,62],"15":[3,3,49],"16":[2,1,86],"17":[1,1,68],"18":[1,1,7],"19":[2,1,53],"20":[2,1,65],"21":[2,1,70],"22":[1,1,31],"23":[2,1,23],"24":[2,1,167],"25":[1,1,58],"26":[2,1,1],"27":[2,3,45],"28":[3,3,57],"29":[3,3,24],"30":[3,3,33],"31":[3,3,98],"32":[2,1,11],"33":[3,3,57],"34":[4,3,28],"35":[2,1,48],"36":[1,1,86],"37":[1,1,61],"38":[1,1,36],"39":[2,1,26],"40":[2,1,38],"41":[3,3,33],"42":[4,3,50],"43":[2,1,28],"44":[3,3,52],"45":[3,3,43],"46":[2,3,48],"47":[1,1,7],"48":[2,1,50],"49":[2,1,66],"50":[2,1,51],"51":[2,1,73],"52":[1,1,55],"53":[1,1,31],"54":[2,1,30],"55":[2,1,48],"56":[1,1,68],"57":[1,1,9],"58":[2,1,56],"59":[2,1,67],"60":[2,1,59],"61":[2,1,77],"62":[1,1,1],"63":[2,1,27],"64":[2,1,12],"65":[3,3,46],"66":[2,3,20],"67":[3,3,75],"68":[2,1,49],"69":[1,1,34],"70":[1,1,27],"71":[2,1,105],"72":[2,1,61],"73":[2,1,89],"74":[2,1,63],"75":[2,1,43],"76":[2,1,24],"77":[2,1,52],"78":[2,1,31],"79":[2,1,97],"80":[1,1,96],"81":[1,1,1],"82":[2,1,48],"83":[2,1,21],"84":[1,1,34],"85":[2,1,6],"86":[2,3,72],"87":[3,3,31],"88":[3,3,40],"89":[3,3,42],"90":[2,1,73],"91":[2,1,17],"92":[3,3,70],"93":[3,3,42],"94":[2,3,50],"95":[3,3,26],"96":[2,1,18],"97":[3,3,55],"98":[3,3,23],"99":[2,1,29],"100":[1,1,12],"101":[2,1,8],"102":[2,3,28],"103":[3,3,28],"104":[3,3,22],"105":[3,3,27],"106":[2,1,30],"107":[2,1,35],"108":[1,1,13],"109":[2,1,1],"110":[2,3,50],"111":[3,3,30],"112":[3,3,25],"113":[3,3,50],"114":[3,3,27],"115":[2,1,1],"116":[3,3,37],"117":[2,3,62],"118":[3,3,51],"119":[3,3,39],"120":[3,3,24],"121":[2,1,118],"122":[1,1,18],"123":[2,1,58],"124":[2,1,54],"125":[1,1,19],"126":[2,1,43],"127":[2,1,12],"128":[3,3,23],"129":[2,3,32],"130":[2,1,1],"131":[3,3,83],"132":[3,3,88],"133":[1,1,46],"134":[2,1,48],"135":[2,3,33],"136":[3,3,9],"137":[2,1,40],"138":[2,1,43],"139":[2,1,34],"140":[2,1,84],"141":[2,1,48],"142":[2,1,53],"143":[2,1,18],"144":[3,3,45],"145":[3,3,108],"146":[1,1,17],"147":[2,1,44],"148":[2,1,34],"149":[3,3,43],"150":[2,3,30],"151":[3,3,76],"152":[3,3,60],"153":[3,3,36],"154":[3,3,37],"155":[3,3,52],"156":[2,1,27],"157":[2,2,31],"158":[2,2,9],"159":[5,4,31],"160":[4,4,32],"161":[2,2,114],"162":[2,2,39],"163":[2,1,10],"164":[2,2,32],"165":[2,2,8],"166":[3,4,13],"167":[2,4,28],"168":[3,4,12],"169":[2,2,44],"170":[3,4,28],"171":[3,4,40],"172":[2,4,24],"173":[3,4,35],"174":[3,2,57],"175":[2,2,54],"176":[2,1,13],"177":[2,1,31],"178":[2,1,57],"179":[2,1,84],"180":[2,1,47],"181":[1,1,91],"182":[1,1,1],"183":[1,1,78],"184":[2,1,52],"185":[3,1,45],"186":[2,1,61],"187":[1,1,100],"188":[1,1,18],"189":[1,1,78],"190":[1,1,35],"191":[1,1,16],"192":[2,1,37],"193":[1,1,18],"194":[1,1,72],"195":[1,1,27],"196":[1,1,25],"197":[1,1,22],"198":[1,1,35],"199":[1,1,51],"200":[1,1,16],"201":[1,1,22],"202":[1,1,37],"203":[2,1,28],"204":[2,1,62],"205":[1,1,1],"206":[4,1,41],"207":[1,1,30],"208":[1,1,46],"209":[1,1,72],"210":[1,1,124],"211":[1,1,125],"212":[1,1,42],"213":[1,1,61],"214":[1,1,8],"215":[1,1,7],"216":[6,1,56],"217":[6,1,28],"218":[7,1,35],"219":[8,1,59],"220":[7,1,51],"221":[7,1,43],"222":[6,1,85],"223":[7,1,45],"224":[6,1,66],"225":[7,1,36],"226":[7,1,7],"227":[7,1,31],"228":[7,1,52],"229":[7,1,37],"230":[7,1,8],"231":[6,1,8],"232":[7,1,39],"233":[7,1,55],"234":[7,1,16],"235":[6,1,17],"236":[7,1,57],"237":[1,1,7],"238":[2,1,1],"239":[2,3,21],"240":[3,3,16],"241":[3,3,10],"242":[2,1,1],"243":[3,3,17],"244":[2,3,24],"245":[3,3,15],"246":[3,3,15],"247":[2,1,18],"248":[2,1,21],"249":[6,1,35],"250":[2,1,66],"251":[2,1,32],"252":[2,2,45],"253":[2,2,44],"254":[2,2,73],"255":[2,1,8],"256":[2,2,52],"257":[2,2,97],"258":[2,2,55],"259":[2,1,8],"260":[2,2,52],"261":[2,2,90],"262":[2,2,59],"263":[2,1,8],"264":[2,2,67],"265":[2,2,110],"266":[2,1,11],"267":[2,2,49],"268":[2,2,37],"269":[2,1,10],"270":[2,2,5],"271":[2,4,38],"272":[3,4,98],"273":[2,2,67],"274":[2,2,65],"275":[2,2,61],"276":[2,1,33],"277":[2,2,102],"278":[2,2,68],"279":[2,2,62],"280":[1,1,14],"281":[2,1,25],"282":[2,1,85],"283":[4,1,91],"284":[2,1,14],"285":[2,1,53],"286":[2,1,43],"287":[2,1,105],"288":[1,1,4],"289":[2,1,62],"290":[2,1,6],"291":[2,1,5],"292":[2,1,21],"293":[2,1,21],"294":[2,1,22],"295":[2,1,8],"296":[2,1,16],"297":[2,1,5],"298":[4,1,18],"299":[4,1,25],"300":[5,1,19],"301":[5,1,2],"302":[3,1,7],"303":[4,1,5],"304":[5,1,25],"305":[2,1,7],"306":[1,1,30],"307":[3,1,8],"308":[2,3,43],"309":[2,3,39],"310":[2,3,46],"311":[2,3,35],"312":[2,3,7],"313":[3,5,27],"314":[3,5,41],"315":[2,3,77],"316":[3,1,8],"317":[2,3,50],"318":[2,3,46],"319":[2,3,35],"320":[2,3,7],"321":[3,5,27],"322":[3,5,41],"323":[2,3,76],"324":[3,1,8],"325":[2,3,28],"326":[2,3,8],"327":[2,3,43],"328":[2,3,35],"329":[2,3,29],"330":[2,3,65],"331":[1,1,48],"332":[1,1,38],"333":[3,1,80],"334":[5,1,48],"335":[4,1,58],"336":[3,1,15]},"averageFieldLength":[2.433234421364983,1.738872403560831,40.68842729970326],"storedFields":{"0":{"title":"异步填充","titles":[]},"1":{"title":"1.启用执行器","titles":[]},"2":{"title":"2.使用执行器","titles":[]},"3":{"title":"2.1.在自动填充时使用","titles":["2.使用执行器"]},"4":{"title":"2.2.在手动填充时使用","titles":["2.使用执行器"]},"5":{"title":"2.3.在操作者接口中使用","titles":["2.使用执行器"]},"6":{"title":"3.批量大小","titles":[]},"7":{"title":"缓存","titles":[]},"8":{"title":"1.使用","titles":["缓存"]},"9":{"title":"1.1.通过注解配置","titles":["缓存","1.使用"]},"10":{"title":"1.2.使用配置文件配置","titles":["缓存","1.使用"]},"11":{"title":"3.3.手动配置","titles":["缓存","1.使用"]},"12":{"title":"2.缓存管理器","titles":["缓存"]},"13":{"title":"2.1.指定缓存管理器","titles":["缓存","2.缓存管理器"]},"14":{"title":"2.2.使用内置管理器","titles":["缓存","2.缓存管理器"]},"15":{"title":"2.3.刷新缓存","titles":["缓存","2.缓存管理器"]},"16":{"title":"3.自定义缓存","titles":["缓存"]},"17":{"title":"组合注解","titles":[]},"18":{"title":"组件的回调接口","titles":[]},"19":{"title":"1.容器生命周期处理器","titles":["组件的回调接口"]},"20":{"title":"2.容器生命周期接口","titles":["组件的回调接口"]},"21":{"title":"3.对象回调接口","titles":["组件的回调接口"]},"22":{"title":"注解处理器","titles":[]},"23":{"title":"1.内置处理器","titles":["注解处理器"]},"24":{"title":"2.自定义注解处理器","titles":["注解处理器"]},"25":{"title":"操作者接口","titles":[]},"26":{"title":"1.统一填充方法参数","titles":["操作者接口"]},"27":{"title":"1.1.声明装配操作","titles":["操作者接口","1.统一填充方法参数"]},"28":{"title":"1.2.创建代理对象","titles":["操作者接口","1.统一填充方法参数"]},"29":{"title":"1.3.对入参进行填充","titles":["操作者接口","1.统一填充方法参数"]},"30":{"title":"1.4.指定执行器和解析器","titles":["操作者接口","1.统一填充方法参数"]},"31":{"title":"1.5.将其它参数作为数据源","titles":["操作者接口","1.统一填充方法参数"]},"32":{"title":"2.分别填充方法参数","titles":["操作者接口"]},"33":{"title":"2.1.简单使用","titles":["操作者接口","2.分别填充方法参数"]},"34":{"title":"2.2.使用 @AutoOperate 注解","titles":["操作者接口","2.分别填充方法参数"]},"35":{"title":"3.方法工厂","titles":["操作者接口"]},"36":{"title":"反射工厂","titles":[]},"37":{"title":"类型转换器","titles":[]},"38":{"title":"装配处理器","titles":[]},"39":{"title":"1.一对一","titles":["装配处理器"]},"40":{"title":"2.一对多","titles":["装配处理器"]},"41":{"title":"2.1.使用一对多装配处理器","titles":["装配处理器","2.一对多"]},"42":{"title":"2.2.使用参数对象作为 Key 值","titles":["装配处理器","2.一对多"]},"43":{"title":"3.多对多","titles":["装配处理器"]},"44":{"title":"3.1.使用多对多装配处理器","titles":["装配处理器","3.多对多"]},"45":{"title":"3.2.更换分隔符","titles":["装配处理器","3.多对多"]},"46":{"title":"3.3.拼接字符串","titles":["装配处理器","3.多对多"]},"47":{"title":"常量容器","titles":[]},"48":{"title":"1.创建容器","titles":["常量容器"]},"49":{"title":"2.可配置项","titles":["常量容器"]},"50":{"title":"3.批量扫描","titles":["常量容器"]},"51":{"title":"4.选项式配置","titles":["常量容器"]},"52":{"title":"数据源容器","titles":[]},"53":{"title":"容器提供者","titles":[]},"54":{"title":"1.创建并注册","titles":["容器提供者"]},"55":{"title":"2.在配置中引用","titles":["容器提供者"]},"56":{"title":"自定义容器","titles":[]},"57":{"title":"枚举容器","titles":[]},"58":{"title":"1.创建容器","titles":["枚举容器"]},"59":{"title":"2.可配置项","titles":["枚举容器"]},"60":{"title":"3.批量扫描","titles":["枚举容器"]},"61":{"title":"4.选项式配置","titles":["枚举容器"]},"62":{"title":"对象内省","titles":[]},"63":{"title":"1.对象内省","titles":["对象内省"]},"64":{"title":"2.键值映射","titles":["对象内省"]},"65":{"title":"2.1.配置","titles":["对象内省","2.键值映射"]},"66":{"title":"2.2.使用","titles":["对象内省","2.键值映射"]},"67":{"title":"2.3.获取注解元素","titles":["对象内省","2.键值映射"]},"68":{"title":"Lambda 容器","titles":[]},"69":{"title":"集合容器","titles":[]},"70":{"title":"方法容器","titles":[]},"71":{"title":"1.声明容器","titles":["方法容器"]},"72":{"title":"2.可选配置项","titles":["方法容器"]},"73":{"title":"3.对结果分组","titles":["方法容器"]},"74":{"title":"4.接受参数对象","titles":["方法容器"]},"75":{"title":"5.缓存","titles":["方法容器"]},"76":{"title":"6.手动注册","titles":["方法容器"]},"77":{"title":"7.包装类提取","titles":["方法容器"]},"78":{"title":"8.空值处理","titles":["方法容器"]},"79":{"title":"9.选项式配置","titles":["方法容器"]},"80":{"title":"对象容器","titles":[]},"81":{"title":"注册数据源容器","titles":[]},"82":{"title":"1..自动注册","titles":["注册数据源容器"]},"83":{"title":"2.手动注册","titles":["注册数据源容器"]},"84":{"title":"声明一个装配操作","titles":[]},"85":{"title":"1.声明装配操作","titles":["声明一个装配操作"]},"86":{"title":"1.1.在属性上声明","titles":["声明一个装配操作","1.声明装配操作"]},"87":{"title":"1.2.在方法上声明","titles":["声明一个装配操作","1.声明装配操作"]},"88":{"title":"1.3.在类上声明","titles":["声明一个装配操作","1.声明装配操作"]},"89":{"title":"1.4.重复声明","titles":["声明一个装配操作","1.声明装配操作"]},"90":{"title":"2.显式指定key类型","titles":["声明一个装配操作"]},"91":{"title":"3.键的解析策略","titles":["声明一个装配操作"]},"92":{"title":"3.1.将属性值合成为参数对象","titles":["声明一个装配操作","3.键的解析策略"]},"93":{"title":"3.2.将字符串按分隔符拆分","titles":["声明一个装配操作","3.键的解析策略"]},"94":{"title":"3.3.为键值指定别名","titles":["声明一个装配操作","3.键的解析策略"]},"95":{"title":"3.4.自定义解析器","titles":["声明一个装配操作","3.键的解析策略"]},"96":{"title":"4.属性映射策略","titles":["声明一个装配操作"]},"97":{"title":"4.1.指定策略","titles":["声明一个装配操作","4.属性映射策略"]},"98":{"title":"4.2.自定义策略","titles":["声明一个装配操作","4.属性映射策略"]},"99":{"title":"5.表达式支持","titles":["声明一个装配操作"]},"100":{"title":"填充嵌套对象","titles":[]},"101":{"title":"1.声明拆卸操作","titles":["填充嵌套对象"]},"102":{"title":"1.1.在属性上声明","titles":["填充嵌套对象","1.声明拆卸操作"]},"103":{"title":"1.2.在方法上声明","titles":["填充嵌套对象","1.声明拆卸操作"]},"104":{"title":"1.3.在类上声明","titles":["填充嵌套对象","1.声明拆卸操作"]},"105":{"title":"1.3.递归拆卸","titles":["填充嵌套对象","1.声明拆卸操作"]},"106":{"title":"2.自动推断类型","titles":["填充嵌套对象"]},"107":{"title":"3.拆卸操作处理器","titles":["填充嵌套对象"]},"108":{"title":"设置操作触发条件","titles":[]},"109":{"title":"1.使用","titles":["设置操作触发条件"]},"110":{"title":"1.1.配置","titles":["设置操作触发条件","1.使用"]},"111":{"title":"1.2.绑定到操作","titles":["设置操作触发条件","1.使用"]},"112":{"title":"1.3.取反","titles":["设置操作触发条件","1.使用"]},"113":{"title":"1.4.组合","titles":["设置操作触发条件","1.使用"]},"114":{"title":"1.5.注解的作用域","titles":["设置操作触发条件","1.使用"]},"115":{"title":"2.内置注解","titles":["设置操作触发条件"]},"116":{"title":"2.1.当表达式结果为真","titles":["设置操作触发条件","2.内置注解"]},"117":{"title":"2.2.当指定属性值等于指定值","titles":["设置操作触发条件","2.内置注解"]},"118":{"title":"2.3.当指定属性值非空","titles":["设置操作触发条件","2.内置注解"]},"119":{"title":"2.4.当填充对象为指定类型","titles":["设置操作触发条件","2.内置注解"]},"120":{"title":"2.5.当存在指定数据源容器","titles":["设置操作触发条件","2.内置注解"]},"121":{"title":"3.自定义条件","titles":["设置操作触发条件"]},"122":{"title":"操作分组","titles":[]},"123":{"title":"1.配置分组","titles":["操作分组"]},"124":{"title":"2.按操作组执行","titles":["操作分组"]},"125":{"title":"操作排序","titles":[]},"126":{"title":"1.配置排序规则","titles":["操作排序"]},"127":{"title":"2.按顺序执行","titles":["操作排序"]},"128":{"title":"2.1.手动填充","titles":["操作排序","2.按顺序执行"]},"129":{"title":"2.2.自动填充","titles":["操作排序","2.按顺序执行"]},"130":{"title":"3.与嵌套填充配合使用","titles":["操作排序"]},"131":{"title":"3.1.平铺操作执行器","titles":["操作排序","3.与嵌套填充配合使用"]},"132":{"title":"3.2.递归操作执行器","titles":["操作排序","3.与嵌套填充配合使用"]},"133":{"title":"配置属性映射","titles":[]},"134":{"title":"1.属性到属性","titles":["配置属性映射"]},"135":{"title":"1.1.同名属性","titles":["配置属性映射","1.属性到属性"]},"136":{"title":"1.2.自动类型转换","titles":["配置属性映射","1.属性到属性"]},"137":{"title":"2.对象到属性","titles":["配置属性映射"]},"138":{"title":"3.属性到键","titles":["配置属性映射"]},"139":{"title":"4.对象到键","titles":["配置属性映射"]},"140":{"title":"5.批量映射","titles":["配置属性映射"]},"141":{"title":"6.属性映射模板","titles":["配置属性映射"]},"142":{"title":"7.链式操作符","titles":["配置属性映射"]},"143":{"title":"8.属性映射策略","titles":["配置属性映射"]},"144":{"title":"8.1.指定策略","titles":["配置属性映射","8.属性映射策略"]},"145":{"title":"8.2.自定义策略","titles":["配置属性映射","8.属性映射策略"]},"146":{"title":"触发操作","titles":[]},"147":{"title":"1.手动填充","titles":["触发操作"]},"148":{"title":"2.自动填充","titles":["触发操作"]},"149":{"title":"2.1.配置","titles":["触发操作","2.自动填充"]},"150":{"title":"2.2.自动类型推断","titles":["触发操作","2.自动填充"]},"151":{"title":"2.3.包装类提取","titles":["触发操作","2.自动填充"]},"152":{"title":"2.4.条件表达式","titles":["触发操作","2.自动填充"]},"153":{"title":"2.5.指定分组","titles":["触发操作","2.自动填充"]},"154":{"title":"2.6.指定执行器","titles":["触发操作","2.自动填充"]},"155":{"title":"2.7.从注解元素获取配置","titles":["触发操作","2.自动填充"]},"156":{"title":"Jackson 插件","titles":[]},"157":{"title":"1.安装","titles":["Jackson 插件"]},"158":{"title":"2.启用插件","titles":["Jackson 插件"]},"159":{"title":"2.1.在 Spring 环境","titles":["Jackson 插件","2.启用插件"]},"160":{"title":"2.2.在非 Spring 环境","titles":["Jackson 插件","2.启用插件"]},"161":{"title":"2.使用","titles":["Jackson 插件"]},"162":{"title":"3.可选配置","titles":["Jackson 插件"]},"163":{"title":"MybatisPlus 插件","titles":[]},"164":{"title":"1.安装","titles":["MybatisPlus 插件"]},"165":{"title":"2.注册Mapper","titles":["MybatisPlus 插件"]},"166":{"title":"2.1.懒加载","titles":["MybatisPlus 插件","2.注册Mapper"]},"167":{"title":"2.2.自动注册","titles":["MybatisPlus 插件","2.注册Mapper"]},"168":{"title":"2.3.手动注册","titles":["MybatisPlus 插件","2.注册Mapper"]},"169":{"title":"3.使用","titles":["MybatisPlus 插件"]},"170":{"title":"3.1.根据主键查询全部字段","titles":["MybatisPlus 插件","3.使用"]},"171":{"title":"3.2.根据主键查询指定字段","titles":["MybatisPlus 插件","3.使用"]},"172":{"title":"3.3.根据指定外键查询全部字段","titles":["MybatisPlus 插件","3.使用"]},"173":{"title":"3.4.根据指定外键查询指定字段","titles":["MybatisPlus 插件","3.使用"]},"174":{"title":"4.指定查询字段 SQL","titles":["MybatisPlus 插件"]},"175":{"title":"5.对结果分组","titles":["MybatisPlus 插件"]},"176":{"title":"Redis 插件","titles":[]},"177":{"title":"1.安装","titles":[]},"178":{"title":"2.启用缓存管理器","titles":[]},"179":{"title":"3.键前缀","titles":[]},"180":{"title":"4.清空缓存","titles":[]},"181":{"title":"在提问之前","titles":[]},"182":{"title":"当你提问时","titles":[]},"183":{"title":"慎选提问的论坛","titles":["当你提问时"]},"184":{"title":"Stack Overflow","titles":["当你提问时"]},"185":{"title":"网站和 IRC 论坛","titles":["当你提问时"]},"186":{"title":"第二步,使用项目邮件列表","titles":["当你提问时"]},"187":{"title":"使用有意义且描述明确的标题","titles":["当你提问时"]},"188":{"title":"使问题容易回复","titles":["当你提问时"]},"189":{"title":"使用易于读取且标准的文件格式发送问题","titles":["当你提问时"]},"190":{"title":"精确地描述问题并言之有物","titles":["当你提问时"]},"191":{"title":"话不在多而在精","titles":["当你提问时"]},"192":{"title":"别动辄声称找到 Bug","titles":["当你提问时"]},"193":{"title":"低声下气不能代替你的功课","titles":["当你提问时"]},"194":{"title":"描述问题症状而非你的猜测","titles":["当你提问时"]},"195":{"title":"按发生时间先后列出问题症状","titles":["当你提问时"]},"196":{"title":"描述目标而不是过程","titles":["当你提问时"]},"197":{"title":"别要求使用私人电邮回复","titles":["当你提问时"]},"198":{"title":"清楚明确地表达你的问题以及需求","titles":["当你提问时"]},"199":{"title":"询问有关代码的问题时","titles":["当你提问时"]},"200":{"title":"别把自己家庭作业的问题贴上来","titles":["当你提问时"]},"201":{"title":"去掉无意义的提问句","titles":["当你提问时"]},"202":{"title":"即使你很急也不要在标题写紧急","titles":["当你提问时"]},"203":{"title":"礼多人不怪,而且有时还很有帮助","titles":["当你提问时"]},"204":{"title":"问题解决后,加个简短的补充说明","titles":["当你提问时"]},"205":{"title":"如何解读答案","titles":[]},"206":{"title":"RTFM 和 STFW:如何知道你已完全搞砸了","titles":["如何解读答案"]},"207":{"title":"如果还是搞不懂","titles":["如何解读答案"]},"208":{"title":"处理无礼的回应","titles":["如何解读答案"]},"209":{"title":"如何避免扮演失败者","titles":[]},"210":{"title":"不该问的问题","titles":[]},"211":{"title":"好问题与蠢问题","titles":[]},"212":{"title":"如果得不到回答","titles":[]},"213":{"title":"如何更好地回答问题","titles":[]},"214":{"title":"相关资源","titles":[]},"215":{"title":"鸣谢","titles":[]},"216":{"title":"1.0.0 (2023-03-23)","titles":[]},"217":{"title":"1.1.0 (2023-03-30)","titles":[]},"218":{"title":"1.2.0 (2023-04-09)","titles":[]},"219":{"title":"1.3.0-ALPHA (2023-05-10)","titles":[]},"220":{"title":"2.0.0-ALPHA (2023-07-08)","titles":[]},"221":{"title":"2.0.0-BATE (2023-07-30)","titles":[]},"222":{"title":"2.0.0 (2023-08-06)","titles":[]},"223":{"title":"2.1.0 (2023-08-21)","titles":[]},"224":{"title":"2.2.0 (2023-09-25)","titles":[]},"225":{"title":"2.3.0 (2023-10-18)","titles":[]},"226":{"title":"2.3.1 (2023-12-10)","titles":[]},"227":{"title":"2.4.0 (2024-01-15)","titles":[]},"228":{"title":"2.5.0 (2024-02-01)","titles":[]},"229":{"title":"2.6.0 (2024-02-23)","titles":[]},"230":{"title":"2.6.1 (2024-03-13)","titles":[]},"231":{"title":"2.6.2 (2024-03-27)","titles":[]},"232":{"title":"2.7.0 (2024-04-08)","titles":[]},"233":{"title":"2.8.0 (2024-05-07)","titles":[]},"234":{"title":"2.8.1 (2024-06-05)","titles":[]},"235":{"title":"2.8.2 (2024-06-16)","titles":[]},"236":{"title":"2.9.0 (2024-06-30)","titles":[]},"237":{"title":"配置文件","titles":[]},"238":{"title":"1.反射","titles":["配置文件"]},"239":{"title":"1.1.是否启用字节码反射","titles":["配置文件","1.反射"]},"240":{"title":"1.2.是否支持处理Map对象","titles":["配置文件","1.反射"]},"241":{"title":"1.3.是否支持链式操作符","titles":["配置文件","1.反射"]},"242":{"title":"2.容器","titles":["配置文件"]},"243":{"title":"2.1.扫描常量容器","titles":["配置文件","2.容器"]},"244":{"title":"2.2.扫描枚举容器","titles":["配置文件","2.容器"]},"245":{"title":"2.3.扫描方法容器","titles":["配置文件","2.容器"]},"246":{"title":"2.4.容器缓存配置","titles":["配置文件","2.容器"]},"247":{"title":"3.自动填充","titles":["配置文件"]},"248":{"title":"4.操作配置预解析","titles":["配置文件"]},"249":{"title":"5.是否忽略 key 值为 null 的操作","titles":["配置文件"]},"250":{"title":"示例:如何在填充后进行附加操作","titles":[]},"251":{"title":"示例:如何在执行时排除某些操作","titles":[]},"252":{"title":"1.进行分组填充","titles":["示例:如何在执行时排除某些操作"]},"253":{"title":"2.设置条件填充","titles":["示例:如何在执行时排除某些操作"]},"254":{"title":"3.手动排除","titles":["示例:如何在执行时排除某些操作"]},"255":{"title":"示例:如何基于枚举进行填充","titles":[]},"256":{"title":"1.准备","titles":["示例:如何基于枚举进行填充"]},"257":{"title":"2.使用","titles":["示例:如何基于枚举进行填充"]},"258":{"title":"3.组合式配置","titles":["示例:如何基于枚举进行填充"]},"259":{"title":"示例:如何基于方法填充","titles":[]},"260":{"title":"1.准备","titles":["示例:如何基于方法填充"]},"261":{"title":"2.使用","titles":["示例:如何基于方法填充"]},"262":{"title":"3.选项式配置","titles":["示例:如何基于方法填充"]},"263":{"title":"示例:如何级联填充","titles":[]},"264":{"title":"1.指定填充顺序","titles":["示例:如何级联填充"]},"265":{"title":"2.在数据源层面处理级联关系","titles":["示例:如何级联填充"]},"266":{"title":"示例:如何填充被包装的返回值","titles":[]},"267":{"title":"1.填充被包装的数据","titles":["示例:如何填充被包装的返回值"]},"268":{"title":"2.填充被多级包装的数据","titles":["示例:如何填充被包装的返回值"]},"269":{"title":"示例: 如何填充一个复杂对象","titles":[]},"270":{"title":"1.原始代码","titles":["示例: 如何填充一个复杂对象"]},"271":{"title":"1.1.实体类与数据结构","titles":["示例: 如何填充一个复杂对象","1.原始代码"]},"272":{"title":"1.2.实现代码","titles":["示例: 如何填充一个复杂对象","1.原始代码"]},"273":{"title":"2.使用选项式风格配置","titles":["示例: 如何填充一个复杂对象"]},"274":{"title":"3.使用组合式风格配置","titles":["示例: 如何填充一个复杂对象"]},"275":{"title":"4.使用组合注解简化配置","titles":["示例: 如何填充一个复杂对象"]},"276":{"title":"示例:如何通过多个Key关联数据","titles":[]},"277":{"title":"1.使用对象容器","titles":["示例:如何通过多个Key关联数据"]},"278":{"title":"2.使用方法容器","titles":["示例:如何通过多个Key关联数据"]},"279":{"title":"3.配合容器提供者使用","titles":["示例:如何通过多个Key关联数据"]},"280":{"title":"基本概念","titles":[]},"281":{"title":"1.全局配置","titles":["基本概念"]},"282":{"title":"2.数据源容器","titles":["基本概念"]},"283":{"title":"3.操作配置&解析器","titles":["基本概念"]},"284":{"title":"4.注解处理器","titles":["基本概念"]},"285":{"title":"5.操作执行器","titles":["基本概念"]},"286":{"title":"6.填充方式","titles":["基本概念"]},"287":{"title":"7.配置风格","titles":["基本概念"]},"288":{"title":"FAQ","titles":[]},"289":{"title":"填充不生效?","titles":["FAQ"]},"290":{"title":"如何实现嵌套填充?","titles":["FAQ"]},"291":{"title":"如何实现级联填充?","titles":["FAQ"]},"292":{"title":"如何处理一对多的情况?","titles":["FAQ"]},"293":{"title":"键字段可以是按分隔符拼接的字符串吗?","titles":["FAQ"]},"294":{"title":"键字段可以是集合或数组吗?","titles":["FAQ"]},"295":{"title":"为什么使用异步执行器的时候报错?","titles":["FAQ"]},"296":{"title":"怎么刷新容器的数据 ?","titles":["FAQ"]},"297":{"title":"怎么忽略掉某些字段不进行填充?","titles":["FAQ"]},"298":{"title":"为什么 @ContainerMethod 注解不生效?","titles":["FAQ"]},"299":{"title":"为什么 @AutoOperate 注解不生效?","titles":["FAQ"]},"300":{"title":"为什么引了 guava 和 hutool ?","titles":["FAQ"]},"301":{"title":"支持 jdk9+ / springboot3 吗?","titles":["FAQ"]},"302":{"title":"容器可以做一些自定义的初始化/销毁操作吗?","titles":["FAQ"]},"303":{"title":"可以支持同时根据多个 key 字段填充数据吗?","titles":["FAQ"]},"304":{"title":"启动应用报错 “No ServletContext set”","titles":["FAQ"]},"305":{"title":"可以多线程填充吗?","titles":["FAQ"]},"306":{"title":"快速开始","titles":[]},"307":{"title":"在 Spring 环境使用","titles":[]},"308":{"title":"1.安装","titles":["在 Spring 环境使用"]},"309":{"title":"2.启用配置","titles":["在 Spring 环境使用"]},"310":{"title":"3.配置数据源","titles":["在 Spring 环境使用"]},"311":{"title":"4.配置填充操作","titles":["在 Spring 环境使用"]},"312":{"title":"5.触发填充","titles":["在 Spring 环境使用"]},"313":{"title":"5.1.手动填充","titles":["在 Spring 环境使用","5.触发填充"]},"314":{"title":"5.2.自动填充","titles":["在 Spring 环境使用","5.触发填充"]},"315":{"title":"6.完整代码","titles":["在 Spring 环境使用"]},"316":{"title":"在 SpringBoot 环境使用","titles":[]},"317":{"title":"1.安装","titles":["在 SpringBoot 环境使用"]},"318":{"title":"2.配置数据源","titles":["在 SpringBoot 环境使用"]},"319":{"title":"3.配置填充操作","titles":["在 SpringBoot 环境使用"]},"320":{"title":"4.触发填充","titles":["在 SpringBoot 环境使用"]},"321":{"title":"4.1.手动填充","titles":["在 SpringBoot 环境使用","4.触发填充"]},"322":{"title":"4.2.自动填充","titles":["在 SpringBoot 环境使用","4.触发填充"]},"323":{"title":"5.完整代码","titles":["在 SpringBoot 环境使用"]},"324":{"title":"在非 Spring 环境使用","titles":[]},"325":{"title":"1.安装","titles":["在非 Spring 环境使用"]},"326":{"title":"2.创建全局配置","titles":["在非 Spring 环境使用"]},"327":{"title":"3.配置数据源","titles":["在非 Spring 环境使用"]},"328":{"title":"4.配置填充操作","titles":["在非 Spring 环境使用"]},"329":{"title":"5.触发操作","titles":["在非 Spring 环境使用"]},"330":{"title":"6.完整代码","titles":["在非 Spring 环境使用"]},"331":{"title":"原理","titles":[]},"332":{"title":"简介","titles":[]},"333":{"title":"1.什么是字段填充?","titles":["简介"]},"334":{"title":"2.用 crane4j 怎么做?","titles":["简介"]},"335":{"title":"3.为什么需要 crane4j?","titles":["简介"]},"336":{"title":"4.如何开始使用?","titles":["简介"]}},"dirtCount":0,"index":[["权限等级等等",{"2":{"335":1}}],["繁多的数据源",{"2":{"335":1}}],["复杂的数据结构",{"2":{"335":1}}],["复制下来并加入足够重现这个状况的代码",{"2":{"199":1}}],["灵活而直观的",{"2":{"335":1}}],["灵活度高",{"2":{"287":1}}],["效果与执行之前的代码完全一致",{"2":{"334":1}}],["步",{"2":{"333":1}}],["什么是字段填充",{"0":{"333":1}}],["什么是最精简的测试用例",{"2":{"199":1}}],["经过半年多的更新",{"2":{"332":1}}],["经常寻求技术帮助的人在心中有个更高层次的目标",{"2":{"196":1}}],["于是花了时间写一个小插件",{"2":{"332":1}}],["输入要处理的对象",{"2":{"331":1}}],["成功拦截到该注解方法",{"2":{"314":1,"322":1}}],["成自己选定的色码",{"2":{"196":1}}],["数值或单个对象",{"2":{"314":1,"322":1}}],["数据",{"2":{"224":1,"279":1,"333":1}}],["数据应该原样包含",{"2":{"189":1}}],["数据结构的特殊性",{"2":{"161":1}}],["数据源",{"2":{"260":1}}],["数据源等同于基于",{"2":{"170":1}}],["数据源对象的属性",{"2":{"133":1}}],["数据源的",{"2":{"59":2}}],["数据源容器提供者",{"2":{"279":1}}],["数据源容器支持接受对象类型参数",{"2":{"232":1}}],["数据源容器是填充中最重要的一环",{"2":{"52":1}}],["数据源容器",{"0":{"52":1,"282":1},"2":{"42":1,"84":1,"280":1,"282":1,"310":1,"318":1,"327":1}}],["了解如何在你的本地项目中整合与使用",{"2":{"306":1}}],["涉及到的功能都会在对应的文档上进行强调",{"2":{"306":1}}],["涉及的组件或概念",{"2":{"280":1}}],["推荐与",{"2":{"306":1}}],["推荐为你的自定义注解一并加上一些通用属性",{"2":{"24":1}}],["快速开始",{"0":{"306":1},"2":{"336":2}}],["销毁操作吗",{"0":{"302":1}}],["销毁方法",{"2":{"20":1}}],["拦截方法调用",{"2":{"299":1}}],["怎么做",{"0":{"334":1}}],["怎么忽略掉某些字段不进行填充",{"0":{"297":1}}],["怎么刷新容器的数据",{"0":{"296":1}}],["怎么制作最精简的测试用例",{"2":{"199":1}}],["得到的",{"2":{"289":1}}],["得到它",{"2":{"283":1}}],["确认",{"2":{"289":1}}],["确认待填充的对象可以通过",{"2":{"289":1}}],["确认你填充的对象是否都已经被收集到",{"2":{"289":1}}],["确认通过上述",{"2":{"289":1}}],["确认通过",{"2":{"289":1}}],["确认指定的数据源容器确实有根据",{"2":{"289":1}}],["确认目标对象对应的",{"2":{"289":1}}],["确认操作涉及的属性存在",{"2":{"289":1}}],["确认在",{"2":{"289":1}}],["确保",{"2":{"257":1,"314":1,"322":1}}],["缺点",{"2":{"287":1}}],["缺少用于润滑人类社会正常交往所需的神经",{"2":{"208":1}}],["优点",{"2":{"287":1}}],["优化在",{"2":{"233":1}}],["优化字段映射的执行效率",{"2":{"232":1}}],["优化了一些功能",{"2":{"233":1}}],["优化了很多旧功能",{"2":{"222":1}}],["优化了大量的代码与逻辑",{"2":{"220":1}}],["优化",{"2":{"220":1,"222":1,"223":1,"224":1}}],["框架获取",{"2":{"335":1}}],["框架",{"2":{"287":1}}],["各有优劣",{"2":{"287":1}}],["各个组件的特定阶段插入自定义逻辑",{"2":{"18":1}}],["全自动",{"2":{"286":2}}],["全局配置对象通常是唯一的",{"2":{"281":1}}],["全局配置",{"0":{"281":1},"2":{"280":1}}],["全局配置类后才可以使用",{"2":{"282":1}}],["全局配置类",{"2":{"53":1,"281":1}}],["全局过滤掉",{"2":{"118":1}}],["每种注解处理器都专注于将某一类注解解析为相应的转配操作",{"2":{"284":1}}],["每个开发者至少会对应到上万名用户",{"2":{"212":1}}],["每个填充操作都需要对应一个数据源",{"2":{"52":1,"282":1}}],["每个解析器根据规则将",{"2":{"22":1}}],["泛指一切通过需要",{"2":{"283":1}}],["配合容器提供者使用",{"0":{"279":1}}],["配置解析阶段最终的产物是",{"2":{"331":1}}],["配置解析阶段",{"2":{"331":1}}],["配置解析器应当支持所有的annotatedelement类型对象的注解配置",{"2":{"219":1,"220":1,"222":1}}],["配置填充操作",{"0":{"311":1,"319":1,"328":1}}],["配置数据源",{"0":{"310":1,"318":1,"327":1}}],["配置较为零散",{"2":{"287":1}}],["配置方便",{"2":{"287":1}}],["配置风格",{"0":{"287":1}}],["配置实体类包路径",{"2":{"248":1}}],["配置文件",{"0":{"237":1},"1":{"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1}}],["配置不生效",{"2":{"233":1}}],["配置类",{"2":{"309":1}}],["配置类的工厂方法中使用",{"2":{"229":1}}],["配置类中重新声明一个",{"2":{"36":1}}],["配置了",{"2":{"225":1}}],["配置自动填充",{"2":{"131":1,"132":1}}],["配置排序规则",{"0":{"126":1}}],["配置分组",{"0":{"123":1}}],["配置属性映射",{"0":{"133":1},"1":{"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1},"2":{"92":1,"261":1,"262":1}}],["配置为指定的数据源容器添加缓存功能",{"2":{"246":1}}],["配置为",{"2":{"78":1}}],["配置",{"0":{"65":1,"110":1,"149":1},"2":{"133":1,"157":1,"164":1,"177":1,"243":1,"244":1}}],["配置对象",{"2":{"22":1}}],["配置过期时间",{"2":{"9":2,"75":1}}],["到",{"2":{"304":1}}],["到既然你已经可以在容器中直接拿到要填充的对象了",{"2":{"277":1}}],["到那去就是了",{"2":{"193":1}}],["遍历订单中的管理商品",{"2":{"272":1}}],["客户类型",{"2":{"272":1}}],["客气一点肯定会增加你得到有用回应的机会",{"2":{"203":1}}],["里面用于存放框架运行时所需要的所有组件和各种配置信息",{"2":{"281":1}}],["里面",{"2":{"260":1,"331":1}}],["里面的方法",{"2":{"79":1}}],["切面触发",{"2":{"257":1}}],["切面类",{"2":{"149":2}}],["找到关联的数据",{"2":{"276":1}}],["找到对应的",{"2":{"260":1}}],["找到对应的枚举",{"2":{"256":1}}],["找到项目的邮件列表并使用它",{"2":{"186":1}}],["回调接口来排除某些操作",{"2":{"254":1}}],["回答",{"2":{"210":9,"213":1}}],["回答者认为你应该到他妈的网上搜索",{"2":{"206":1}}],["回答者认为你应该去读他妈的手册",{"2":{"206":1}}],["小朋友",{"2":{"250":2}}],["小心选择你要提问的场合",{"2":{"183":1}}],["小心别问错了问题",{"2":{"181":1}}],["岁且小于",{"2":{"250":1}}],["岁",{"2":{"250":3}}],["示例",{"0":{"250":1,"251":1,"255":1,"259":1,"263":1,"266":1,"269":1,"276":1},"1":{"252":1,"253":1,"254":1,"256":1,"257":1,"258":1,"260":1,"261":1,"262":1,"264":1,"265":1,"267":1,"268":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"277":1,"278":1,"279":1},"2":{"291":1,"297":1,"303":1}}],["解析获得对应的操作配置对象",{"2":{"331":1}}],["解析类后",{"2":{"289":1}}],["解析器",{"0":{"283":1}}],["解析而来",{"2":{"248":1}}],["解析为",{"2":{"169":1}}],["皆由对应的",{"2":{"248":1}}],["皆不为空时表示两个将",{"2":{"134":1}}],["刷新容器缓存数据的",{"2":{"236":1}}],["刷新缓存",{"0":{"15":1}}],["改为使用",{"2":{"232":1}}],["改为字符串",{"2":{"145":1}}],["验证或者支持在更高的",{"2":{"228":1}}],["警告",{"2":{"224":1}}],["导致在项目中",{"2":{"223":1}}],["覆盖已有的属性值",{"2":{"223":1}}],["覆写策略",{"2":{"97":1,"144":1}}],["异常",{"2":{"228":1}}],["异常需要更详细的信息",{"2":{"221":1,"222":1}}],["异步执行器支持指定支持指定批量大小",{"2":{"228":1}}],["异步执行器执行的时候",{"2":{"6":1}}],["异步填充一节",{"2":{"154":1,"285":1}}],["异步填充",{"0":{"0":1},"2":{"147":1,"335":1}}],["逻辑校验不通过而抛出异常时",{"2":{"221":1,"222":1}}],["升级2",{"2":{"224":1}}],["升级重构计划",{"2":{"220":1,"222":1}}],["升级而来",{"2":{"220":1}}],["部分",{"2":{"220":1}}],["部分内容",{"2":{"142":1,"306":1}}],["修复版本",{"2":{"226":1,"230":1,"231":1,"234":1,"235":1}}],["修复了一些已知问题",{"2":{"236":1}}],["修复了一些问题",{"2":{"223":1,"232":1,"233":1}}],["修复了",{"2":{"228":1}}],["修复了引入",{"2":{"219":1}}],["修饰的属性",{"2":{"49":1}}],["移除mappingtype",{"2":{"233":1}}],["移除了",{"2":{"220":1,"222":1}}],["移除",{"2":{"219":1,"236":1}}],["移除缓存",{"2":{"15":1}}],["减少对",{"2":{"219":1}}],["文档优化计划",{"2":{"225":1}}],["文档重构",{"2":{"217":1}}],["文件转换为",{"2":{"210":2}}],["文件转换工具将",{"2":{"210":2}}],["文件等",{"2":{"189":1}}],["增强了一些新功能",{"2":{"217":1,"218":1}}],["流程",{"2":{"216":1}}],["代理",{"2":{"299":1}}],["代理非接口类型",{"2":{"233":1}}],["代理工厂支持基于",{"2":{"233":1}}],["代理填充方法支持设置临时容器",{"2":{"219":1,"220":1,"222":1}}],["代码注释国际化",{"2":{"216":1}}],["代替原本的复杂配置",{"2":{"17":1}}],["补充文档",{"2":{"219":1,"220":1,"222":1}}],["补充",{"2":{"216":1}}],["补充说明不必很长或是很深入",{"2":{"204":1}}],["模拟返回数据",{"2":{"257":1}}],["模式的字典项填充",{"2":{"222":1,"223":1}}],["模块即可",{"2":{"325":1}}],["模块",{"2":{"216":1}}],["模板类",{"2":{"121":1}}],["模板类可以大大减少工作量",{"2":{"16":1}}],["添加了一些新功能",{"2":{"236":1}}],["添加了对条件操作的支持",{"2":{"229":1}}],["添加缓存后",{"2":{"235":1,"236":1}}],["添加容器适配器管理器",{"2":{"224":1}}],["添加容器工厂组件以隔离和丰富获取数据源容器的渠道",{"2":{"216":1}}],["添加",{"2":{"224":1,"233":1}}],["添加一个全局的排序器静态单例",{"2":{"220":1,"222":1}}],["添加基于接口代理的填充方法",{"2":{"219":1}}],["添加自动化",{"2":{"216":1}}],["添加官方站点配置",{"2":{"216":1}}],["添加示例项目",{"2":{"216":1}}],["添加扩展模块",{"2":{"216":1}}],["添加默认的组合注解扩展包",{"2":{"216":1}}],["贡献了一些特别有价值的建议和改进",{"2":{"215":1}}],["贡献了一些愚蠢问题例子并启发了编写如何更好地回答问题这一节",{"2":{"215":1}}],["鸣谢",{"0":{"215":1}}],["系统和网络基本原理",{"2":{"214":1}}],["系统和网络如何运作的基础知识",{"2":{"214":1}}],["展现你的技巧而不是直接端出结果",{"2":{"213":1}}],["展示测试用例",{"2":{"199":1}}],["帮助你的社区从问题中学习",{"2":{"213":1}}],["帮我救救这个毛茸茸的小海豹",{"2":{"202":1}}],["给提问者与同行都树个好榜样",{"2":{"213":1}}],["给黑客一个可以重现你的问题的环境尤其重要",{"2":{"190":1}}],["态度和善一点",{"2":{"213":1}}],["根本不可能由一个人来处理来自上万名用户的求助电话",{"2":{"212":1}}],["根据外键查询出各种关联信息",{"2":{"333":1}}],["根据客户id获取对应的客户名称",{"2":{"272":1}}],["根据订单类型编码获取对应的名称",{"2":{"272":1}}],["根据情况动态决定是否应用",{"2":{"228":1,"229":1}}],["根据部门",{"2":{"175":1}}],["根据部门管理查询员工",{"2":{"131":1}}],["根据主键查询指定字段",{"0":{"171":1}}],["根据主键查询全部字段",{"0":{"170":1}}],["根据指定外键查询指定字段",{"0":{"173":1},"2":{"169":1}}],["根据指定外键查询全部字段",{"0":{"172":1},"2":{"169":1}}],["根据默认主键查询指定字段",{"2":{"169":1}}],["根据默认主键查询全部字段",{"2":{"169":1}}],["根据节点id查询子节点",{"2":{"132":1}}],["根据排序值",{"2":{"126":1}}],["根据分隔符拼接为字符串",{"2":{"46":1}}],["根据",{"2":{"44":1,"84":1,"132":1,"137":1,"138":1,"140":1,"256":1,"282":1,"283":1,"287":2,"311":2,"315":1,"319":2,"323":1,"328":2,"330":1,"331":1,"333":3}}],["根据id查询客户",{"2":{"40":1}}],["根据字典分类查询关联的字典项",{"2":{"24":1}}],["毕竟授人以鱼不如授人以渔",{"2":{"213":1}}],["毕竟",{"2":{"212":1}}],["毕竟你没有为这种服务支付任何报酬",{"2":{"181":1}}],["知道你问题答案的人可能生活在不同的时区",{"2":{"212":1}}],["虽然不可否认这种差别很难区分",{"2":{"212":1}}],["主要修复了一些问题",{"2":{"224":1,"225":1}}],["主板上观察到了这种无法解释的锁定现象",{"2":{"211":1}}],["主机板上引起",{"2":{"211":1}}],["主机板上试过了",{"2":{"211":1}}],["主机板搭载",{"2":{"194":1}}],["月在",{"2":{"211":1}}],["年初",{"2":{"332":1}}],["年",{"2":{"211":1}}],["年时的讲话",{"2":{"194":1}}],["正面地回答问题",{"2":{"213":1}}],["正在",{"2":{"211":1}}],["正确地处理被包装的返回值",{"2":{"266":1}}],["正确",{"2":{"203":1}}],["看起来他真的遇到了麻烦",{"2":{"211":1}}],["看来似乎是",{"2":{"207":1}}],["谁来帮我",{"2":{"211":1}}],["谁知道上哪儿去找对这种设备编程的资料",{"2":{"211":1}}],["谁能给点提示",{"2":{"181":1}}],["想找个黑客帮你",{"2":{"210":1}}],["想要这样做",{"2":{"210":1}}],["扔掉微软的垃圾",{"2":{"210":1}}],["希望可以不需要在注解中指定",{"2":{"228":1}}],["希望返回值可以支持",{"2":{"227":1}}],["希望你能搞定",{"2":{"210":1}}],["希望着你会从问题的回答",{"2":{"181":1}}],["真糟糕",{"2":{"210":1}}],["程序",{"2":{"210":1}}],["程序或",{"2":{"210":2}}],["等到方法调用后",{"2":{"334":1}}],["等",{"2":{"280":1}}],["等相关注解",{"2":{"236":1}}],["等他们把问题搞清楚了再说",{"2":{"210":1}}],["等效于",{"2":{"51":1,"61":1}}],["难道还有人不会用",{"2":{"210":1}}],["天哪",{"2":{"210":1}}],["白痴",{"2":{"210":1}}],["读别人的邮件呢",{"2":{"210":2}}],["特点",{"2":{"286":1}}],["特权",{"2":{"210":2}}],["特别是当你觉得遇到的也许只是相对简单或者很普通的问题时",{"2":{"185":1}}],["特别是编程语言",{"2":{"184":1}}],["窃取",{"2":{"210":2}}],["帐号",{"2":{"210":2}}],["电脑有问题",{"2":{"210":2}}],["电子邮件则大多为项目开发者间的交流而保留",{"2":{"185":1}}],["语句",{"2":{"210":1}}],["语句没有用",{"2":{"210":1}}],["语言可能是必须的",{"2":{"189":1}}],["做了大幅度的重构",{"2":{"222":1}}],["做了方法级缓存",{"2":{"9":1}}],["做",{"2":{"210":2}}],["资源",{"2":{"210":2}}],["抱怨倒是真的会把问题搞砸",{"2":{"209":1}}],["告诉你别再这样做时",{"2":{"209":1}}],["告诉黑客们你认为问题是怎样造成的并没什么帮助",{"2":{"194":1}}],["友善",{"2":{"209":1}}],["夸张的讲法是",{"2":{"209":1}}],["禁止参与者张贴任何对别人帖子挑毛病的消息",{"2":{"209":1}}],["受过高礼节要求的误导",{"2":{"209":1}}],["坚持声称受到个人攻击也毫无益处",{"2":{"209":1}}],["社区的标准不会自行维持",{"2":{"209":1}}],["社区已经成为回答技术及其他问题的主要渠道",{"2":{"184":1}}],["熬过去",{"2":{"209":1}}],["威胁诉诸法律",{"2":{"209":1}}],["威盛",{"2":{"194":1}}],["憋闷气",{"2":{"209":1}}],["高声尖叫",{"2":{"209":1}}],["宣称被言语攻击",{"2":{"209":1}}],["宣称紧急极有可能事与愿违",{"2":{"202":1}}],["兴许你认为我们脑袋有问题还能帮助你应付我们的古怪行为",{"2":{"208":1}}],["避开这种莽撞的机会并不高",{"2":{"208":1}}],["避免过早初始化",{"2":{"233":1}}],["避免重复请求相同的数据源",{"2":{"224":1}}],["避免盲点的部分应放在正确的解决方案和其它总结材料之后",{"2":{"204":1}}],["避免用",{"2":{"201":1}}],["避免用无意义的话结束提问",{"2":{"201":1}}],["避免误删",{"2":{"180":1}}],["避免每次判断都要进行类型转换",{"2":{"117":1}}],["纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔",{"2":{"208":1}}],["很多黑客圈子中看似无礼的行为并不是存心冒犯",{"2":{"208":1}}],["zentries",{"2":{"207":1}}],["zentry",{"2":{"207":2}}],["z",{"2":{"207":1,"211":1,"213":2}}],["哦~~~我看过说明了但是只有",{"2":{"207":1}}],["卡住了",{"2":{"207":1}}],["身边的高手",{"2":{"207":1}}],["网络",{"2":{"207":1}}],["网站和",{"0":{"185":1}}],["网站们往往会是搜索结果中最前面几个",{"2":{"184":1}}],["网站上也许还有报告",{"2":{"183":1}}],["利用手册",{"2":{"207":1}}],["像你以前试着自己解决问题时那样",{"2":{"207":1}}],["像微软公司的",{"2":{"189":1}}],["他建议我记下这件事",{"2":{"211":1}}],["他觉得我的问题得到解决并非由于我是这个列表中的名人",{"2":{"211":1}}],["他觉得都是别人的错",{"2":{"211":1}}],["他表现出了解决问题的能力",{"2":{"211":1}}],["他的问题值得被关注",{"2":{"211":1}}],["他正在为关心你和他的社区而行动",{"2":{"209":1}}],["他已经表示了对你一定程度的关注",{"2":{"206":1}}],["他们忙是因为要亲自完成大部分工作",{"2":{"198":1}}],["他们也很厌恶这么做",{"2":{"189":1}}],["他们能从你的提问看出你做了多少阅读与思考",{"2":{"181":1}}],["思考一下怎样才能避免他人将来也遇到类似的问题",{"2":{"204":1}}],["满足他们的渴望",{"2":{"204":1}}],["好问题与蠢问题",{"0":{"211":1}}],["好的",{"2":{"211":1}}],["好的问法应该是这样",{"2":{"207":1}}],["好的提问方式稍有不同",{"2":{"187":1}}],["好人有好报",{"2":{"204":1}}],["至少要表现得有点尊严",{"2":{"209":1}}],["至少",{"2":{"204":1}}],["列表中有该",{"2":{"289":1}}],["列表按",{"2":{"261":1,"262":1}}],["列表成员们提供了解决这一问题的重要信息",{"2":{"211":1}}],["列表或论坛发问",{"2":{"186":1}}],["列表或论坛中几天都没有回复",{"2":{"186":1}}],["列表或论坛提问",{"2":{"186":1}}],["列出那些帮助过你的名字",{"2":{"204":1}}],["谢谢大家",{"2":{"204":1}}],["已解决的潜在回复者就明白不用再浪费时间了",{"2":{"204":1}}],["已解决或其它同等含义的明显标记",{"2":{"204":1}}],["已经准备好了默认的",{"2":{"309":1}}],["已经通过自动装配默认向",{"2":{"281":1}}],["已经成长到超过一百个网站",{"2":{"184":1}}],["已经好几次了",{"2":{"183":1}}],["应当仅打印日志而不是直接抛出异常",{"2":{"236":1}}],["应当直接报错或输出警告日志",{"2":{"233":1}}],["应当支持直接基于属性进行读写",{"2":{"221":1,"222":1}}],["应该默认遵循该枚举类上的",{"2":{"223":1}}],["应该在那里贴一个说明比较恰当",{"2":{"204":1}}],["应推荐更好的工具",{"2":{"213":1}}],["应描述问题的准确细节",{"2":{"210":1}}],["应用程序",{"2":{"190":1}}],["应用中",{"2":{"156":1}}],["加快执行速度",{"2":{"248":1}}],["加个简短的补充说明",{"0":{"204":1}}],["加上搜索过的字串",{"2":{"181":1}}],["报告",{"2":{"203":1}}],["报告的过程中",{"2":{"191":1}}],["精准且合乎语法和避免使用专用格式重要",{"2":{"203":1}}],["精确地描述问题并言之有物",{"0":{"190":1}}],["坦白说",{"2":{"203":1}}],["彬彬有礼",{"2":{"203":1}}],["礼多人不怪",{"0":{"203":1}}],["肯定让你被黑客忽略或惹恼他们",{"2":{"202":1}}],["张贴调试记录的摘要是有帮助的",{"2":{"204":1}}],["张贴诸如紧急",{"2":{"202":1}}],["张贴几百行的代码",{"2":{"199":1}}],["国际空间站",{"2":{"202":1}}],["人们也许会有兴趣回答快一点",{"2":{"202":1}}],["人们更愿读易懂的问题",{"2":{"189":1}}],["紧急这个字",{"2":{"202":1}}],["没有在启动后自动注册到",{"2":{"222":1}}],["没有回应不代表你被忽视",{"2":{"212":1}}],["没有用",{"2":{"210":1}}],["没有效果",{"2":{"194":1}}],["没答案",{"2":{"201":1}}],["没错",{"2":{"201":1}}],["试探性的反问以引出更多的细节",{"2":{"213":1}}],["试试",{"2":{"213":1}}],["试试看",{"2":{"213":1}}],["试试看就知道了",{"2":{"210":1}}],["试试将蠢问题转变成好问题",{"2":{"213":1}}],["试试在用户群组",{"2":{"200":1}}],["试着按软件发布实践操作",{"2":{"214":1}}],["试着平静地反应",{"2":{"208":1}}],["试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的",{"2":{"197":1}}],["试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中",{"2":{"195":1}}],["试着选择这些能在记录中增加调试信息的选项",{"2":{"195":1}}],["被注解的方法所在类在",{"2":{"298":1}}],["被注解的方法所在类被",{"2":{"298":1,"299":1}}],["被注解的属性",{"2":{"84":1}}],["被代理后",{"2":{"228":1}}],["被应用程序处理",{"2":{"199":1}}],["足以让这段代码能被编译",{"2":{"199":1}}],["yamlcrane4j",{"2":{"245":1}}],["y",{"2":{"199":1,"210":4,"211":1,"213":2}}],["ymlcrane4j",{"2":{"10":1,"50":1,"60":1,"167":1,"239":1,"240":1,"241":1,"243":1,"244":1,"246":1,"247":1,"248":1,"249":1}}],["询问有关代码的问题时",{"0":{"199":1}}],["吗",{"0":{"301":1},"2":{"198":1,"210":1}}],["界定一下你的问题",{"2":{"198":1}}],["便于复用相同的数据源",{"2":{"287":1}}],["便于回答者能集中精力来帮你",{"2":{"198":1}}],["便于后续用户为其绑定条件",{"2":{"89":1}}],["检查你的补丁",{"2":{"198":1}}],["漫无边际的提问是近乎无休无止的时间黑洞",{"2":{"198":1}}],["奖励就是他的能力和学识被其他同行看到",{"2":{"197":1}}],["透明",{"2":{"197":1}}],["结果集",{"2":{"277":1}}],["结果造成有想法的参与者纷纷离开",{"2":{"209":1}}],["结果要费很大的劲才能搞定",{"2":{"196":1}}],["结合使用",{"2":{"73":1}}],["结合一个简单的例子",{"2":{"21":1}}],["记着",{"2":{"209":1}}],["记得表现出你已经从中学到了点什么",{"2":{"207":1}}],["记得要修改内容标题",{"2":{"187":1}}],["记住我们是按问题能教给我们什么来评价问题的价值的",{"2":{"203":1}}],["记住",{"2":{"195":1}}],["记录会非常有帮助",{"2":{"195":1}}],["行",{"2":{"195":1}}],["往往就是对找出问题最有帮助的线索",{"2":{"195":1}}],["滔滔雄辩既不能说服我",{"2":{"194":1}}],["牛蒡和民主党人的国家",{"2":{"194":1}}],["棉花",{"2":{"194":1}}],["美国国务院的官方座右铭则是",{"2":{"194":1}}],["重复造轮子",{"2":{"335":1}}],["重复声明",{"0":{"89":1}}],["重命名",{"2":{"216":1}}],["重构反射工厂",{"2":{"232":1}}],["重构了一些底层组件",{"2":{"232":1}}],["重构并大幅度增强了缓存功能",{"2":{"227":1}}],["重构并完善缓存功能",{"2":{"216":1,"217":1}}],["重构",{"2":{"225":1,"232":1,"236":1}}],["重构全局配置类的容器管理功能",{"2":{"220":1,"222":1}}],["重构容器与装配操作配置的绑定过程",{"2":{"220":1,"222":1}}],["重构和增强了一些已有功能",{"2":{"219":1}}],["重构项目结构",{"2":{"218":1}}],["重构装配处理器",{"2":{"216":1}}],["重新界定问题",{"2":{"213":1}}],["重新启动也没有用",{"2":{"194":1}}],["内核邮件列表的成员表示",{"2":{"211":1}}],["内核邮件列表",{"2":{"211":1}}],["内存",{"2":{"194":1}}],["内置注解",{"0":{"115":1},"1":{"116":1,"117":1,"118":1,"119":1,"120":1}}],["内置处理器",{"0":{"23":1}}],["错误",{"2":{"194":2}}],["低声下气",{"2":{"193":1}}],["低声下气不能代替你的功课",{"0":{"193":1}}],["维护者就会向你道歉",{"2":{"192":1}}],["声称",{"2":{"192":1}}],["声明一个拆卸操作",{"2":{"283":1}}],["声明一个装配操作",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1},"2":{"283":1}}],["声明哪些数据源需要包装为缓存",{"2":{"246":1}}],["声明装的配操作支持在实际执行时",{"2":{"228":1,"229":1}}],["声明装配操作时是否可以根据条件判断是否应用此次操作",{"2":{"227":1}}],["声明装配操作",{"0":{"27":1,"85":1},"1":{"86":1,"87":1,"88":1,"89":1},"2":{"27":1,"42":1,"45":1,"74":1,"110":1,"278":1}}],["声明该对象序列化时需要进行自动填充",{"2":{"161":1}}],["声明自动填充该方法的返回值",{"2":{"257":1}}],["声明自动填充",{"2":{"151":2,"267":1,"268":1}}],["声明的配置效果相同",{"2":{"141":1}}],["声明的嵌套填充操作",{"2":{"131":1}}],["声明拆卸操作",{"0":{"101":1},"1":{"102":1,"103":1,"104":1,"105":1},"2":{"110":1}}],["声明类",{"2":{"71":1}}],["声明在类上",{"2":{"71":1}}],["声明在方法上时不填",{"2":{"72":1}}],["声明在方法上",{"2":{"71":1}}],["声明容器",{"0":{"71":1}}],["声明",{"2":{"70":1}}],["声明要排除的常量属性",{"2":{"49":1}}],["声明要保留的常量属性",{"2":{"49":1}}],["声明操作者接口",{"2":{"25":1}}],["声明了三个装配操作",{"2":{"6":1}}],["非常的有根据",{"2":{"192":1}}],["非空时覆写策略",{"2":{"97":1,"144":1}}],["简介",{"0":{"332":1},"1":{"333":1,"334":1,"335":1,"336":1}}],["简而言之",{"2":{"277":1,"331":1}}],["简化属性映射配置",{"2":{"232":1}}],["简化",{"2":{"217":1}}],["简化问题使你更有可能得到有用的答案",{"2":{"191":1}}],["简单地重复张贴问题是个很糟的点子",{"2":{"212":1}}],["简单的一句你好",{"2":{"204":1}}],["简单的来说",{"2":{"114":1}}],["简单使用",{"0":{"33":1}}],["话不在多而在精",{"0":{"191":1}}],["强力推荐你也读一读",{"2":{"190":1}}],["强制覆写",{"2":{"97":1,"144":1}}],["强制将",{"2":{"90":1}}],["写过一篇名为",{"2":{"190":1}}],["尽管对那些懒虫抱怨一声",{"2":{"213":1}}],["尽管黑客们会看出来",{"2":{"200":1}}],["尽管向他发信",{"2":{"186":1}}],["尽可能清楚地描述背景条件和你的问题情况",{"2":{"193":1}}],["尽可能地提供一个可以重现这个问题的可控环境的方法",{"2":{"190":1}}],["尽量将它剪裁得越小越好",{"2":{"191":1}}],["尽量去揣测一个黑客会怎样反问你",{"2":{"190":1}}],["机器配置",{"2":{"190":1}}],["机制实现",{"2":{"158":1}}],["清楚明确地表达你的问题以及需求",{"0":{"198":1}}],["清楚地说明这只是你的猜测",{"2":{"194":1}}],["清楚地描述你的问题或",{"2":{"190":1}}],["清空缓存",{"0":{"180":1}}],["仔细",{"2":{"190":1}}],["如下",{"2":{"271":1}}],["如何开始使用",{"0":{"336":1}}],["如何处理一对多的情况",{"0":{"292":1}}],["如何实现级联填充",{"0":{"291":1}}],["如何实现嵌套填充",{"0":{"290":1}}],["如何通过多个key关联数据",{"0":{"276":1},"1":{"277":1,"278":1,"279":1},"2":{"303":1}}],["如何使用组合注解抽离并简化复杂配置",{"2":{"269":1}}],["如何填充一个复杂对象",{"0":{"269":1},"1":{"270":1,"271":1,"272":1,"273":1,"274":1,"275":1}}],["如何填充被包装的返回值",{"0":{"266":1},"1":{"267":1,"268":1}}],["如何级联填充",{"0":{"263":1},"1":{"264":1,"265":1},"2":{"291":1}}],["如何基于方法填充",{"0":{"259":1},"1":{"260":1,"261":1,"262":1}}],["如何基于枚举进行填充",{"0":{"255":1},"1":{"256":1,"257":1,"258":1}}],["如何在执行时排除某一些操作",{"2":{"297":1}}],["如何在执行时排除某些操作",{"0":{"251":1},"1":{"252":1,"253":1,"254":1}}],["如何在填充后进行附加操作",{"0":{"250":1}}],["如何在非",{"2":{"219":1,"220":1,"222":1}}],["如何更好地回答问题",{"0":{"213":1}}],["如何设定我的",{"2":{"210":2}}],["如何避免扮演失败者",{"0":{"209":1}}],["如何知道你已完全搞砸了",{"0":{"206":1}}],["如何解读答案",{"0":{"205":1},"1":{"206":1,"207":1,"208":1}}],["如何有效的报告",{"2":{"190":1}}],["如提供指点",{"2":{"198":1}}],["如超过四个段落",{"2":{"195":1}}],["如",{"2":{"190":1,"195":2,"210":1}}],["如微软公司的",{"2":{"189":1}}],["如果没用到",{"2":{"300":1}}],["如果没有提示别人应该从何入手",{"2":{"199":1}}],["如果没有自定义配置可以不配置这个属性",{"2":{"51":1}}],["如果容器是",{"2":{"296":1}}],["如果仍然无法解决",{"2":{"289":1}}],["如果仍得不到回答",{"2":{"212":1}}],["如果未进入断点",{"2":{"289":1}}],["如果未指定类型",{"2":{"151":1}}],["如果当你遇到问题时",{"2":{"288":1}}],["如果已经使用了",{"2":{"218":1}}],["如果已经基于",{"2":{"9":1}}],["如果遇到问题可以在群内或",{"2":{"216":1}}],["如果帮不了忙",{"2":{"213":1}}],["如果得不到回答",{"0":{"212":1}}],["如果安装问题与某",{"2":{"210":1}}],["如果程序有官方版",{"2":{"210":1}}],["如果程序出的问题只发生在特定",{"2":{"185":1}}],["如果这个提问者已经很深入的研究而且也表明已经试过",{"2":{"213":1}}],["如果这没有发生而你却发火了",{"2":{"208":1}}],["如果这点让你不解",{"2":{"203":1}}],["如果我像个乞讨者那样提问",{"2":{"211":1}}],["如果我回答你",{"2":{"207":1}}],["如果我们没有一个根据三级部门",{"2":{"264":1}}],["如果我们希望仅当目标对象的",{"2":{"97":1,"144":1}}],["如果我们需要处理特殊数据结构或具有特殊填充逻辑的",{"2":{"38":1}}],["如果还是搞不懂",{"0":{"207":1}}],["如果问题在新闻组或者邮件列表中引起了广泛关注",{"2":{"204":1}}],["如果他真这么做了",{"2":{"197":1}}],["如果挂掉的程序有诊断选项",{"2":{"195":1}}],["如果真有",{"2":{"192":1}}],["如果真的有",{"2":{"192":1}}],["如果一个项目既有",{"2":{"186":1}}],["如果一个答案提供了问题的正确解决方案",{"2":{"184":1}}],["如果只是私下提问",{"2":{"186":1}}],["如果某些问题经常被问到",{"2":{"186":1}}],["如果有人真的做了出格的事",{"2":{"208":1}}],["如果有",{"2":{"185":1}}],["如果有必要",{"2":{"121":1,"152":1}}],["如果用户的年龄大于",{"2":{"250":2}}],["如果用户的年龄小于等于",{"2":{"250":1}}],["如果用户替换了默认的",{"2":{"142":1}}],["如果用户传入的字符串是",{"2":{"140":1}}],["如果分隔符不是逗号",{"2":{"140":1}}],["如果目标对象所属的填充组与指定的所有组都匹配",{"2":{"124":1}}],["如果目标对象所属的填充组与指定的任何一个组都不匹配",{"2":{"124":1}}],["如果目标对象所属的填充组与指定的任何一个组匹配",{"2":{"124":1}}],["如果目标方法上已经通过",{"2":{"79":1}}],["如果指定的组中包含了装配操作的分组",{"2":{"123":1}}],["如果此时你又指定",{"2":{"117":1}}],["如果实际值为",{"2":{"117":1}}],["如果",{"2":{"102":1,"135":1}}],["如果默认的解析器不符合你的要求",{"2":{"95":1}}],["如果重写了",{"2":{"80":1}}],["如果方法入参为",{"2":{"78":1}}],["如果方法的参数类型是",{"2":{"37":1}}],["如果声明在类父类或者父接口上",{"2":{"71":1}}],["如果是非",{"2":{"298":1,"299":1}}],["如果是的话就将它们发给维护者",{"2":{"204":1}}],["如果是操作系统不支持这种邮件程序",{"2":{"188":1}}],["如果是这样",{"2":{"183":1}}],["如果是在",{"2":{"83":1}}],["如果是集合",{"2":{"72":1}}],["如果是",{"2":{"67":1,"298":1,"299":1}}],["如果在此之前你已做过通用的网页搜索",{"2":{"185":1}}],["如果在操作者接口中",{"2":{"110":1}}],["如果在",{"2":{"16":1,"19":1,"76":1,"79":1,"147":1}}],["如果你已经使用过类似的框架",{"2":{"336":1}}],["如果你决定回答",{"2":{"213":1}}],["如果你做得好",{"2":{"213":1}}],["如果你做了下述的事情",{"2":{"183":1}}],["如果你试过",{"2":{"210":1}}],["如果你无法做到感谢",{"2":{"209":1}}],["如果你无法将问题缩减到一个特定区块",{"2":{"199":1}}],["如果你自己不是黑客",{"2":{"208":1}}],["如果你自己不是技术专家或者黑客",{"2":{"204":1}}],["如果你真的需要对方解释",{"2":{"207":1}}],["如果你真的认为遇到了初学者的问题",{"2":{"193":1}}],["如果你看不懂回应",{"2":{"207":1}}],["如果你收到stfw",{"2":{"206":1}}],["如果你收到rtfm",{"2":{"206":1}}],["如果你有足够的智慧提这个问题",{"2":{"210":1}}],["如果你有一串的问题待解决",{"2":{"203":1}}],["如果你有时间压力",{"2":{"202":1}}],["如果你有庞大而复杂的测试样例能重现程序挂掉的情境",{"2":{"191":1}}],["如果你对问题的描述不是很好",{"2":{"201":1}}],["如果你怀疑自己碰到了一个家庭作业式的问题",{"2":{"200":1}}],["如果你只是想让别人帮忙审查",{"2":{"199":1}}],["如果你只是想在有人回复讨论串时得到电子邮件提醒",{"2":{"188":1}}],["如果你知道哪一行或哪一段代码会造成异常的行为",{"2":{"199":1}}],["如果你明确表述需要回答者做什么",{"2":{"198":1}}],["如果你认为",{"2":{"249":1}}],["如果你认为陈述自己的猜测很重要",{"2":{"194":1}}],["如果你认为自己的问题对整个项目群组来说太愚蠢",{"2":{"186":1}}],["如果你声称找到了",{"2":{"192":1}}],["如果你声明的方法容器数量较多",{"2":{"71":1}}],["如果你",{"2":{"192":1}}],["如果你使用的是基于",{"2":{"264":1}}],["如果你使用的是自动填充",{"2":{"129":1}}],["如果你使用图形用户界面的邮件程序",{"2":{"189":1}}],["如果你从使用",{"2":{"189":1}}],["如果你人为地将问题搞得难以阅读",{"2":{"189":1}}],["如果你找不到一个项目的邮件列表",{"2":{"186":1}}],["如果你确信提问可能会引来大量雷同的回复时",{"2":{"197":1}}],["如果你确信你的问题很特别",{"2":{"186":1}}],["如果你确实需要这个功能",{"2":{"180":1}}],["如果你向列表提问并得到解答",{"2":{"186":1}}],["如果你觉得这一步比较消耗性能",{"2":{"265":1}}],["如果你觉得这点很不可思议",{"2":{"202":1}}],["如果你觉得被冒犯了",{"2":{"208":1}}],["如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦",{"2":{"188":1}}],["如果你觉得一个答案对你有帮助",{"2":{"184":1}}],["如果你觉得区分度不够高",{"2":{"179":1}}],["如果你还是找不到任何对你的问题有用的内容",{"2":{"184":1}}],["如果你在使用时",{"2":{"279":1}}],["如果你在研究一番后才作出了回答",{"2":{"213":1}}],["如果你在",{"2":{"184":1}}],["如果你不明白为什么这是大错",{"2":{"183":1}}],["如果你不确定",{"2":{"183":1,"213":1}}],["如果你不需要修改配置",{"2":{"1":1}}],["如果你能一并表达在做了上述努力的过程中所学到的东西会更好",{"2":{"181":1}}],["如果你是第一次接触此类框架的新用户",{"2":{"336":1}}],["如果你是通过",{"2":{"254":1}}],["如果你是新手或外人",{"2":{"208":1}}],["如果你是有备而来",{"2":{"181":1}}],["如果你是程序开发者",{"2":{"181":1}}],["如果你是在一些很高调",{"2":{"202":1}}],["如果你是在",{"2":{"54":1}}],["如果你想解决的是",{"2":{"210":1}}],["如果你想得到的是信息而不是消磨时光",{"2":{"208":1}}],["如果你想弄清楚如何做某事",{"2":{"196":1}}],["如果你想在回复中提出问题",{"2":{"187":1}}],["如果你想要实现类似的效果",{"2":{"131":1}}],["如果你想替换默认的",{"2":{"36":1}}],["如果你需要个人电脑",{"2":{"214":1}}],["如果你需要在手动填充时指定按顺序填充",{"2":{"128":1}}],["如果你需要更换线程池",{"2":{"1":1}}],["如果你希望数据源和操作的配置能够分开",{"2":{"258":1}}],["如果你希望基于一个独立的方法进行填充",{"2":{"155":1}}],["如果你希望按顺序执行",{"2":{"127":1}}],["如果你希望严格按照预期的顺序执行",{"2":{"125":1}}],["如果你希望严格的匹配类型",{"2":{"119":1}}],["如果你希望允许空值",{"2":{"117":1}}],["如果你希望过滤掉为",{"2":{"86":1}}],["如果你的项目里面没有通过",{"2":{"240":1}}],["如果你的项目中有",{"2":{"178":1}}],["如果你的代码不能运作",{"2":{"198":1}}],["如果你的说明很长",{"2":{"195":1}}],["如果你的推断如此有效",{"2":{"194":1}}],["如果你的邮件程序不支持这样做",{"2":{"188":1}}],["如果你的问题跟代码或是写程序无关",{"2":{"184":1}}],["如果你的问题基于错误的假设",{"2":{"181":1}}],["如果你的努力",{"2":{"183":1}}],["如果你的",{"2":{"95":1,"178":1}}],["如果你的源属性名与目标属性名一致",{"2":{"92":1}}],["如果你的目的仅仅是为了对目标对象做一些处理",{"2":{"80":1}}],["如果你的方法上同时声明了多个方法容器",{"2":{"75":1}}],["如果你的枚举类已经有",{"2":{"61":1}}],["如果你的常量类已经有",{"2":{"51":1}}],["如果你要添加新的类型转换器",{"2":{"37":1}}],["如果你更在乎性能",{"2":{"36":1}}],["如果你可以指定批量大小为",{"2":{"6":1}}],["色彩和字体会使你看来像个傻笑的小姑娘",{"2":{"189":1}}],["过了",{"2":{"211":1}}],["过滥地使用表情符号",{"2":{"189":1}}],["过期时间",{"2":{"10":1}}],["勿滥用表情符号和html功能",{"2":{"189":1}}],["勾选掉智能引号单选框",{"2":{"189":1}}],["校订",{"2":{"189":1}}],["永远不要指望黑客们阅读使用封闭格式编写的文档",{"2":{"189":1}}],["绝对",{"2":{"189":1}}],["绝不要自以为够格得到答案",{"2":{"181":1}}],["甚至有可能破坏内容的语意",{"2":{"189":1}}],["甚至可能会超过查库或",{"2":{"6":1}}],["编码值填充相关字段",{"2":{"332":1}}],["编码发送消息",{"2":{"189":1}}],["编写软件的人总是非常辛苦地使它尽可能完美",{"2":{"192":1}}],["编写目标",{"2":{"187":1}}],["设定",{"2":{"210":2}}],["设想你的读者是在",{"2":{"189":1}}],["设置条件填充",{"0":{"253":1}}],["设置全局前缀",{"2":{"179":1,"180":1}}],["设置自定义的字符串分割器",{"2":{"140":1}}],["设置为",{"2":{"117":2,"119":1}}],["设置为你要生成的参数对象类型",{"2":{"92":1}}],["设置操作触发条件",{"0":{"108":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1},"2":{"86":1,"89":1,"152":1,"153":1}}],["设置缓存",{"2":{"79":1}}],["设置一个",{"2":{"51":1,"61":1}}],["譬如用谢谢你的关注或谢谢你的关照",{"2":{"203":1}}],["譬如从",{"2":{"202":1}}],["譬如日志文件拷贝或会话记录",{"2":{"189":1}}],["譬如只是信件内容的拷贝",{"2":{"189":1}}],["譬如附带的源代码或",{"2":{"189":1}}],["附件通常是可以的",{"2":{"189":1}}],["关联客户与关联商品三类信息",{"2":{"272":1}}],["关闭微软愚蠢的智能引号功能",{"2":{"189":1}}],["关闭",{"2":{"189":1}}],["关于该问题的解决方案参见",{"2":{"304":1}}],["关于它们的使用方式",{"2":{"286":1}}],["关于方法容器",{"2":{"278":1}}],["关于方法容器的使用和配置",{"2":{"265":1}}],["关于此类回调接口",{"2":{"254":1}}],["关于此部分内容",{"2":{"89":1}}],["关于手动填充",{"2":{"254":1}}],["关于自动填充",{"2":{"247":1}}],["关于容器部分",{"2":{"243":1,"244":1}}],["关于如何配置填充操作的具体内容",{"2":{"266":1}}],["关于如何配置填充顺序的具体内容",{"2":{"264":1}}],["关于如何配置一个装配操作",{"2":{"27":1}}],["关于如何指定字段映射",{"2":{"257":1,"261":1}}],["关于如何使用缓存管理器",{"2":{"178":1}}],["关于如何使用异步执行器",{"2":{"154":1,"285":1}}],["关于如何对操作分组",{"2":{"153":1}}],["关于使用",{"2":{"131":1,"132":1}}],["关于嵌套填充",{"2":{"131":1,"132":1}}],["关于操作者接口",{"2":{"110":1}}],["关于在属性和类上声明操作配置",{"2":{"110":1}}],["关于后一种场景",{"2":{"91":1}}],["关于",{"2":{"9":1,"33":1,"278":1}}],["关于执行器",{"2":{"0":1,"129":1,"131":1,"132":1,"154":1}}],["几乎所有论坛都支持诸如追踪此讨论串",{"2":{"188":1}}],["几乎所有的功能",{"2":{"147":1}}],["几乎所有的注解都支持组合注解机制",{"2":{"17":1}}],["故通过回复提问",{"2":{"187":1}}],["能够通过简单的注解配置快速根据外键",{"2":{"332":1}}],["能够获取到更多的参数",{"2":{"21":1}}],["能啊",{"2":{"210":1}}],["能让你学到更多",{"2":{"206":1}}],["能给新来的读者留下线索",{"2":{"187":1}}],["测试用例越小越好",{"2":{"199":1}}],["测试",{"2":{"187":1,"257":1}}],["让他们也从中受益",{"2":{"204":1}}],["让他们知道问题是怎样解决的",{"2":{"204":1}}],["让大家都知道你对他们花时间免费提供帮助心存感激",{"2":{"203":1}}],["让回复者来决定是否私下回答",{"2":{"197":1}}],["让回复者有信心他们看到的是和你看到的一样的东西",{"2":{"189":1}}],["让我看看",{"2":{"194":1}}],["让黑客们来推测和诊断",{"2":{"194":1}}],["让你的标题更好地反映问题",{"2":{"187":1}}],["让它返回一个",{"2":{"16":1}}],["让它继承",{"2":{"16":1}}],["索引中查寻",{"2":{"187":1}}],["索引是即时的",{"2":{"184":1}}],["总的来说",{"2":{"212":1}}],["总之",{"2":{"199":1}}],["总而言之",{"2":{"187":1}}],["总是查询固定的字典类型",{"2":{"279":1}}],["总是会先执行拆卸操作",{"2":{"131":1}}],["总是先于装配操作执行",{"2":{"131":1}}],["总是使用",{"2":{"93":1}}],["总是用于根据指定的",{"2":{"80":1}}],["总是返回空集合",{"2":{"68":1}}],["总是尝试将其根据",{"2":{"45":1}}],["型号",{"2":{"187":1}}],["版本运行",{"2":{"228":1}}],["版本开始",{"2":{"90":1}}],["版下无法编译通过",{"2":{"211":1}}],["版中",{"2":{"187":1}}],["版中出现",{"2":{"187":1}}],["式描述的过程有助于你组织对问题的细致思考",{"2":{"187":1}}],["差异",{"2":{"187":1}}],["差异式的描述",{"2":{"187":1}}],["芯片组环境下",{"2":{"187":1}}],["芯片组",{"2":{"187":1,"194":1}}],["某黑客对这类问题的回答通常是",{"2":{"211":1}}],["某牌显卡",{"2":{"187":1}}],["某个普通黑客",{"2":{"181":1}}],["聪明问题",{"2":{"187":1,"194":1,"196":1,"211":3}}],["救命啊",{"2":{"187":1}}],["蠢问题",{"2":{"187":1,"194":1,"196":1,"211":3}}],["许多技术支持组织就是这样做的",{"2":{"187":1}}],["许多人认为",{"2":{"186":1}}],["更优雅地完成上述字段填充逻辑",{"2":{"273":1}}],["更多内容可以参见",{"2":{"252":1,"253":1}}],["更有可能的是你完全没有根据",{"2":{"210":1}}],["更温和一点的说法是",{"2":{"206":1}}],["更严重的是",{"2":{"202":1}}],["更好",{"2":{"198":1}}],["更聪明问题",{"2":{"187":1}}],["更别说救命啊",{"2":{"187":1}}],["更换分隔符",{"0":{"45":1}}],["急",{"2":{"187":1}}],["跪求",{"2":{"187":1}}],["大方地展示给我们看吧",{"2":{"194":1}}],["大多数黑客会直接删除无礼和自私地企图即时引起关注的问题",{"2":{"202":1}}],["大多数黑客对此的反应就像有人将还在冒热气的猪粪倒在你家门口时你的反应一样",{"2":{"189":1}}],["大多数这类程序有基于选单的查看源代码命令",{"2":{"189":1}}],["大多数邮件列表都会被存档",{"2":{"186":1}}],["大约",{"2":{"187":1}}],["私人电子邮件也不应该被公开",{"2":{"186":1}}],["项目集成后",{"2":{"228":1}}],["项目启动时出现",{"2":{"233":1}}],["项目启动报错",{"2":{"221":1,"222":1,"234":1,"236":1}}],["项目启动后将会自动注册",{"2":{"16":1}}],["项目启动后",{"2":{"13":1,"82":1,"98":1,"145":1,"309":1,"317":1}}],["项目进行了一次范围较大的重构",{"2":{"220":1}}],["项目代码在",{"2":{"211":1}}],["项目找来的源码没法编译",{"2":{"211":1}}],["项目",{"2":{"186":1}}],["邮件列表",{"2":{"208":1}}],["邮件列表不存在",{"2":{"186":1}}],["邮件列表或论坛",{"2":{"186":1}}],["邮件列表及相关说明文件的链接",{"2":{"183":1}}],["任何好到需要向个别开发者提出的问题",{"2":{"186":1}}],["任意字符串",{"2":{"49":1,"59":1,"72":1}}],["先使用解析器解析",{"2":{"286":1}}],["先生",{"2":{"250":1}}],["先用",{"2":{"210":1}}],["先试着去搞懂他的回应",{"2":{"207":1}}],["先确认一下有没有搜索功能",{"2":{"185":1}}],["先看看",{"2":{"183":1}}],["频道来提供用户支持服务有增长的趋势",{"2":{"185":1}}],["频道是公开欢迎提问的地方",{"2":{"185":1}}],["频道",{"2":{"185":1}}],["发这样的标题没有问题",{"2":{"202":1}}],["发送一段代码",{"2":{"198":1}}],["发现了文件的bug",{"2":{"192":1}}],["发行版提供的版本",{"2":{"185":1}}],["发行版本也许正在宣传他们的网页论坛或",{"2":{"185":1}}],["发文前先翻翻已有的话题",{"2":{"183":1}}],["论坛中搜索到真正解决你问题的方案",{"2":{"204":1}}],["论坛或本地用户群组中提问也许是恰当的",{"2":{"210":1}}],["论坛或",{"2":{"200":1}}],["论坛",{"0":{"185":1}}],["论坛和网页",{"2":{"181":1}}],["点击投票按钮下方的对勾来将它标记为正解",{"2":{"184":1}}],["点击向上的箭头来为它投票",{"2":{"184":1}}],["译注",{"2":{"184":1}}],["尤其注意为代码添加格式",{"2":{"184":1}}],["尤其是伴随着与实际问题含糊不清的描述时更令人反感",{"2":{"193":1}}],["尤其是项目领导人",{"2":{"186":1}}],["尤其是那些开放源码的项目",{"2":{"184":1}}],["尤其是在没有设置缓存过期时间时",{"2":{"180":1}}],["之前先在",{"2":{"184":1}}],["近年来",{"2":{"184":1}}],["问问自己如何修改相关文件或常见问题文件以免再次解答同样的问题",{"2":{"213":1}}],["问题带来的压力常使人显得无礼或愚蠢",{"2":{"213":1}}],["问题",{"2":{"210":18,"233":1,"304":1}}],["问题悬而未决会让人灰心",{"2":{"204":1}}],["问题解决后",{"0":{"204":1},"2":{"204":1}}],["问题发生前的一系列操作",{"2":{"195":1}}],["问我想更好地理解",{"2":{"198":1}}],["问",{"2":{"184":1}}],["老练的黑客和一些热门软件的作者正在接受过多的错发信息",{"2":{"183":1}}],["黑客从某种角度来说是拥有丰富知识但缺乏人情味的家伙",{"2":{"211":1}}],["黑客们自己莽撞地越线的情况并不鲜见",{"2":{"208":1}}],["黑客们渴望看到问题被解决",{"2":{"204":1}}],["黑客们一般宁可读有点唐突但技术上鲜明的",{"2":{"203":1}}],["黑客们会很厌烦你",{"2":{"201":1}}],["黑客们很擅长分辨哪些问题是家庭作业式的问题",{"2":{"200":1}}],["黑客们也会看到你在尝试取得答案的过程中付出了努力",{"2":{"199":1}}],["黑客们认为问题的解决过程应该公开",{"2":{"197":1}}],["黑客",{"2":{"186":1}}],["黑客较愿意回答那些能帮助到许多人的问题",{"2":{"183":1}}],["黑客会剔除掉那些搞错场合的问题",{"2":{"183":1}}],["套件或工具的论坛中提关于",{"2":{"183":1}}],["搞清楚你的主题",{"2":{"183":1}}],["扫射",{"2":{"183":1}}],["扫描",{"2":{"298":1,"299":1}}],["扫描指定类并向全局配置注册扫描获取的方法容器",{"2":{"298":1}}],["扫描方法容器",{"0":{"245":1}}],["扫描枚举容器",{"0":{"244":1}}],["扫描枚举包路径",{"2":{"60":1,"244":1}}],["扫描常量容器",{"0":{"243":1}}],["扫描常量包路径",{"2":{"50":1,"243":1}}],["扫描所有公有和非公有属性",{"2":{"48":1}}],["事后",{"2":{"211":1}}],["事先在新闻组或邮件列表的历史记录中搜索与你问题相关的关键词是个极好的主意",{"2":{"183":1}}],["事实上这是参与任何私有或半私有列表的好主意",{"2":{"186":1}}],["事实上",{"2":{"183":1,"185":1,"202":1,"204":1,"206":1,"209":1,"211":1}}],["别忘了我们都曾是新手",{"2":{"213":1}}],["别因为听起来像个专家很好玩",{"2":{"213":1}}],["别为要付费才能获得帮助而感到沮丧",{"2":{"212":1}}],["别大声哀嚎",{"2":{"209":1}}],["别立刻要求对方解释",{"2":{"207":1}}],["别把自己家庭作业的问题贴上来",{"0":{"200":1}}],["别要求他人帮你调试有问题的代码",{"2":{"199":1}}],["别要求使用私人电邮回复",{"0":{"197":1}}],["别这样做",{"2":{"197":1}}],["别用原始灵长类动物的把戏来浪费你我的时间",{"2":{"193":1}}],["别用喋喋不休的帮帮忙",{"2":{"187":1}}],["别动辄声称找到",{"0":{"192":1}}],["别像机关枪似的一次",{"2":{"183":1}}],["别太相信它的名字",{"2":{"183":1}}],["别假设一个提供丰富内容的网页的作者会想充当你的免费顾问",{"2":{"183":1}}],["别着急",{"2":{"181":1}}],["举例来说",{"2":{"183":1}}],["举个例子",{"2":{"6":1,"24":1,"59":1,"249":1}}],["链过去看看",{"2":{"183":1}}],["链式操作符",{"0":{"142":1}}],["向其雇主报怨",{"2":{"209":1}}],["向所有帮助过你的人发个说明",{"2":{"204":1}}],["向列表提问可以分散开发者的负担",{"2":{"186":1}}],["向陌生的人或论坛发送邮件最可能是风险最大的事情",{"2":{"183":1}}],["向既非熟人也没有义务解决你问题的人发送私人电邮",{"2":{"183":1}}],["向你身边的强者朋友打听以找到答案",{"2":{"181":1}}],["反转基于常量类构建的容器键值",{"2":{"217":1}}],["反之",{"2":{"186":1}}],["反之亦然",{"2":{"183":1,"287":1}}],["反射",{"0":{"238":1},"1":{"239":1,"240":1,"241":1}}],["反射获取字段值会带来额外的性能开销",{"2":{"118":1}}],["反射工厂",{"0":{"36":1},"2":{"142":1}}],["反射读写字段消耗的时间也会越来越多",{"2":{"6":1}}],["慎选提问的论坛",{"0":{"183":1}}],["有的则从本地缓存中获取",{"2":{"335":1}}],["有的通过",{"2":{"335":1}}],["有着详细的注释和文档",{"2":{"335":1}}],["有些组件直接使用成熟的开源库比自己再写一套更可靠",{"2":{"300":1}}],["有些可怜的呆瓜会把它当成真的指令",{"2":{"213":1}}],["有些人也会无缘无故地攻击你本人",{"2":{"209":1}}],["有些人断言很多黑客都有轻度的自闭症或亚斯伯格综合症",{"2":{"208":1}}],["有些人明白他们不该粗鲁或傲慢的提问并要求得到答复",{"2":{"193":1}}],["有些人称之为频道洪水",{"2":{"185":1}}],["有许多网上的以及本地的用户群组",{"2":{"212":1}}],["有点耐心",{"2":{"212":1}}],["有谁知道接下来我该做些什么测试才能找出问题",{"2":{"211":1}}],["有关的问题",{"2":{"211":1}}],["有互动",{"2":{"210":1}}],["有问题",{"2":{"210":2}}],["有一个年轻的亲戚",{"2":{"206":1}}],["有一个古老而神圣的传统",{"2":{"206":1}}],["有半个例外的情况是",{"2":{"202":1}}],["有或没有类型的问句",{"2":{"201":1}}],["有人甚至可能热心地为你提供以前解决此问题的讨论串",{"2":{"206":1}}],["有人能帮你或者不",{"2":{"201":1}}],["有人会为了某些未知的原因",{"2":{"188":1}}],["有回复时发送邮件提醒等功能",{"2":{"188":1}}],["有几个很好的理由支持我们采用这种办法",{"2":{"186":1}}],["有几个理由可以支持这点",{"2":{"183":1}}],["有广告赞助的",{"2":{"185":1}}],["有很高的几率某人已经问了一个类似的问题",{"2":{"184":1}}],["有思维激励作用的问题",{"2":{"181":1}}],["有趣的",{"2":{"181":1}}],["有时只是看到你问题的人不知道答案罢了",{"2":{"212":1}}],["有时网页论坛会设有专为新手提问的版面",{"2":{"193":1}}],["有时确实需要自定义查询字段的情况",{"2":{"174":1}}],["有时候排序值并不一定代表最终的执行顺序",{"2":{"127":1}}],["有时候",{"2":{"74":1,"77":1,"108":1,"151":1,"209":1,"250":1,"251":1,"267":1}}],["有时甚至会出现",{"2":{"38":1}}],["靠提出有内涵的",{"2":{"181":1}}],["越是能表现出在寻求帮助前你为解决问题所付出的努力",{"2":{"181":1}}],["越近",{"2":{"141":1}}],["准备",{"0":{"256":1,"260":1}}],["准备好你的问题",{"2":{"181":1}}],["准备一个",{"2":{"160":1}}],["准备一个数据源容器",{"2":{"11":1}}],["坐得舒服一些",{"2":{"181":1}}],["放轻松",{"2":{"181":1}}],["我重新梳理了功能",{"2":{"332":1}}],["我对这个内部框架进行了重构",{"2":{"332":1}}],["我对要我问你二十个问题才找得出你真正问题的问题没兴趣",{"2":{"210":1}}],["我还加入了对枚举和常量的转换支持",{"2":{"332":1}}],["我厌倦了频繁的联查和手动赋值",{"2":{"332":1}}],["我相信他是对的",{"2":{"211":1}}],["我也表明了对他们宝贵时间的尊重",{"2":{"211":1}}],["我显示了自己具备和他们同等的能力",{"2":{"211":1}}],["我设法让人们很容易参与并且被吸引进来",{"2":{"211":1}}],["我给了别人可以咀嚼玩味的东西",{"2":{"211":1}}],["我",{"2":{"211":1}}],["我又试了",{"2":{"211":1}}],["我有什么做的不对的地方吗",{"2":{"211":1}}],["我有更有意思的事要做呢",{"2":{"210":1}}],["我读过了",{"2":{"211":1}}],["我从",{"2":{"211":1}}],["我用",{"2":{"211":1}}],["我可以在哪儿找到关于",{"2":{"211":1}}],["我可以用",{"2":{"210":2}}],["我将透过举一些例子",{"2":{"211":1}}],["我将为论坛归纳这些回复",{"2":{"197":1}}],["我只有亲自在你的电脑上动手才能找到毛病",{"2":{"210":1}}],["我怎么才能破解",{"2":{"210":2}}],["我怎样用",{"2":{"210":2}}],["我怎样才能从某绘图程序的颜色选择器中取得十六进制的",{"2":{"196":1}}],["我认为系统工具",{"2":{"210":2}}],["我能在哪找到",{"2":{"210":2}}],["我期待它显示",{"2":{"199":1}}],["我现在知道的唯一方法是编辑每个色码区块",{"2":{"196":1}}],["我正试着用替换一幅图片的色码",{"2":{"196":1}}],["我来自密苏里州",{"2":{"194":1}}],["我来自一个出产玉米",{"2":{"194":1}}],["我怀疑某条飞线搭在主板的走线上了",{"2":{"194":1}}],["我知道我只是个可悲的新手",{"2":{"193":1}}],["我的主机板有问题了",{"2":{"211":1}}],["我的反应通常不外如下三种",{"2":{"210":1}}],["我的",{"2":{"210":3}}],["我的程序不会动了",{"2":{"210":2}}],["我的程序",{"2":{"210":1}}],["我的组装电脑是",{"2":{"194":1}}],["我的笔记本电脑不能正常显示了",{"2":{"187":1}}],["我的这个例子里缺了什么",{"2":{"181":1}}],["我在公司开发中遇到了大量重复的字段填充需求",{"2":{"332":1}}],["我在安装",{"2":{"210":2}}],["我在编译内核时接连遇到",{"2":{"194":1}}],["我在",{"2":{"181":1,"211":2}}],["我们以一个典型的",{"2":{"333":1}}],["我们以组合式风格的注解为例",{"2":{"275":1}}],["我们引导你通过一个简单的示例",{"2":{"306":1}}],["我们举一个",{"2":{"287":1}}],["我们定义一个接受参数对象的方法作为数据源容器",{"2":{"278":1}}],["我们直接在容其中获取要填充的",{"2":{"277":1}}],["我们假设存在如下",{"2":{"276":1}}],["我们假设现在有一个员工对象",{"2":{"264":1}}],["我们还可以进一步通过组合组件简化代码",{"2":{"275":1}}],["我们还可以在枚举类上添加",{"2":{"59":1}}],["我们还可以在常量类上添加",{"2":{"49":1}}],["我们还需要关联查询出其他的信息",{"2":{"272":1}}],["我们有三种可能的解决方案",{"2":{"276":1}}],["我们有实体类",{"2":{"271":1}}],["我们有一个",{"2":{"123":1,"142":1}}],["我们有一个名为",{"2":{"40":1}}],["我们先给出不使用",{"2":{"270":1}}],["我们数据库中只存储了三级部门",{"2":{"264":1}}],["我们选择一个方式触发填充即可",{"2":{"261":1}}],["我们忽略其他无关的属性",{"2":{"256":1}}],["我们基于枚举填充了用户的性别字段",{"2":{"250":1}}],["我们喜欢我们现在这个样子",{"2":{"208":1}}],["我们不在乎",{"2":{"208":1}}],["我们注意到",{"2":{"203":1}}],["我们也觉得花几秒钟思考你的问题更麻烦",{"2":{"188":1}}],["我们也可以将",{"2":{"104":1}}],["我们也可以在配置文件中直接扫描路径下的所有枚举类",{"2":{"59":1}}],["我们推荐在获取数据源时通过自动填充对数据源进行初步处理",{"2":{"131":1}}],["我们声明了一个装配操作",{"2":{"142":1}}],["我们声明了两个装配操作",{"2":{"123":1}}],["我们声明一个容器",{"2":{"80":1}}],["我们要定义一个条件",{"2":{"121":1}}],["我们要声明为数据源容器的方法会将对象作为查询参数",{"2":{"74":1}}],["我们更推荐直接在配置文件中设置",{"2":{"118":1}}],["我们的建议是要么先说先谢了",{"2":{"203":1}}],["我们的数据源容器",{"2":{"90":1}}],["我们的输入参数",{"2":{"29":1}}],["我们需要对其",{"2":{"276":1}}],["我们需要填充其所属的一级",{"2":{"264":1}}],["我们需要填充的对象中可能嵌套了其他对象",{"2":{"100":1}}],["我们需要先查询三级部门的信息",{"2":{"264":1}}],["我们需要先完成拆卸操作",{"2":{"100":1}}],["我们需要先将这些嵌套对象拆分出来",{"2":{"100":1}}],["我们需要同时根据",{"2":{"80":1}}],["我们需要更换装配处理器",{"2":{"38":1}}],["我们现有待填充对象",{"2":{"80":1}}],["我们可能会希望异步的完成关联字段填充",{"2":{"335":1}}],["我们可能需要填充大量的关联数据",{"2":{"335":1}}],["我们可能需要依次获取对象的某几个属性值",{"2":{"94":1}}],["我们可能需要同时根据多个",{"2":{"80":1}}],["我们可以直接使用组合注解",{"2":{"275":1}}],["我们可以直接提供一个方法数据源容器",{"2":{"265":1}}],["我们可以直接在需要进行拆卸操作的属性上使用",{"2":{"102":1}}],["我们可以实现多对一的映射关系",{"2":{"175":1}}],["我们可以注意到",{"2":{"161":1}}],["我们可以创建一个模板类",{"2":{"141":1}}],["我们可以将字段映射配置抽取为独立的模板",{"2":{"141":1}}],["我们可以将第二个及后面的几个参数作为临时数据源",{"2":{"31":1}}],["我们可以通过相对简洁的注解描述上述操作",{"2":{"334":1}}],["我们可以通过操作配置解析器",{"2":{"283":1}}],["我们可以通过指定键值解析器为",{"2":{"94":1}}],["我们可以通过它获取基于",{"2":{"53":1}}],["我们可以快速配置一个数据源容器",{"2":{"69":1}}],["我们可以使用上文配置的序列化器对其进行序列化",{"2":{"161":1}}],["我们可以使用",{"2":{"58":1}}],["我们可以借助一对多装配处理器",{"2":{"41":1}}],["我们可以基于",{"2":{"24":1}}],["我们真正需要填充的数据其实是",{"2":{"77":1,"151":1,"267":1}}],["我们会希望在执行时根据情况选择性的排除某一些操作",{"2":{"251":1}}],["我们会希望在填充后",{"2":{"250":1}}],["我们会谈到另一个问题",{"2":{"208":1}}],["我们会存在多级包装的情况",{"2":{"151":1,"268":1}}],["我们会从中获取指定的",{"2":{"140":1}}],["我们会需要根据动态的条件",{"2":{"108":1}}],["我们会在",{"2":{"77":1,"151":1,"267":1}}],["我们会注意到",{"2":{"67":1}}],["我们实现了",{"2":{"56":1}}],["我们通过",{"2":{"134":1}}],["我们通过这种方式来避免重复创建相同的容器",{"2":{"24":1}}],["我们通常会通过外键从数据源中得到对应的数据",{"2":{"52":1,"282":1}}],["我们根据",{"2":{"41":1}}],["我们希望有一个注解可以直接对其进行填充",{"2":{"24":1}}],["我们向配置解析器",{"2":{"22":1}}],["我们称这用于声明操作的注解为操作注解",{"2":{"22":1}}],["我们创建了一个缓存全部字典项的容器",{"2":{"20":1}}],["我们在需要填充的类属性上添加注解",{"2":{"311":1,"319":1,"328":1}}],["我们在部门对象上直接引用相关属性即可",{"2":{"265":1}}],["我们在自动填充时配置只填充属于",{"2":{"252":1}}],["我们在类上添加",{"2":{"80":1}}],["我们在",{"2":{"6":1}}],["搜索关键词",{"2":{"213":1}}],["搜索过",{"2":{"211":1}}],["搜索引擎的那一头",{"2":{"210":1}}],["搜索引擎有可能没来得及索引此论坛的全部内容",{"2":{"185":1}}],["搜索能让你更缩小你的搜索结果",{"2":{"184":1}}],["搜索就能解决一个复杂的问题",{"2":{"181":1}}],["搜索",{"2":{"181":1,"184":2}}],["搜索你所遇到的各种错误信息",{"2":{"181":1}}],["运用某些策略",{"2":{"181":1}}],["运行时",{"2":{"116":1,"117":1,"118":1,"119":1,"120":1}}],["新闻群组",{"2":{"204":1}}],["新闻群组或论坛中的前辈多半会招呼他",{"2":{"208":1}}],["新闻群组或论坛中",{"2":{"187":1}}],["新闻群组或邮件列表时",{"2":{"183":1}}],["新闻群组或者聊天室提出技术问题前",{"2":{"181":1}}],["新",{"2":{"187":1}}],["新手论坛很可能还是邮件列表",{"2":{"185":1}}],["新增了三个支持递归填充的操作执行器",{"2":{"132":1}}],["删除数据",{"2":{"180":2}}],["构建",{"2":{"171":1}}],["构建并执行了",{"2":{"171":1,"172":1,"173":1}}],["quickstart",{"2":{"330":1}}],["quickstartwithspringboottest",{"2":{"323":2}}],["quickstartwithspringtest",{"2":{"315":1}}],["querydeptwithparentbythirddept",{"2":{"265":1}}],["querywrapper",{"2":{"171":1,"172":1,"173":1,"174":1}}],["quot",{"2":{"0":2,"51":2,"61":2,"67":2,"72":2,"129":2,"133":14,"154":2,"211":2,"250":8,"252":2}}],["名称",{"2":{"292":1,"293":1,"294":1}}],["名称默认为",{"2":{"169":1}}],["名称为",{"2":{"49":1}}],["规则的",{"2":{"167":1}}],["开发者",{"2":{"186":2}}],["开发者可以利用此信息来改进说明文件或软件本身",{"2":{"186":1}}],["开启了",{"2":{"299":1}}],["开启后可以一定程度上提升字段映射的性能",{"2":{"239":1}}],["开启反射增强功能",{"2":{"239":1}}],["开启这个功能",{"2":{"180":1}}],["开启自动注册",{"2":{"167":1}}],["开始",{"2":{"21":1,"78":1}}],["懒加载",{"0":{"166":1}}],["允许将当前对象作为",{"2":{"221":1,"222":1}}],["允许自定义注解",{"2":{"218":1}}],["允许用户按讨论串排序并通过折叠讨论串来隐藏消息",{"2":{"187":1}}],["允许从",{"2":{"180":1}}],["允许基于",{"2":{"163":1}}],["允许你自定义一些逻辑",{"2":{"21":1}}],["把你的返回值序列化为",{"2":{"161":1}}],["库",{"2":{"161":1}}],["显然",{"2":{"211":1}}],["显示指定",{"2":{"161":1}}],["显式指定操作执行器",{"2":{"129":1,"264":1}}],["显式指定key类型",{"0":{"90":1}}],["动态的增添或替换",{"2":{"161":1}}],["动态根据表达式的计算结果决定是否执行",{"2":{"152":1}}],["生成待完成的任务",{"2":{"331":1}}],["生成构造器",{"2":{"311":1,"315":1,"319":1,"323":1,"328":1,"330":1}}],["生成",{"2":{"161":1,"271":2}}],["生成对应代理对象",{"2":{"25":1}}],["保证默认的属性操作者",{"2":{"160":1}}],["序列化对象时",{"2":{"159":1}}],["依次类推",{"2":{"264":1}}],["依然会拿着",{"2":{"249":1}}],["依然会认为它是一个有效值",{"2":{"86":1}}],["依然认为其为有效值",{"2":{"249":1}}],["依照黑客的标准",{"2":{"206":1}}],["依赖注入获取被",{"2":{"219":1}}],["依赖来使用基于",{"2":{"176":1}}],["依赖",{"2":{"157":1,"164":1,"177":1,"308":2,"317":2,"325":1}}],["额外的引入下述依赖",{"2":{"157":1,"164":1,"177":1}}],["安装",{"0":{"157":1,"164":1,"177":1,"308":1,"317":1,"325":1}}],["凭空",{"2":{"156":1}}],["还支持更多的触发方式",{"2":{"257":1,"261":1}}],["还要帮你拍拍背和换尿布吗",{"2":{"211":1}}],["还列出了错误",{"2":{"211":1}}],["还被特定形势禁锢了思维",{"2":{"210":1}}],["还用向别人求助吗",{"2":{"194":1}}],["还有其他许多用户没遇到你发现的问题",{"2":{"192":1}}],["还提供了一些有用的重载方法",{"2":{"147":1}}],["还是去找你当地的",{"2":{"210":1}}],["还是有用",{"2":{"209":1}}],["还是我看漏了什么",{"2":{"207":1}}],["还是再搜索一下论坛",{"2":{"185":1}}],["还是",{"2":{"121":1}}],["还是推荐把参数类型写全",{"2":{"71":1}}],["顺序填充",{"2":{"147":1}}],["命名参考了",{"2":{"147":1}}],["另一种才是明智的",{"2":{"211":1}}],["另一种则是直接使用最底层的",{"2":{"147":1}}],["另一方面",{"2":{"181":1,"208":1}}],["另外",{"2":{"135":1,"187":1,"212":1}}],["集成使用",{"2":{"306":1}}],["集成的一些问题",{"2":{"228":1}}],["集成后",{"2":{"146":1}}],["集合后直接修改即可",{"2":{"296":1}}],["集合创建数据源容器",{"2":{"310":1,"318":1,"327":1}}],["集合创建一个容器",{"2":{"282":1}}],["集合创建容器",{"2":{"52":1}}],["集合中",{"2":{"175":1}}],["集合中查询",{"2":{"31":1}}],["集合本身",{"2":{"80":1}}],["集合或字符串是否为空",{"2":{"118":1}}],["集合或",{"2":{"71":1}}],["集合作为数据源的容器",{"2":{"69":1}}],["集合缓存指以",{"2":{"69":1}}],["集合容器",{"0":{"69":1}}],["集合将会被拼接位字符串再进行填充",{"2":{"46":1}}],["集合的容器",{"2":{"282":2}}],["集合的",{"2":{"44":1}}],["集合获取按客户组别id分组的客户集合",{"2":{"41":1}}],["集合",{"2":{"36":1,"40":1,"71":1,"73":1,"101":1,"149":1,"175":1,"282":1,"314":1,"322":1}}],["集合适配为容器外",{"2":{"31":1}}],["集合实现的本地缓存管理器",{"2":{"12":1}}],["支持字典",{"2":{"332":1}}],["支持的数据源类型",{"2":{"287":1}}],["支持的容器远远不止这些",{"2":{"282":1}}],["支持组合式和选项式两种的配置风格",{"2":{"287":1}}],["支持将被",{"2":{"245":1}}],["支持将枚举也作为数据源适配为容器",{"2":{"244":1}}],["支持将常量类也作为数据源适配为容器",{"2":{"243":1}}],["支持像",{"2":{"233":1}}],["支持根据策略回填指定字段值",{"2":{"229":1}}],["支持为每个操作都添加一个id作为唯一标识",{"2":{"229":1}}],["支持使用实体类中特定方法返回值作为key值",{"2":{"229":1}}],["支持使用spring的",{"2":{"216":1}}],["支持全量获取数量固定的数据源容器",{"2":{"225":1}}],["支持直接在",{"2":{"228":1}}],["支持直接通过",{"2":{"225":1}}],["支持直接填充",{"2":{"218":1}}],["支持",{"0":{"301":1},"2":{"222":1,"223":1,"224":1,"227":1,"229":1,"301":1}}],["支持刷新缓存内容",{"2":{"220":1,"222":1}}],["支持解析自定义的配置规则",{"2":{"218":1}}],["支持通过各种注解快速的配置填充和拆卸操作",{"2":{"284":1}}],["支持通过字面量的形式配置",{"2":{"232":1}}],["支持通过",{"2":{"217":1,"219":1}}],["支持基于自定义",{"2":{"236":1}}],["支持基于",{"2":{"216":1}}],["支持手动和自动填充",{"2":{"146":1}}],["支持在方法调用前后自动填充方法的入参或者返回值",{"2":{"286":1}}],["支持在非",{"2":{"233":1}}],["支持在被",{"2":{"232":1}}],["支持在启动类上的注解中扫描注解",{"2":{"223":1}}],["支持在注解中通过",{"2":{"216":1}}],["支持在",{"2":{"142":1}}],["支持设置到期时间",{"2":{"14":1}}],["引入你的项目",{"2":{"250":1,"251":1,"255":1,"259":1,"263":1,"266":1,"276":1}}],["引入",{"2":{"157":2,"164":2,"177":2,"308":1,"317":1,"325":1}}],["引入该扩展会带来不少的便利",{"2":{"156":1}}],["引入模板",{"2":{"141":1}}],["引用数据源容器",{"2":{"283":1}}],["引用目标对象",{"2":{"262":1}}],["引用配置好的数据源",{"2":{"261":1}}],["引用",{"2":{"216":1}}],["引用方法的入参",{"2":{"152":1}}],["引用返回值",{"2":{"152":1}}],["引用策略即可",{"2":{"145":1}}],["引用策略",{"2":{"145":1}}],["引用当前要填充的对象",{"2":{"116":1}}],["现有如下配置",{"2":{"141":1}}],["现在你有一个",{"2":{"256":1,"260":1}}],["现在你希望把",{"2":{"145":1}}],["现在我们有了一个新的需求",{"2":{"250":1}}],["现在",{"2":{"6":1,"41":1,"145":1,"256":1,"276":1}}],["替换为对应字典值",{"2":{"139":1}}],["获得数据源",{"2":{"331":1}}],["获得的数据为",{"2":{"139":1}}],["获的默认配置类",{"2":{"281":1}}],["获取关联的数据对象后",{"2":{"283":1}}],["获取字典对应的",{"2":{"277":2}}],["获取所有关联的上级部门",{"2":{"265":1}}],["获取到",{"2":{"142":1}}],["获取与",{"2":{"86":1}}],["获取操作门面进行手动填充",{"2":{"131":1}}],["获取操作门面",{"2":{"76":1,"83":1}}],["获取操作门面并注册容器",{"2":{"68":1}}],["获取注解元素",{"0":{"67":1}}],["获取注解处理器",{"2":{"65":1}}],["获取注解的通用属性",{"2":{"24":1}}],["获取缓存值",{"2":{"178":1}}],["获取缓存",{"2":{"15":1,"178":1}}],["获取",{"2":{"13":2,"55":2,"86":1,"225":1,"296":1}}],["获取它所持有的缓存对象",{"2":{"15":1}}],["获取它",{"2":{"13":1}}],["映射为",{"2":{"145":1}}],["映射到该字段的数据需要从",{"2":{"145":1}}],["映射到",{"2":{"142":1,"257":1,"258":1,"283":1,"334":1}}],["映射回",{"2":{"138":1}}],["映射类型为一对一",{"2":{"261":1,"262":1}}],["映射类型",{"2":{"72":1}}],["查看话不在多而在精一节",{"2":{"199":1}}],["查一查项目的文件和首页",{"2":{"186":1}}],["查找到性别字典对象",{"2":{"138":1}}],["查找到",{"2":{"137":1}}],["查询时",{"2":{"335":1}}],["查询数据",{"2":{"278":1}}],["查询接口",{"2":{"278":1}}],["查询指定",{"2":{"277":2}}],["查询商品信息",{"2":{"272":1}}],["查询订单列表",{"2":{"272":1}}],["查询二级部门",{"2":{"265":1}}],["查询一级部门",{"2":{"265":2}}],["查询全部关联上级部门的接口",{"2":{"264":1}}],["查询员工集合",{"2":{"175":2}}],["查询的接口",{"2":{"264":1}}],["查询的表字段可能与用户的对象属性不一致",{"2":{"174":1}}],["查询的条件字段",{"2":{"172":1,"173":1}}],["查询外键",{"2":{"174":1}}],["查询字段名为实体类中对应的属性名",{"2":{"171":1}}],["查询出的数据将按照用户指定的",{"2":{"172":1,"173":1}}],["查询出的数据将按照",{"2":{"171":1}}],["查询结果集是",{"2":{"73":1}}],["查询结果集已经分好组了",{"2":{"73":1}}],["查询用户信息并填充数据的操作",{"2":{"249":1}}],["查询用户",{"2":{"73":2}}],["查询关联的多个",{"2":{"44":1,"140":1}}],["查询客户",{"2":{"40":1,"287":2}}],["查询",{"2":{"6":5,"333":1}}],["同上",{"2":{"294":1}}],["同学",{"2":{"250":2}}],["同样",{"2":{"200":1}}],["同时存在的复数操作",{"2":{"335":1}}],["同时也没有巧妙地将问题真正的答案藏于其后",{"2":{"209":1}}],["同时",{"2":{"197":1}}],["同步填充",{"2":{"147":1}}],["同名属性",{"0":{"135":1}}],["同一个问题的两种问法被放在一起",{"2":{"211":1}}],["同一个类继承树中的操作",{"2":{"125":1}}],["同一个类中操作",{"2":{"125":1}}],["同一个属性上的操作",{"2":{"125":1}}],["带填充对象的属性",{"2":{"133":1}}],["带填充对象的key类型为string",{"2":{"90":1}}],["指出我还应该做什么诊断工作之间微妙而又重要的区别",{"2":{"211":1}}],["指向的字段是字符串",{"2":{"236":1}}],["指向的属性值映射到",{"2":{"138":1}}],["指向数据源对象本身",{"2":{"133":1}}],["指向",{"2":{"133":2}}],["指定枚举类",{"2":{"334":1}}],["指定枚举类型",{"2":{"61":2}}],["指定操作的执行顺序",{"2":{"283":1}}],["指定操作顺序",{"2":{"264":1}}],["指定操作处理器",{"2":{"107":1}}],["指定顺序执行器会导致该对象中所有的操作都变为同步的",{"2":{"265":1}}],["指定顺序",{"2":{"264":3}}],["指定填充顺序",{"0":{"264":1}}],["指定填充字段",{"2":{"51":1,"61":1}}],["指定数据源为",{"2":{"257":1,"258":1}}],["指定仅填充属于",{"2":{"252":1}}],["指定查询字段",{"0":{"174":1}}],["指定分组",{"0":{"153":1}}],["指定执行器",{"0":{"154":1},"2":{"305":1}}],["指定执行器为无序的递归执行器",{"2":{"132":1}}],["指定执行器和解析器",{"0":{"30":1}}],["指定的",{"2":{"154":1}}],["指定的字段名称相同",{"2":{"135":1}}],["指定的期望值转为实际值的类型后再进行比较",{"2":{"117":1}}],["指定的分隔符一致",{"2":{"46":1}}],["指定属性映射策略",{"2":{"97":1,"144":1}}],["指定策略",{"0":{"97":1,"144":1},"2":{"145":1}}],["指定关联三个属性",{"2":{"94":1}}],["指定键值解析器",{"2":{"94":1}}],["指定其需要在执行时将",{"2":{"90":1}}],["指定缓存配置",{"2":{"79":1}}],["指定缓存管理器",{"0":{"13":1},"2":{"13":1}}],["指定绑定方法",{"2":{"79":1}}],["指定调用类的类型全限定名",{"2":{"79":1}}],["指定调用类的类型",{"2":{"79":1}}],["指定要绑定方法的参数类型",{"2":{"71":1}}],["指定要绑定的方法名称",{"2":{"71":1}}],["指定提供value值的属性",{"2":{"58":1}}],["指定提供key值的属性",{"2":{"58":1}}],["指定你需要的容器要从哪个提供者获取",{"2":{"55":1}}],["指定常量类型",{"2":{"51":2}}],["指定",{"2":{"49":1,"58":1,"90":1,"161":1,"162":1}}],["指定命名空间",{"2":{"49":1,"58":1}}],["指定容器命名空间",{"2":{"48":1}}],["指定将分割出的每个",{"2":{"45":1,"93":1}}],["指定如何将属性值映射到参数对象",{"2":{"42":1,"74":1,"92":1}}],["指定参数对象类型",{"2":{"42":1,"74":1,"92":1}}],["指定入参",{"2":{"31":1}}],["指定扫描路径",{"2":{"28":1}}],["指定使用",{"2":{"14":1,"45":1,"46":1,"93":1}}],["指定过期时间单位",{"2":{"9":2,"75":1}}],["指定批量大小",{"2":{"6":1}}],["指定每一批处理对象数",{"2":{"1":1}}],["请确保",{"2":{"298":1,"299":1}}],["请重新确认上述原因",{"2":{"289":1}}],["请尽快升级",{"2":{"226":1,"230":1,"231":1,"234":1,"235":1}}],["请不要以为我们觉得无法帮助你",{"2":{"212":1}}],["请不要在非必要的场景使用该类型的执行器",{"2":{"132":1}}],["请注意当我尝试",{"2":{"211":1}}],["请把专业技能想像为充裕的资源",{"2":{"198":1}}],["请把你的问题发在与它最相关的网站上",{"2":{"184":1}}],["请记得",{"2":{"192":1}}],["请想像一下你正在一个只显示标题的存档讨论串",{"2":{"187":1}}],["请陈述你已经试过但没有找到合适的邮件列表",{"2":{"186":1}}],["请到这里",{"2":{"184":1}}],["请编辑你的贴子来补充它们",{"2":{"184":1}}],["请尝试阅读源代码以找到答案",{"2":{"181":1}}],["请先确保你已经阅读过快速开始",{"2":{"250":1,"251":1,"255":1,"259":1,"263":1,"266":1,"276":1}}],["请先确保已经引入必要的",{"2":{"157":1,"164":1,"177":1}}],["请先表明你已经做了上述的努力",{"2":{"181":1}}],["请先做到以下事情",{"2":{"181":1}}],["请将",{"2":{"159":1}}],["请参见",{"2":{"9":1,"33":1,"110":2,"153":1,"154":1,"178":1,"264":1,"265":1,"266":1,"285":1}}],["请参照",{"2":{"0":1,"129":1,"154":1}}],["提高了字段映射的执行性能",{"2":{"232":1}}],["提高测试覆盖率",{"2":{"219":1}}],["提问者可以学到点东西",{"2":{"213":1}}],["提问者已经指明了环境",{"2":{"211":1}}],["提问前应该先搜索一下旧文",{"2":{"206":1}}],["提问时别给出可能并不恰当的方法",{"2":{"210":1}}],["提问时",{"2":{"192":1}}],["提问的时候请善用格式化工具",{"2":{"184":1}}],["提示",{"2":{"192":1,"210":2}}],["提取不到任何值",{"2":{"131":1}}],["提供回调接口或组件",{"2":{"228":1}}],["提供不同环境下的最小依赖",{"2":{"218":1}}],["提供基于方法句柄",{"2":{"224":1}}],["提供基于",{"2":{"216":1,"217":1}}],["提供一个基于",{"2":{"233":1}}],["提供一个操作门面",{"2":{"233":1}}],["提供一个默认的可配置容器注册者实现",{"2":{"219":1,"220":1,"222":1}}],["提供一个不基于",{"2":{"219":1}}],["提供一个自定义的缓存管理器",{"2":{"16":1}}],["提供一段操作记录",{"2":{"195":1}}],["提供经销商的发行版和版本号",{"2":{"190":1}}],["提供",{"2":{"163":1,"216":1,"218":1,"219":1,"236":1}}],["提供的功能",{"2":{"306":1}}],["提供的数据源机制无法很好地解决",{"2":{"250":1}}],["提供的批量接口",{"2":{"179":1}}],["提供的各种",{"2":{"147":1}}],["提供的操作门面",{"2":{"147":1}}],["提供的",{"2":{"99":1}}],["提供了两类填充方式",{"2":{"286":1}}],["提供了两个操作感知接口",{"2":{"21":1}}],["提供了基于",{"2":{"156":1}}],["提供了分组填充的功能",{"2":{"122":1}}],["提供了用于在序列化过程中进行填充的",{"2":{"90":1}}],["提供了一些可选的配置项",{"2":{"72":1}}],["提供了一套类似",{"2":{"18":1}}],["提供了选项式配置风格的键值映射功能",{"2":{"64":1}}],["提供了属性操作器",{"2":{"36":1}}],["提供对缓存数据的具体增删改查操作",{"2":{"7":1}}],["平铺操作执行器",{"0":{"131":1}}],["第三",{"2":{"191":1}}],["第一",{"2":{"191":1}}],["第一步是找到对的论坛",{"2":{"183":1}}],["第一个装配操作是根据",{"2":{"123":1}}],["第二种提问法比较聪明",{"2":{"196":1}}],["第二",{"2":{"191":1}}],["第二步",{"0":{"186":1}}],["第二个装配操作是根据",{"2":{"123":1}}],["第二次查询",{"2":{"7":1}}],["层面进行空值过滤",{"2":{"118":1}}],["变量",{"2":{"116":1}}],["取出后再一并填充",{"2":{"283":1}}],["取出并平铺",{"2":{"283":1}}],["取而代之的是",{"2":{"193":1}}],["取反",{"0":{"112":1}}],["取决于",{"2":{"71":1}}],["绑定",{"2":{"262":1}}],["绑定到操作",{"0":{"111":1}}],["绑定方法的参数类型",{"2":{"72":1}}],["绑定方法的名称",{"2":{"72":1}}],["条件填充",{"2":{"253":1,"335":1}}],["条件表达式",{"0":{"152":1}}],["条件要绑定到哪些操作上",{"2":{"121":1}}],["条件装配的机制对此提供了支持",{"2":{"108":1}}],["条件注解",{"2":{"86":1}}],["条件注解等功能",{"2":{"24":1}}],["选择性的填充一批对象中的某一部分",{"2":{"108":1}}],["选项式",{"2":{"287":2}}],["选项式风格配置与组合式风格配置的使用方式与差异",{"2":{"269":1}}],["选项式配置的注解基于注解解析器",{"2":{"287":1}}],["选项式配置",{"0":{"51":1,"61":1,"79":1,"262":1}}],["选项分别替换为",{"2":{"228":1}}],["选项",{"2":{"189":1}}],["选项决定是否要优先遵循枚举类上的注解配置",{"2":{"61":1}}],["选项决定是否要优先遵循常量类上的注解配置",{"2":{"51":1}}],["否则简短可爱的小结比长篇大论更好",{"2":{"204":1}}],["否则你在阅读文件或搜索网页时就应该发现了",{"2":{"192":1}}],["否则你都多半不够完全确信",{"2":{"192":1}}],["否则",{"2":{"123":1,"185":1}}],["否则会栈溢出",{"2":{"105":1}}],["否则各种容器的",{"2":{"71":1}}],["递归版本的",{"2":{"132":3}}],["递归操作执行器",{"0":{"132":1}}],["递归填充下级部门",{"2":{"105":1}}],["递归拆卸",{"0":{"105":1}}],["直译",{"2":{"199":1}}],["直到你弄懂了再发文",{"2":{"202":1}}],["直到问题发生",{"2":{"195":1}}],["直到递归完成整个填充过程",{"2":{"132":1}}],["直到所有的对象都被展开为止",{"2":{"102":1}}],["直接调用操作门面的",{"2":{"329":1}}],["直接使用操作执行器的场景相对罕见",{"2":{"285":1}}],["直接顺带手动的设置一下值",{"2":{"277":1}}],["直接引用即可",{"2":{"258":1}}],["直接处理",{"2":{"240":1}}],["直接直接内嵌一个",{"2":{"227":1}}],["直接将该",{"2":{"137":1}}],["直接在获取数据源的时候就填充",{"2":{"131":1}}],["直接在配置文件里面添加",{"2":{"86":1}}],["直接声明",{"2":{"88":1,"104":1}}],["直接以当前的",{"2":{"80":1}}],["直接通过编码来进行判断",{"2":{"113":1}}],["直接通过",{"2":{"37":1,"296":1}}],["直接指定接口",{"2":{"28":1}}],["嵌套填充商品信息",{"2":{"273":1,"274":1,"275":1}}],["嵌套填充也就无法生效",{"2":{"131":1}}],["嵌套嵌套对象",{"2":{"131":1,"132":1}}],["嵌套对象可能存在多层级的情况",{"2":{"100":1}}],["嵌套一个",{"2":{"6":1}}],["$",{"2":{"99":2,"152":1,"307":1,"316":1,"324":1}}],["$$defaultprovider",{"2":{"99":1}}],["$$",{"2":{"55":1}}],["才会执行填充操作",{"2":{"152":1}}],["才会执行对",{"2":{"123":1}}],["才会对",{"2":{"96":1,"143":1}}],["才获取",{"2":{"97":1,"144":1}}],["才允许将数据源对象的",{"2":{"97":1,"144":1}}],["符号作为分隔符",{"2":{"93":1}}],["符号分割为字符串集合",{"2":{"45":1}}],["尝试参考用例直接在项目中使用",{"2":{"306":1}}],["尝试自己检查或试验以找到答案",{"2":{"181":1}}],["尝试阅读常见问题文件",{"2":{"181":1}}],["尝试阅读手册以找到答案",{"2":{"181":1}}],["尝试上网搜索以找到答案",{"2":{"181":1}}],["尝试在你准备提问的论坛的旧文章中搜索答案",{"2":{"181":1}}],["尝试通过无参构造器创建一个参数对象",{"2":{"92":1}}],["尝试查出一个对应的数据",{"2":{"86":1}}],["源属性名2",{"2":{"92":1}}],["源属性名1",{"2":{"92":1}}],["插件默认从",{"2":{"90":1}}],["插件",{"0":{"156":1,"163":1,"176":1},"1":{"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1},"2":{"90":1,"161":1,"218":1,"224":1,"236":1}}],["转为",{"2":{"90":1}}],["转换器",{"2":{"37":1}}],["转换为",{"2":{"37":1}}],["仅在有限的地方使用了这些工具类库",{"2":{"300":1}}],["仅在需要使用少部分特殊功能时才会出现",{"2":{"285":1}}],["仅仅改变标题还不够",{"2":{"187":1}}],["仅仅是鼠标指针或者还有其它图形",{"2":{"187":1}}],["仅排除指定",{"2":{"167":1}}],["仅注册指定",{"2":{"167":1}}],["仅需要实体类上添加",{"2":{"161":1}}],["仅执行通过指定过滤器条件的操作",{"2":{"124":1}}],["仅当指定执行操作组为",{"2":{"123":1}}],["仅当存在",{"2":{"120":1}}],["仅当填充对象类型为",{"2":{"119":2}}],["仅当",{"2":{"96":1,"97":2,"110":2,"116":1,"117":3,"118":2,"143":1,"144":2,"253":3}}],["仅接受",{"2":{"90":1}}],["仅包含带有该注解的属性",{"2":{"49":1}}],["所以直接返回一个空集合",{"2":{"277":1}}],["所以他们也倾向于厌恶那些漫无边际的提问",{"2":{"198":1}}],["所以",{"2":{"187":1,"189":1,"194":1,"198":1}}],["所以宁可发一个全新的邮件",{"2":{"187":1}}],["所以最好先在论坛或",{"2":{"185":1}}],["所以一般情况下对拆卸操作排序没什么意义",{"2":{"129":1}}],["所以如果此类判断较多",{"2":{"118":1}}],["所以不用担心重复查询数据库",{"2":{"89":1}}],["所有类型的数据源",{"2":{"287":1}}],["所有内存都换过了",{"2":{"194":1}}],["所有传入的",{"2":{"27":1}}],["所有",{"2":{"14":2}}],["所有的诊断专家都来自密苏里州",{"2":{"194":1}}],["所有的帮助渠道",{"2":{"183":1}}],["所有的操作都会通过",{"2":{"179":1}}],["所有的",{"2":{"85":1}}],["所有的执行器都支持设置批量大小",{"2":{"6":1}}],["所有的填充操作都通过操作执行器",{"2":{"0":1}}],["风格的",{"2":{"87":2,"103":1}}],["再在配置中引用数据源",{"2":{"287":1}}],["再使用执行处理",{"2":{"286":1}}],["再配置操作的配置风格被称为组合式配置",{"2":{"262":1}}],["再进行一些附加操作",{"2":{"250":1}}],["再到程序本身的论坛或邮件列表提问",{"2":{"185":1}}],["再说一次",{"2":{"183":1}}],["再将问题仔细地思考过一遍",{"2":{"181":1}}],["再花点时间思考一下这个问题",{"2":{"181":1}}],["再阅读一下常见问题文件",{"2":{"181":1}}],["再执行拆卸操作",{"2":{"132":1}}],["再把",{"2":{"84":1,"283":1,"333":1}}],["再根据指定的操作数量进行分组",{"2":{"6":1}}],["操作执行阶段",{"2":{"331":1}}],["操作执行器是影响操作的执行效率和顺序的关键组件",{"2":{"285":1}}],["操作执行器",{"0":{"285":1},"2":{"305":1}}],["操作执行以及配置管理等功能",{"2":{"233":1}}],["操作",{"2":{"283":1}}],["操作配置",{"0":{"283":1},"2":{"280":1}}],["操作配置预解析",{"0":{"248":1},"2":{"248":1}}],["操作系统而不是程序本身造成的回复感到惊讶",{"2":{"210":1}}],["操作系统",{"2":{"190":1}}],["操作系统或库",{"2":{"184":1}}],["操作系统程序界面的问题",{"2":{"183":1}}],["操作的排序越靠前",{"2":{"126":1}}],["操作的执行顺序基本按如下规则",{"2":{"125":1}}],["操作排序",{"0":{"125":1},"1":{"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1}}],["操作分组",{"0":{"122":1},"1":{"123":1,"124":1},"2":{"153":1,"252":1}}],["操作条件的作用域总是仅限于该注解所在的元素本身",{"2":{"114":1}}],["操作门面也针对某些数据结构提供了一些便捷的",{"2":{"83":1}}],["操作者接口中抽象方法的适配基于不同的方法工厂",{"2":{"35":1}}],["操作者接口类似",{"2":{"25":1}}],["操作者接口",{"0":{"25":1},"1":{"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1}}],["去配置一个填充操作",{"2":{"255":1,"259":1}}],["去调用查询用户信息的方法",{"2":{"249":1}}],["去搜索一下吧",{"2":{"206":1}}],["去掉无意义的提问句",{"0":{"201":1}}],["去数据源容器中查询",{"2":{"80":1}}],["去确认一个对应的数据",{"2":{"80":1}}],["去填充",{"2":{"33":1}}],["因为已经手动设置完值了",{"2":{"277":1}}],["因为黑客们兴奋的点多半与你的不同",{"2":{"202":1}}],["因为我们中的大多数都曾自己解决这类问题",{"2":{"200":1}}],["因为我们更乐于回答那些表现出能从答案中学习的人的问题",{"2":{"181":1}}],["因为这会定出一个时间和精力的上限",{"2":{"198":1}}],["因为它们只会被正在查看该标题的人读到",{"2":{"187":1}}],["因为讨论串与特定的信息紧密结合",{"2":{"187":1}}],["因为有些邮件阅读程序",{"2":{"187":1}}],["因为",{"2":{"184":1,"210":1}}],["因为你表现出只要有人能指个正确方向",{"2":{"181":1}}],["因为草率的发问只能得到草率的回答",{"2":{"181":1}}],["因为该注解下面两个操作配置没有被声明在同一个元素上",{"2":{"114":1}}],["因为前者的优先级更高",{"2":{"79":1}}],["因此我们往往需要通过外键从各种数据源中",{"2":{"333":1}}],["因此一些组件或扩展点需要手动启用",{"2":{"306":1}}],["因此一般情况下不必担心栈溢出",{"2":{"132":1}}],["因此该接口实行如下",{"2":{"272":1}}],["因此若解析器具备缓存功能",{"2":{"248":1}}],["因此提供了",{"2":{"243":1,"244":1}}],["因此要确信你原原本本告诉了他们问题的症状",{"2":{"194":1}}],["因此可以利用此时间去解决其它问题",{"2":{"204":1}}],["因此可以直接编写自定义",{"2":{"174":1}}],["因此可以在表达式中使用",{"2":{"152":1}}],["因此如果用户指定了查询字段",{"2":{"173":1}}],["因此和基于方法的返回值或入参自动填充一样",{"2":{"162":1}}],["因此不管在哪个环境使用",{"2":{"158":1}}],["因此当你的",{"2":{"161":1}}],["因此当层级过多的时候会比较影响性能",{"2":{"132":1}}],["因此当使用此插件时",{"2":{"90":1}}],["因此你可以非常丝滑的接入",{"2":{"161":1}}],["因此你可以使用这种方式来从被多层包装的对象中提取特定的属性值",{"2":{"151":1}}],["因此你无法通过类似下面这种方式来指定两者的执行顺序",{"2":{"131":1}}],["因此你只需要通过",{"2":{"92":1,"93":1}}],["因此没有指定",{"2":{"106":1,"150":1}}],["因此通过",{"2":{"90":1}}],["因此直接按顺序合并即可",{"2":{"73":1}}],["因此对于",{"2":{"67":1}}],["因此在这种情况下",{"2":{"174":1}}],["因此在序列化过程中",{"2":{"161":1}}],["因此在执行填充操作之前",{"2":{"100":1}}],["因此在",{"2":{"46":1}}],["因此也无法在类上或类的属性上添加注解配置",{"2":{"25":1}}],["因此默认情况下",{"2":{"6":1}}],["因此",{"2":{"0":1,"35":1,"71":1,"80":1,"125":1,"131":1,"178":1,"179":1,"183":1,"195":1,"198":1,"332":1}}],["目前没有提供",{"2":{"309":1}}],["目前仅支持",{"2":{"287":1}}],["目前默认的",{"2":{"107":1}}],["目前提供了三套实现",{"2":{"37":1}}],["目标",{"2":{"260":1}}],["目标属性名2",{"2":{"92":1}}],["目标属性名1",{"2":{"92":1}}],["目标类",{"2":{"79":1}}],["出自国会议员",{"2":{"194":1}}],["出于效率考虑",{"2":{"335":1}}],["出于性能考虑",{"2":{"179":1}}],["出于批量操作的性能考虑",{"2":{"131":1}}],["出于降低理解成本的目的",{"2":{"79":1}}],["出现重复值时直接抛异常",{"2":{"59":1,"72":1}}],["出现重复值时的处理策略",{"2":{"59":1,"72":1}}],["80",{"2":{"189":2}}],["8",{"0":{"78":1,"143":1,"144":1,"145":1,"233":1,"234":1,"235":1},"1":{"144":1,"145":1},"2":{"77":1,"187":3,"211":1}}],["然而我们并不能简单的直接通过",{"2":{"276":1}}],["然而",{"2":{"77":1,"174":1,"186":1,"203":1,"208":1}}],["然后根据需要阅读后续的",{"2":{"336":1}}],["然后根据你的需要移除某些键值",{"2":{"15":1}}],["然后跟着",{"2":{"336":1}}],["然后跟业务代码一样把关联的数据查出来",{"2":{"277":1}}],["然后交由操作执行器",{"2":{"331":1}}],["然后引入",{"2":{"317":1}}],["然后指定装配操作生成参数对象作为",{"2":{"278":1}}],["然后填充该部门归属的二级部门",{"2":{"264":1}}],["然后填充到",{"2":{"131":1}}],["然后按下删除键",{"2":{"211":1}}],["然后按部门",{"2":{"175":1}}],["然后自己去找出来",{"2":{"210":1}}],["然后事后再对回复者表示感谢",{"2":{"203":1}}],["然后说一句",{"2":{"199":1}}],["然后说一声",{"2":{"199":1}}],["然后跑来问该怎么走",{"2":{"196":1}}],["然后才陈述重现你所卡住的特定步骤",{"2":{"196":1}}],["然后才能真正完成填充",{"2":{"146":1}}],["然后装配配置如下",{"2":{"174":1}}],["然后分页对象里面才是需要填充的数据",{"2":{"151":1,"268":1}}],["然后分别按照每个参数类型对应的操作配置对参数进行填充",{"2":{"32":1}}],["然后在",{"2":{"184":1,"258":1}}],["然后在此基础上",{"2":{"157":1,"164":1,"177":1}}],["然后在执行时指定仅执行或不执行特定的操作组",{"2":{"122":1}}],["然后在前者的基础上",{"2":{"6":1}}],["然后再在类属性上统一使用",{"2":{"274":1}}],["然后再在执行时指定仅执行哪些分组的操作",{"2":{"252":1}}],["然后再递归子节点重复该填充过程",{"2":{"132":1}}],["然后再对提取出来的嵌套对象执行装配操作",{"2":{"132":1}}],["然后再执行",{"2":{"131":1}}],["然后再统一进行装配",{"2":{"100":1}}],["然后再进行填充操作",{"2":{"100":1}}],["然后注册",{"2":{"52":1}}],["然后将相关的属性映射到",{"2":{"260":1}}],["然后将枚举的",{"2":{"256":1}}],["然后将该集合赋值给目标对象中的",{"2":{"140":1}}],["然后将其注册为容器",{"2":{"59":1}}],["然后将其作为",{"2":{"55":1}}],["然后将",{"2":{"44":1,"140":1}}],["然后赋值给",{"2":{"41":1}}],["然后",{"2":{"27":1,"121":1,"141":1,"161":1,"207":1,"256":1}}],["然后通过调用该接口的代理对象的方法对任意类型的对象进行填充",{"2":{"25":1}}],["然后直接使用组合注解",{"2":{"17":1}}],["然后让它继承",{"2":{"16":1}}],["然后完成基于",{"2":{"6":4}}],["然后完成全部基于",{"2":{"6":1}}],["针对诊断者而言",{"2":{"194":1}}],["针对方法容器的扫描和注册是自动完成的",{"2":{"76":1}}],["针对多个键字段映射",{"2":{"44":1}}],["使基于",{"2":{"225":1}}],["使专家花在辨识你的问题和回答所需要付出的时间减到最少",{"2":{"198":1}}],["使问题容易回复",{"0":{"188":1}}],["使其具备缓存功能",{"2":{"75":1}}],["使用操作门面手动执行填充",{"2":{"313":1,"321":1}}],["使用了类型转换取组件",{"2":{"300":1}}],["使用了缓存组件",{"2":{"300":1}}],["使用命名空间相同的容器对旧容器进行覆盖",{"2":{"296":1}}],["使用方式",{"2":{"286":1}}],["使用方法容器",{"0":{"278":1}}],["使用解析器解析",{"2":{"283":1}}],["使用对象容器",{"0":{"277":1}}],["使用组合式风格配置",{"0":{"274":1}}],["使用组合注解简化配置",{"0":{"275":1}}],["使用组合注解",{"2":{"17":1}}],["使用选项式风格配置",{"0":{"273":1}}],["使用群组者寻求实际的指导吧",{"2":{"210":1}}],["使用纯文字而不是",{"2":{"189":1}}],["使用易于读取且标准的文件格式发送问题",{"0":{"189":1}}],["使用有意义且描述明确的标题",{"0":{"187":1}}],["使用项目邮件列表",{"0":{"186":1}}],["使用我们的版本",{"2":{"185":1}}],["使用多对多参数处理器",{"2":{"93":1}}],["使用多对多装配处理器",{"0":{"44":1}}],["使用该容器后",{"2":{"58":1}}],["使用注解指定的名称替代属性名",{"2":{"49":1}}],["使用参数对象作为",{"0":{"42":1}}],["使用一对多装配处理器",{"0":{"41":1}}],["使用情况",{"2":{"37":1}}],["使用内置管理器",{"0":{"14":1}}],["使用配置文件配置",{"0":{"10":1}}],["使用",{"0":{"8":1,"34":1,"66":1,"109":1,"161":1,"169":1,"257":1,"261":1},"1":{"9":1,"10":1,"11":1,"110":1,"111":1,"112":1,"113":1,"114":1,"170":1,"171":1,"172":1,"173":1},"2":{"11":1,"48":1,"58":1,"59":1,"86":2,"124":1,"140":1,"152":1,"161":1,"175":1,"178":1,"189":1,"235":2,"236":2,"271":2,"286":1,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1}}],["使用异步执行器",{"2":{"5":1}}],["使用执行器",{"0":{"2":1},"1":{"3":1,"4":1,"5":1},"2":{"286":1}}],["原理",{"0":{"331":1}}],["原始代码",{"0":{"270":1},"1":{"271":1,"272":1}}],["原始的方法返回值",{"2":{"73":1}}],["原来是网线出了问题",{"2":{"204":1}}],["原本的实体类",{"2":{"161":1}}],["原本你有如下配置",{"2":{"17":1,"145":1}}],["按发生时间先后列出问题症状",{"0":{"195":1}}],["按部门",{"2":{"175":1}}],["按顺序执行",{"0":{"127":1},"1":{"128":1,"129":1}}],["按它们所属类在树中的高度排序",{"2":{"125":1}}],["按属性的声明顺序排序",{"2":{"125":1}}],["按对应注解的声明顺序进行排序",{"2":{"125":1}}],["按操作组执行",{"0":{"124":1}}],["按",{"2":{"73":2}}],["场景示例",{"2":{"336":2}}],["场景用例",{"2":{"306":1}}],["场景",{"2":{"73":1}}],["入参集合为空时",{"2":{"72":1}}],["入参的",{"2":{"31":1}}],["必填",{"2":{"72":1,"79":1}}],["散落在代码里",{"2":{"71":1}}],["常见的各种",{"2":{"71":1}}],["常量",{"2":{"287":1}}],["常量和枚举",{"2":{"68":1}}],["常量类路径",{"2":{"223":1}}],["常量类",{"2":{"51":1}}],["常量类的全限定名一般在常量类与实体类不在同一包中时使用",{"2":{"51":1}}],["常量类的",{"2":{"49":1}}],["常量容器提供独立的builder",{"2":{"221":1,"222":1}}],["常量容器配置",{"2":{"51":1}}],["常量容器指基于常量类中的静态成员变量创建的数据源容器",{"2":{"47":1}}],["常量容器",{"0":{"47":1},"1":{"48":1,"49":1,"50":1,"51":1}}],["子类中的操作优先于父类",{"2":{"125":1}}],["子类",{"2":{"71":1}}],["父类",{"2":{"71":1}}],["处理比示例更复杂的各种情况",{"2":{"335":1}}],["处理无礼的回应",{"0":{"208":1}}],["处理监听器注解",{"2":{"70":1}}],["处理器",{"2":{"23":1}}],["工厂类基于任何类型的数据源创建容器",{"2":{"282":1}}],["工厂方法",{"2":{"69":1}}],["工具类",{"2":{"47":1,"147":1}}],["固定返回某个集合",{"2":{"68":1}}],["表明需要自动填充其方法返回值",{"2":{"314":1,"322":1}}],["表明该数据源的命名空间为",{"2":{"261":1}}],["表明你愿意在找答案的过程中做点什么是一个非常好的开端",{"2":{"181":1}}],["表现出你为简化问题付出了努力",{"2":{"191":1}}],["表示整个数据源对象映射到目标对象的",{"2":{"139":1}}],["表示直接将",{"2":{"138":1}}],["表示直接将整个数据源对象映射到目标对象的属性上",{"2":{"137":1}}],["表示一组字段间的映射关系",{"2":{"133":1}}],["表示如何对结果集按",{"2":{"72":1}}],["表示这个方法容器也需要应用缓存",{"2":{"9":1}}],["表示这个数据源容器需要应用缓存",{"2":{"9":1}}],["表达式最终返回值可以是布尔值",{"2":{"152":1}}],["表达式的语法取决于你的表达式引擎",{"2":{"116":1}}],["表达式",{"2":{"99":1,"152":2}}],["表达式支持",{"0":{"99":1}}],["表达式定义为容器",{"2":{"68":1}}],["表达式作为数据源的数据源容器",{"2":{"68":1}}],["前的原始代码",{"2":{"270":1}}],["前提是真正有内容",{"2":{"189":1}}],["前提是保证插件确实注册到该",{"2":{"161":1}}],["前者的缺点就是后者的优点",{"2":{"287":1}}],["前者的增强版本",{"2":{"21":1}}],["前者通常通过操作门面",{"2":{"146":1}}],["前五个字符",{"2":{"67":1}}],["跳过前四位国家编码",{"2":{"67":1}}],["手机号可能前面会带有国家代码",{"2":{"67":1}}],["手动执行填充",{"2":{"315":1}}],["手动",{"2":{"286":2}}],["手动触发填充",{"2":{"286":1}}],["手动排除",{"0":{"254":1}}],["手动创建并注册",{"2":{"178":1}}],["手动指定绑定到",{"2":{"88":1}}],["手动注册或懒加载的方式向",{"2":{"165":1}}],["手动注册一般只在你的目标类未被",{"2":{"76":1}}],["手动注册",{"0":{"76":1,"83":1,"168":1}}],["手动填充分为两种方式",{"2":{"147":1}}],["手动填充",{"0":{"128":1,"147":1,"313":1,"321":1},"2":{"33":1,"124":1,"286":1}}],["手动的创建具备缓存功能的数据源容器",{"2":{"11":1}}],["手动配置",{"0":{"11":1}}],["换个像",{"2":{"210":1}}],["换个好点的",{"2":{"188":1}}],["换而言之",{"2":{"63":1}}],["换句话说",{"2":{"37":1}}],["枚举填充",{"2":{"257":1}}],["枚举的",{"2":{"256":1}}],["枚举类",{"2":{"61":1,"257":1,"258":1}}],["枚举类的全限定名一般在枚举类与实体类不在同一包中时使用",{"2":{"61":1}}],["枚举类的属性值",{"2":{"59":2}}],["枚举类的",{"2":{"59":1}}],["枚举",{"2":{"59":1,"72":2,"256":1,"273":1,"287":1,"332":1,"333":1}}],["枚举对象本身",{"2":{"59":1}}],["枚举对象的",{"2":{"59":1}}],["枚举容器和方法容器支持设置重复的",{"2":{"224":1}}],["枚举容器配置",{"2":{"61":1}}],["枚举容器指以枚举作为数据源的数据源容器",{"2":{"57":1}}],["枚举容器",{"0":{"57":1},"1":{"58":1,"59":1,"60":1,"61":1}}],["以供用户按需选择",{"2":{"285":1}}],["以避免他们再浪费时间",{"2":{"211":1}}],["以下是一些常见问题与对应的解决方案",{"2":{"288":1}}],["以下是几个经典蠢问题",{"2":{"210":1}}],["以下是最常用的几个站",{"2":{"184":1}}],["以上述方式",{"2":{"209":1}}],["以上几点中",{"2":{"190":1}}],["以至于不可能使其他人产生兴趣",{"2":{"197":1}}],["以及黑客没回答时心中所想的",{"2":{"210":1}}],["以及机器和软件的反应",{"2":{"195":1}}],["以及相关的信息",{"2":{"190":1}}],["以及我应该检查什么地方比请把我需要的确切的过程贴出来更容易得到答复",{"2":{"181":1}}],["以确保发送的是纯文本文件同时没有一些奇怪的字符",{"2":{"189":1}}],["以免在你的邮件中到处散布垃圾字符",{"2":{"189":1}}],["以请将你的回复发送到",{"2":{"188":1}}],["以表明你是在问一个问题",{"2":{"187":1}}],["以使其更清楚",{"2":{"186":1}}],["以保护他们沟通的渠道不被无关的东西淹没",{"2":{"183":1}}],["以保证只针对特定对象的特定属性进行填充",{"2":{"152":1}}],["以找到答案",{"2":{"181":1}}],["以适应特定的需求",{"2":{"150":1}}],["以逗号分隔的字符串",{"2":{"140":1,"145":1}}],["以选项式风格配置使用",{"2":{"57":1}}],["以便让开发者更加集中于核心业务逻辑的开发",{"2":{"334":1}}],["以便让他们看到的是与你看到的原始证据尽可能一致的东西",{"2":{"194":1}}],["以便为其指定讨论串",{"2":{"187":1}}],["以便快速地实现查询关联数据并用于填充",{"2":{"163":1}}],["以便快速的为数据源容器配置缓存",{"2":{"9":1}}],["以便动态生成一个参数对象作为",{"2":{"92":1}}],["以便批量的将扫描到的枚举类注册为枚举容器",{"2":{"60":1}}],["以便批量的将扫描到的常量类注册为常量容器",{"2":{"50":1}}],["以便在程序中使用",{"2":{"56":1}}],["交给",{"2":{"56":1,"82":1,"309":1}}],["下文",{"2":{"307":1,"316":1,"324":1}}],["下的管理字典数据",{"2":{"277":2}}],["下的实现类的创建方式改为通过",{"2":{"229":1}}],["下述条件等同于",{"2":{"112":1,"113":1}}],["下面是它们的一些使用场景",{"2":{"73":1}}],["下面是一个示例",{"2":{"56":1}}],["下图展示了解析器的工作流程",{"2":{"22":1}}],["连接符拼接两者",{"2":{"55":1}}],["那人多半也是对的",{"2":{"206":1}}],["那就相信我们",{"2":{"204":1}}],["那就向别处发送",{"2":{"183":1}}],["那是问题的缩影",{"2":{"199":1}}],["那些文本中四处散布的=20符号既难看也分散注意力",{"2":{"189":1}}],["那些人多半会将你的提问视为干扰他们开发的噪音",{"2":{"186":1}}],["那些被存档的内容将被搜索引擎索引",{"2":{"186":1}}],["那这也不能成为骚扰个别开发者的理由",{"2":{"186":1}}],["那",{"2":{"92":1}}],["那样提取包装对象中的实际数据",{"2":{"233":1}}],["那样也许会毁了提问者的设置",{"2":{"213":1}}],["那样",{"2":{"55":1,"227":1}}],["那么推荐你先阅读",{"2":{"336":1}}],["那么不妨直接绕过",{"2":{"277":1}}],["那么我们可以通过指定填充顺序来实现级联填充的效果",{"2":{"264":1}}],["那么我们推荐参考",{"2":{"95":1}}],["那么用户名需要根据性别拼接上",{"2":{"250":1}}],["那么用户名需要拼接上",{"2":{"250":2}}],["那么这个神奇的提问句会是向我发电邮",{"2":{"197":1}}],["那么这个条件注解仅允许对同一个属性上声明的操作生效",{"2":{"114":1}}],["那么就向",{"2":{"186":1}}],["那么类型推断时将以提取出的字段值为准",{"2":{"151":1}}],["那么该装配操作将生效",{"2":{"123":1}}],["那么总共需要三步",{"2":{"121":1}}],["那么比起交给",{"2":{"118":1}}],["那么可以配置",{"2":{"249":1}}],["那么可以再对",{"2":{"179":1}}],["那么可以参考",{"2":{"155":1}}],["那么可以将",{"2":{"117":1}}],["那么可以选择性的放弃一些装饰器",{"2":{"36":1}}],["那么条件同时将应用到该元素上声明的所有操作",{"2":{"111":1}}],["那么最终的判断条件就是",{"2":{"117":1}}],["那么最终在调用方法前里面的",{"2":{"78":1}}],["那么最好在一个统一的常量类中管理方法容器的",{"2":{"71":1}}],["那么它们都将具备缓存功能",{"2":{"75":1}}],["那么子类",{"2":{"71":1}}],["那么根据注解的配置跳过",{"2":{"67":1}}],["那么你也可以配合容器提供者来节省一点功夫",{"2":{"279":1}}],["那么你也可以直接使用",{"2":{"178":1}}],["那么你发火对象的言语可能在黑客社区中看起来是正常的",{"2":{"208":1}}],["那么你最好确保每一个缓存对象都对应一个独一无二的前缀",{"2":{"180":1}}],["那么你需要在",{"2":{"129":1}}],["那么你就需要显式的在配置时指定操作的执行顺序",{"2":{"125":1}}],["那么你可以在",{"2":{"264":1}}],["那么你可以先将枚举的数据源配置分离到枚举上",{"2":{"258":1}}],["那么你可以基于它创建一个",{"2":{"178":1}}],["那么你可以直接在代码中指定过滤器",{"2":{"254":1}}],["那么你可以直接在使用操作门面的",{"2":{"128":1}}],["那么你可以直接让目标类实现",{"2":{"80":1}}],["那么你可以这么做",{"2":{"67":1}}],["那么你可以通过",{"2":{"51":1,"61":1}}],["那么你直接将其交给",{"2":{"54":1}}],["那么在",{"2":{"37":1}}],["那么需要两步",{"2":{"16":1}}],["那么当方法被适配为数据源容器后它们的缓存依然是生效的",{"2":{"9":1}}],["那么第一个任务就会被拆成两份",{"2":{"6":1}}],["那么",{"2":{"6":1,"335":1}}],["那么直接使用即可",{"2":{"1":1}}],["进入",{"2":{"289":4}}],["进一步了解",{"2":{"269":1,"306":1}}],["进一步了解该如何使用",{"2":{"52":1}}],["进行区分",{"2":{"310":1,"318":1,"327":1}}],["进行配置",{"2":{"309":1}}],["进行配置即可",{"2":{"92":1,"93":1}}],["进行处理的",{"2":{"284":1}}],["进行查找",{"2":{"276":1}}],["进行查询并缓存",{"2":{"7":1}}],["进行一对多映射",{"2":{"175":2}}],["进行分组填充",{"0":{"252":1}}],["进行分组",{"2":{"171":1}}],["进行手动注册",{"2":{"168":1}}],["进行手动填充",{"2":{"33":1,"254":1}}],["进行异步填充",{"2":{"162":1}}],["进行序列化的",{"2":{"156":1}}],["进行取反",{"2":{"117":1}}],["进行多对多批量装配时",{"2":{"93":1}}],["进行解析",{"2":{"70":1}}],["进行包装",{"2":{"11":1}}],["阅读后续内容",{"2":{"52":1}}],["x有趣",{"2":{"204":1}}],["x和问题",{"2":{"204":1}}],["x",{"2":{"187":4,"198":2,"199":1,"204":1,"210":11,"211":1,"213":2}}],["xml",{"2":{"157":1,"164":1,"177":1,"308":1,"309":1,"317":1,"325":1}}],["xx的方式访问内部对象的属性",{"2":{"151":1}}],["xx",{"2":{"88":3,"151":1,"241":3}}],["xxxmapper",{"2":{"167":4,"168":2}}],["xxxtemplate",{"2":{"147":1}}],["xxxbyids",{"2":{"71":1}}],["xxxxxxxx",{"2":{"67":1}}],["xxxcontainerprovider",{"2":{"54":1}}],["xxx",{"2":{"51":1,"61":1}}],["x26",{"2":{"55":2,"113":2,"152":2}}],["x3c",{"2":{"1":1,"3":2,"4":1,"5":2,"9":6,"11":3,"13":2,"14":2,"15":3,"16":8,"20":5,"24":8,"25":4,"27":1,"29":2,"30":2,"31":9,"33":2,"40":1,"41":1,"42":1,"43":1,"44":2,"45":1,"48":2,"52":2,"56":4,"58":2,"59":1,"67":1,"68":3,"69":3,"71":4,"73":11,"74":2,"75":2,"77":7,"80":1,"82":5,"90":1,"102":1,"103":1,"104":1,"105":1,"106":2,"107":1,"110":1,"118":1,"119":2,"121":1,"123":1,"124":3,"129":2,"131":6,"132":2,"139":1,"140":3,"145":4,"147":1,"149":1,"150":1,"151":15,"152":1,"153":1,"154":1,"155":3,"157":26,"164":18,"175":1,"177":18,"178":5,"179":5,"180":1,"250":2,"252":1,"257":2,"260":4,"261":4,"264":2,"265":13,"267":9,"268":6,"271":1,"272":11,"273":3,"274":5,"275":1,"277":16,"278":2,"279":4,"282":9,"285":2,"287":2,"308":47,"310":2,"313":1,"314":2,"315":4,"317":59,"318":2,"321":1,"322":2,"323":4,"325":18,"327":2,"329":1,"330":3,"333":4,"334":2}}],["空值判断",{"2":{"117":1}}],["空值引用策略",{"2":{"97":1,"144":1}}],["空值处理",{"0":{"78":1}}],["空",{"2":{"51":1,"61":1}}],["二级与三级部门的信息",{"2":{"264":1}}],["二级分类",{"2":{"24":3}}],["二是看观众有多少",{"2":{"183":1}}],["二选一必填",{"2":{"51":2,"61":2,"79":2}}],["无法处理被",{"2":{"229":1}}],["无法在编译期确定",{"2":{"106":1,"150":1}}],["无法在编译期确定要填充的对象类型",{"2":{"106":1,"150":1}}],["无法确定填充类型",{"2":{"106":1,"150":1}}],["无法获取",{"2":{"73":1}}],["无论多么刺耳",{"2":{"209":1}}],["无论你嵌套了多少层",{"2":{"105":1}}],["无论是在",{"2":{"83":1}}],["无论如何",{"2":{"29":1,"282":1,"283":1}}],["无需分组",{"2":{"73":1}}],["无",{"2":{"51":3,"61":3,"72":2,"79":4}}],["完整代码",{"0":{"315":1,"323":1,"330":1}}],["完善的测试用例",{"2":{"335":1}}],["完善文档场景示例",{"2":{"232":1}}],["完善了文档与代码注释",{"2":{"228":1}}],["完全可能如此",{"2":{"212":1}}],["完全无知",{"2":{"210":1}}],["完全一样",{"2":{"51":1,"61":1}}],["完成的行为",{"2":{"283":1}}],["完成的操作则会通过管道完成",{"2":{"179":1}}],["完成的",{"2":{"174":1}}],["完成",{"2":{"147":1,"179":1}}],["完成触发",{"2":{"0":1}}],["其他内容都需要通过关联查询获取",{"2":{"271":1}}],["其他配置完全不变",{"2":{"262":1}}],["其他部分与之前完全一样",{"2":{"258":1}}],["其他属性",{"2":{"256":1,"260":1,"261":1,"262":1}}],["其实并不是这样",{"2":{"213":1}}],["其实也支持在方法使用",{"2":{"85":1}}],["其它读者要么不理睬",{"2":{"209":1}}],["其次",{"2":{"201":1}}],["其",{"2":{"169":1,"256":1}}],["其配置效果与在枚举类似添加",{"2":{"61":1}}],["其配置效果与在常量类似添加",{"2":{"51":1}}],["其中有一个",{"2":{"123":1}}],["其中",{"2":{"10":1,"68":1,"92":1,"118":1,"126":1,"134":1,"219":1}}],["男",{"2":{"51":1,"61":1,"139":2,"256":1,"257":1,"258":1}}],["女士",{"2":{"250":1}}],["女",{"2":{"51":1,"61":1,"256":1,"257":1,"258":1}}],["包的名称",{"2":{"184":1}}],["包装类提取",{"0":{"77":1,"151":1}}],["包括阅读",{"2":{"183":1}}],["包括接口或抽象类中的抽象方法",{"2":{"71":1}}],["包括且不限于下述场景",{"2":{"335":1}}],["包括且不限于",{"2":{"37":1}}],["包含指定的类",{"2":{"50":1,"60":1}}],["排除",{"2":{"162":1}}],["排除指定的类",{"2":{"50":1,"60":1}}],["排除特定的接口",{"2":{"28":1}}],["布尔值",{"2":{"49":3}}],["可选的字段填充",{"2":{"335":1}}],["可选配置",{"0":{"162":1}}],["可选配置项",{"0":{"72":1}}],["可否指点一下哪有好一点说明",{"2":{"198":1}}],["可使下一个搜索类似问题的人能够关注这个讨论串",{"2":{"187":1}}],["可参见",{"2":{"131":1,"132":1}}],["可能同时有多种类型的数据需要填充",{"2":{"335":1}}],["可能更会有助于你阅读后面的内容",{"2":{"280":1}}],["可能会提到一些",{"2":{"280":1}}],["可能会有那么几次搞砸了",{"2":{"209":1}}],["可能不向下兼容",{"2":{"220":1}}],["可能正在睡觉",{"2":{"212":1}}],["可能需要手动向",{"2":{"161":1}}],["可能与你实际的",{"2":{"90":1}}],["可能是单个对象",{"2":{"52":1,"282":1}}],["可配置项",{"0":{"49":1,"59":1}}],["可以用于完成一切",{"2":{"333":1}}],["可以多线程填充吗",{"0":{"305":1}}],["可以",{"2":{"303":1}}],["可以支持同时根据多个",{"0":{"303":1}}],["可以先尝试在这里寻找解决方案",{"2":{"288":1}}],["可以是",{"2":{"262":1}}],["可以是无参方法",{"2":{"71":1}}],["可以代理它",{"2":{"257":1}}],["可以关闭它",{"2":{"240":1}}],["可以指定将目标对象的key值转为对应类型",{"2":{"225":1}}],["可以选择将容器注册到哪些提供者",{"2":{"223":1}}],["可以要求网页论坛发送给你",{"2":{"188":1}}],["可以试试前往",{"2":{"186":1}}],["可以理解的是",{"2":{"183":1}}],["可以设置应用条件的表达式",{"2":{"152":1}}],["可以直接在value中同时指定",{"2":{"135":1}}],["可以直接参见",{"2":{"91":1}}],["可以判断数组",{"2":{"118":1}}],["可以不指定",{"2":{"106":1,"150":1}}],["可以作为方法容器的方法需要满足下述条件",{"2":{"71":1}}],["可以通过",{"2":{"248":1}}],["可以通过对象内省自动将一个字段的值设置到另一个字段上",{"2":{"63":1}}],["可以通过键值",{"2":{"58":1}}],["可以使用",{"2":{"48":1}}],["可以根据客户",{"2":{"40":1}}],["可以查出一个集合或数组",{"2":{"40":1}}],["可以在依赖中排除",{"2":{"300":1}}],["可以在一个属性同时配置src和ref",{"2":{"217":1}}],["可以在类上添加注解来声明装配操作",{"2":{"88":1}}],["可以在",{"2":{"36":1,"289":1}}],["可以尝试使用",{"2":{"17":1}}],["建立对框架的初步认知",{"2":{"336":1}}],["建议你在张贴前最好先暗地里观察几天以了解那里的行事方式",{"2":{"186":1}}],["建议用户始终使用实体类中的属性名作为查询字段",{"2":{"174":1}}],["建造者具备更多的可配置项",{"2":{"48":1,"58":1}}],["建字段是数组类型",{"2":{"43":1}}],["建字段是集合类型",{"2":{"43":1}}],["相同的数据源在不同的场景下填充的字段可能不同",{"2":{"335":1}}],["相对上一个版本",{"2":{"223":1}}],["相对最近的一个正式版本",{"2":{"222":1}}],["相对集合",{"2":{"68":1}}],["相反地",{"2":{"209":1}}],["相反",{"2":{"208":1}}],["相信我们",{"2":{"181":1}}],["相关组件将会注册到",{"2":{"309":1,"317":1}}],["相关依赖",{"2":{"308":1,"317":1}}],["相关内容",{"2":{"283":1}}],["相关资源",{"0":{"214":1}}],["相关的问题",{"2":{"210":1}}],["相关的回调方法会在这个容器的特定生命周期节点被调用",{"2":{"20":1}}],["相关部分的标准编译记录如下",{"2":{"194":1}}],["相关配置如下",{"2":{"167":1}}],["相比起普通的填充操作",{"2":{"161":1}}],["相比起注解式配置",{"2":{"113":1}}],["相比起",{"2":{"48":1,"58":1}}],["翻转键值对",{"2":{"48":1}}],["9",{"0":{"79":1,"236":1},"2":{"46":1,"78":1,"97":1,"132":1,"190":1,"317":1}}],["考虑到不少用户反映在这种场景下会有拼接字符串后再填充的需求",{"2":{"46":1}}],["拼接字符串",{"0":{"46":1}}],["都变成了null",{"2":{"235":1,"236":1}}],["都没有结果",{"2":{"183":1}}],["都默认注册了",{"2":{"116":1}}],["都会依次调用一遍注解处理器",{"2":{"284":1}}],["都会默认拼接上自己的命名空间作为",{"2":{"179":1}}],["都会被注册",{"2":{"167":1}}],["都会全部取出并摊平",{"2":{"105":1}}],["都会根据",{"2":{"27":1}}],["都强制覆写",{"2":{"97":1,"144":1}}],["都是非常典型的方法",{"2":{"71":1}}],["都转为",{"2":{"45":1,"93":1}}],["|",{"2":{"45":2}}],["||",{"2":{"21":1,"113":2,"117":1,"254":1}}],["但早期设计的不足导致扩展困难",{"2":{"332":1}}],["但能给出文档的链接",{"2":{"213":1}}],["但结果出人意料",{"2":{"211":1}}],["但没得到结果",{"2":{"213":1}}],["但没什么作用",{"2":{"211":1}}],["但没有意识到这条路本身就有问题",{"2":{"196":1}}],["但里面没有提到跟",{"2":{"211":1}}],["但不要依赖这种关照",{"2":{"206":1}}],["但大可不必将解决问题的过程复述一遍",{"2":{"204":1}}],["但用自我感觉良好的慈善行为或政治原因发肯定不行",{"2":{"202":1}}],["但毫无意义的回答来表示他们的蔑视",{"2":{"201":1}}],["但一些有经验的用户也许仍会给你一些提示",{"2":{"200":1}}],["但一样别那么低声下气",{"2":{"193":1}}],["但仍然无法解决",{"2":{"200":1}}],["但别要求得到完整的解决方案",{"2":{"200":1}}],["但永远先尝试这样做是一个好习惯",{"2":{"199":1}}],["但实际出现的是",{"2":{"199":1}}],["但这技巧通常和简化问题有所区别",{"2":{"198":1}}],["但你必须信守诺言",{"2":{"197":1}}],["但却无法从某绘图程序的颜色选择器取得十六进制的",{"2":{"196":1}}],["但",{"2":{"193":1}}],["但他们选择另一个极端",{"2":{"193":1}}],["但花哨的彩色文本倾向于使人认为你是个无能之辈",{"2":{"189":1}}],["但很多邮件程序并不支持这种编码",{"2":{"189":1}}],["但未包含该外键字段时",{"2":{"173":1}}],["但如果有必要",{"2":{"45":1}}],["但是用起来相对麻烦",{"2":{"286":1}}],["但是依赖",{"2":{"286":2}}],["但是如果在开始后面的内容前提前了解这些概念",{"2":{"280":1}}],["但是当",{"2":{"249":1}}],["但是引用时却无法引用",{"2":{"233":1}}],["但是没找到有用的结果",{"2":{"211":1}}],["但是关机一晚上就又能工作",{"2":{"194":1}}],["但是在头",{"2":{"194":1}}],["但是在有些情况下",{"2":{"80":1}}],["但是",{"2":{"189":1}}],["但是序列化后",{"2":{"161":1}}],["但是不指定任何的",{"2":{"80":1}}],["但是不具备包括虚拟字段在内的一些额外功能",{"2":{"36":1}}],["但是不支持包括虚拟字段在内的一些额外功能",{"2":{"36":1}}],["但是它们确实不是一个类",{"2":{"25":1}}],["格式吗",{"2":{"210":2}}],["格式的配置文件",{"2":{"309":1}}],["格式的字符串",{"2":{"145":1}}],["格式的集合改为",{"2":{"145":1}}],["格式的链式操作符访问嵌套对象的属性",{"2":{"88":1}}],["格式的手机号",{"2":{"67":1}}],["格式",{"2":{"44":2,"67":1,"139":1}}],["需要递归的填充嵌套的数据",{"2":{"335":1}}],["需要将",{"2":{"283":1}}],["需要提供一个用于直接添加",{"2":{"236":1}}],["需要依赖",{"2":{"178":1}}],["需要使用",{"2":{"160":1}}],["需要使用特定的装配操作处理器",{"2":{"44":1}}],["需要格外注意",{"2":{"80":1}}],["需要注意的是",{"2":{"79":1,"127":1,"174":1}}],["需要适配为动态容器",{"2":{"31":1}}],["键前缀",{"0":{"179":1}}],["键值映射",{"0":{"64":1},"1":{"65":1,"66":1,"67":1},"2":{"287":1}}],["键字段可以是集合或数组吗",{"0":{"294":1}}],["键字段可以是按分隔符拼接的字符串吗",{"0":{"293":1}}],["键字段为数组",{"2":{"43":1}}],["键字段为集合",{"2":{"43":1}}],["键字段为按分隔符拼接的字符串",{"2":{"43":1}}],["键字段是按特定分隔符拼接的字符串",{"2":{"43":1}}],["键的解析策略",{"0":{"91":1},"1":{"92":1,"93":1,"94":1,"95":1},"2":{"42":1,"45":1,"74":1}}],["比方说",{"2":{"207":1}}],["比较有可能让你得到回应",{"2":{"199":1}}],["比较常见的情况有三种",{"2":{"43":1}}],["比要求别人替你改正要明智得多",{"2":{"198":1}}],["比如身份证号",{"2":{"335":1}}],["比如同样是用户查询接口",{"2":{"335":1}}],["比如有的通过",{"2":{"335":1}}],["比如各种详情页中",{"2":{"335":1}}],["比如这样",{"2":{"285":1}}],["比如我们现在在",{"2":{"251":1}}],["比如先用",{"2":{"181":1}}],["比如通用响应体包装了分页对象",{"2":{"151":1}}],["比如通过属性得到的注解顺序可能与代码中不一致",{"2":{"125":1}}],["比如把字符串集合转为你所需的字符串",{"2":{"145":1}}],["比如一对多或者多对多装配",{"2":{"140":1}}],["比如查询方法或本地缓存",{"2":{"118":1}}],["比如当入参为",{"2":{"78":1}}],["比如字段脱敏",{"2":{"64":1}}],["比如上述配置可以改写为",{"2":{"55":1}}],["比如上文就显式的指定",{"2":{"27":1}}],["比如在上文",{"2":{"161":1}}],["比如在上图表示的示例中",{"2":{"151":1}}],["比如在类上添加",{"2":{"56":1}}],["比如在",{"2":{"53":1}}],["比如对",{"2":{"36":1}}],["比如基于",{"2":{"17":1}}],["比如",{"2":{"6":2,"9":1,"11":1,"17":1,"20":1,"22":1,"25":2,"27":1,"30":1,"31":1,"33":1,"39":1,"40":1,"51":1,"55":1,"61":1,"67":1,"71":1,"77":1,"79":1,"80":1,"87":1,"88":1,"90":1,"97":1,"103":1,"121":1,"122":1,"123":2,"134":1,"135":1,"137":1,"138":1,"139":2,"141":1,"144":1,"145":1,"151":1,"155":1,"161":1,"162":1,"179":2,"180":1,"187":1,"250":1,"254":1,"267":1,"268":1,"279":1,"280":1,"282":2,"309":1,"333":1}}],["多用请和谢谢您的关注",{"2":{"203":1}}],["多不等于好",{"2":{"195":1}}],["多半会一边在心里想着蠢问题",{"2":{"181":1}}],["多级包装",{"2":{"151":1}}],["多个键",{"2":{"43":1}}],["多对多映射支持",{"2":{"216":1}}],["多对多",{"0":{"43":1},"1":{"44":1,"45":1,"46":1},"2":{"140":1,"273":1,"292":1,"293":1,"294":1}}],["多对多装配时",{"2":{"236":1}}],["多对多装配操作处理器",{"2":{"38":1}}],["多对多装配",{"2":{"38":1}}],["及更早的版本中",{"2":{"304":1}}],["及更高版本",{"2":{"42":1,"86":1,"176":1}}],["及其子类不生效",{"2":{"119":1}}],["及其子类时生效",{"2":{"119":1}}],["及其包装类",{"2":{"73":1}}],["及以上版本新增了一个策略",{"2":{"46":1}}],["及以上版本无法使用",{"2":{"36":1}}],["及以上版本",{"2":{"3":1,"9":1,"50":2,"51":1,"57":1,"60":2,"61":1,"64":1,"74":1,"75":1,"77":1,"79":2,"90":1,"91":1,"96":1,"97":1,"108":1,"132":1,"133":1,"134":1,"135":1,"137":1,"138":1,"143":1,"155":1,"156":1}}],["接下来",{"2":{"306":1}}],["接下来我们需要根据情况对他们进行排除",{"2":{"251":1}}],["接下来再按时间顺序详述会有所帮助",{"2":{"195":1}}],["接受的",{"2":{"161":1}}],["接受的参数有可能是一个参数对象",{"2":{"42":1}}],["接受参数对象",{"0":{"74":1}}],["接受key值",{"2":{"68":1}}],["接着再向文件维护者发一份补丁",{"2":{"213":1}}],["接着在",{"2":{"92":1}}],["接着",{"2":{"66":1,"145":1,"261":1,"311":1,"319":1,"328":1}}],["接口获取",{"2":{"335":1}}],["接口中的第",{"2":{"333":1}}],["接口中的常量",{"2":{"97":1}}],["接口即可",{"2":{"302":1}}],["接口支持基于",{"2":{"227":1}}],["接口的",{"2":{"169":1}}],["接口的查询方法作为数据源的装配操作",{"2":{"169":1}}],["接口的类上添加注解",{"2":{"9":1}}],["接口来替换默认的类型解析器",{"2":{"150":1}}],["接口来自定义容器",{"2":{"56":1}}],["接口时才允许进行填充",{"2":{"121":1}}],["接口或",{"2":{"113":1}}],["接口创建自定义策略",{"2":{"98":1,"145":1}}],["接口也可以指定用于执行操作的执行器和配置解析器",{"2":{"30":1}}],["接口定义你自己的注解处理器",{"2":{"24":1}}],["接口后",{"2":{"20":1}}],["接口",{"2":{"16":1,"20":1,"25":1,"37":1,"54":1,"56":1,"65":1,"80":1,"95":1,"113":1,"121":1,"165":1,"220":1,"222":1,"225":1,"250":1,"257":1,"260":1,"333":1}}],["批量查询出来的",{"2":{"170":1}}],["批量映射",{"0":{"140":1}}],["批量地扫描并注册枚举",{"2":{"60":1}}],["批量地扫描并注册常量类",{"2":{"50":1}}],["批量扫描",{"0":{"50":1,"60":1}}],["批量提取数据源对象的属性",{"2":{"41":1}}],["批量大小",{"0":{"6":1}}],["分钟",{"2":{"194":1}}],["分钟内从没发生过相同的问题",{"2":{"194":1}}],["分钟以后就频频产生",{"2":{"194":1}}],["分割后的值默认保持为",{"2":{"140":1}}],["分别",{"2":{"134":1}}],["分别填充方法参数",{"0":{"32":1},"1":{"33":1,"34":1}}],["分组结果",{"2":{"73":1}}],["分组",{"2":{"71":2,"72":1,"73":1,"75":1,"261":1,"262":1,"265":3,"272":1}}],["分组的数据集",{"2":{"279":1}}],["分组的操作",{"2":{"162":1}}],["分组的",{"2":{"40":1,"72":1}}],["值从容器中获取对应的数据源",{"2":{"311":1,"319":1,"328":1}}],["值能够正确的从数据源获取到数据",{"2":{"289":1}}],["值被正确地获取",{"2":{"289":1}}],["值列表返回非空集合",{"2":{"289":1}}],["值即为",{"2":{"283":1}}],["值获得相应的数据源对象",{"2":{"289":1}}],["值获得相应的数据",{"2":{"282":1}}],["值分组的数据对象",{"2":{"282":1}}],["值集合",{"2":{"282":1}}],["值解析器",{"2":{"278":1}}],["值都是无效值",{"2":{"249":1}}],["值都为",{"2":{"90":1}}],["值的操作分离为独立的键值提取器",{"2":{"232":1}}],["值的类型",{"2":{"161":1}}],["值得去回答他",{"2":{"211":1}}],["值转为字符串类型",{"2":{"161":1}}],["值越小",{"2":{"126":1}}],["值拿到",{"2":{"84":1,"283":1,"333":1}}],["值传入容器",{"2":{"80":1}}],["值查询对应的数据源",{"2":{"80":1}}],["值会被过滤",{"2":{"78":1}}],["值会对应多个数据源对象",{"2":{"38":1}}],["值与结果按顺序合并",{"2":{"73":1}}],["值一对多分组",{"2":{"73":1}}],["值一对一分组",{"2":{"73":1}}],["值为空的操作",{"2":{"118":1}}],["值为",{"0":{"249":1},"2":{"58":1,"249":3}}],["值",{"0":{"42":1},"2":{"59":2,"72":2,"73":1,"80":3,"86":1,"92":2,"94":1,"196":2,"221":1,"222":1,"224":1}}],["值只对应一个数据源对象",{"2":{"39":1}}],["执行填充",{"2":{"323":1,"329":1,"330":1}}],["执行填充操作时",{"2":{"153":1}}],["执行填充操作",{"2":{"124":3}}],["执行结果为",{"2":{"257":1}}],["执行操作",{"2":{"39":1}}],["执行器将根据你的配置为你完成树的构建",{"2":{"132":1}}],["执行器会将",{"2":{"6":1}}],["执行器",{"2":{"0":1,"129":1,"232":1,"285":1}}],["本示例将指导你如何处理当需要通过多个",{"2":{"276":1}}],["本示例将指导你如何在进行自动填充时",{"2":{"266":1}}],["本示例将指导你如何在执行时选择性的排除某一些操作",{"2":{"251":1}}],["本示例将指导你如何指定填充的顺序",{"2":{"263":1}}],["本示例将指导你如何配置使用方法作为数据源",{"2":{"259":1}}],["本示例将指导你如何配置填充后的附加操作",{"2":{"250":1}}],["本示例将指导你如何使用枚举作为数据源",{"2":{"255":1}}],["本地的用户群组",{"2":{"185":1}}],["本地缓存管理器",{"2":{"12":1}}],["本地缓存",{"2":{"12":1}}],["本身也设置一个全局前缀",{"2":{"179":1}}],["本身就是一个",{"2":{"53":1}}],["本身就是一个数组或者集合的情况",{"2":{"38":1}}],["参考",{"2":{"287":1}}],["参考文档中的",{"2":{"37":1}}],["参阅",{"2":{"214":1}}],["参数名",{"2":{"152":1}}],["参数对象作为",{"2":{"278":1}}],["参数对象",{"2":{"92":1,"278":1}}],["参数类型",{"2":{"71":1}}],["参数类型为",{"2":{"31":2}}],["参见上文操作执行器一节",{"2":{"286":1}}],["参见枚举容器一节",{"2":{"244":1}}],["参见常量容器一节",{"2":{"243":1}}],["参见",{"2":{"37":1,"116":1,"117":1,"118":1,"119":1,"120":1,"247":1,"277":1,"278":1,"291":1,"297":1}}],["作者会尽快响应",{"2":{"216":1}}],["作用",{"2":{"49":1,"51":1,"59":1,"61":1,"72":1,"79":1}}],["作用有限",{"2":{"37":1}}],["作为一个普通的",{"2":{"309":1}}],["作为不同的选项",{"2":{"258":1}}],["作为文档构建框架",{"2":{"232":1}}],["作为提供帮助者可以得到一些奖励",{"2":{"197":1}}],["作为查询字段",{"2":{"174":1}}],["作为",{"2":{"161":1,"178":1}}],["作为常用实现类",{"2":{"54":1}}],["作为分隔符",{"2":{"45":1,"46":1,"93":1}}],["作为集合",{"2":{"41":1}}],["作为缓存管理器时",{"2":{"179":1}}],["作为缓存管理器",{"2":{"14":1}}],["说明你是个白痴",{"2":{"210":1}}],["说明了你是个卑鄙小人",{"2":{"210":1}}],["说明是什么解决了问题",{"2":{"204":1}}],["说明问题是怎样解决的",{"2":{"204":1}}],["说明",{"2":{"37":1,"73":1}}],["来说明怎样聪明的提问",{"2":{"211":1}}],["来结束你的问题多半会使你得不到回答",{"2":{"188":1}}],["来浪费这个机会",{"2":{"187":1}}],["来适应不同的情况",{"2":{"178":1}}],["来保证",{"2":{"127":1}}],["来完成",{"2":{"107":1}}],["来完成这种一对多",{"2":{"38":1}}],["来实现类似的效果",{"2":{"94":1}}],["来实现参数的自动转换",{"2":{"37":1}}],["来引用它们",{"2":{"14":1}}],["这类需求",{"2":{"333":1}}],["这类方法在调用时其他参数都是",{"2":{"71":1}}],["这就是现在的",{"2":{"332":1}}],["这就像大喊大叫一样会使人不快",{"2":{"183":1}}],["这直接导致了本指南的出现",{"2":{"211":1}}],["这关我屁事",{"2":{"210":1}}],["这不算是问题吧",{"2":{"210":1}}],["这也是有可能的",{"2":{"209":1}}],["这也意味着很有可能是你弄错了而不是软件本身有问题",{"2":{"192":1}}],["这点你不用操心",{"2":{"209":1}}],["这很正常",{"2":{"209":1}}],["这很常见",{"2":{"185":1}}],["这既可能是真也可能是假的",{"2":{"208":1}}],["这既使人困扰",{"2":{"193":1}}],["这时最好不要把手放在键盘上以免冒险",{"2":{"208":1}}],["这一个重构版本",{"2":{"218":1}}],["这一个重构与增强版本",{"2":{"217":1}}],["这一点并没有比使用清晰",{"2":{"203":1}}],["这一小节",{"2":{"80":1,"113":1}}],["这风险很大",{"2":{"202":1}}],["这是一个新特性版本",{"2":{"229":1,"232":1,"233":1,"236":1}}],["这是一个功能迭代版本",{"2":{"227":1,"228":1}}],["这是一个",{"2":{"226":1,"230":1,"231":1,"234":1,"235":1}}],["这是一个正常迭代版本",{"2":{"223":1,"224":1,"225":1}}],["这是一个很糟的后续问题回应",{"2":{"207":1}}],["这是",{"2":{"216":1,"219":1,"220":1,"221":1,"222":1}}],["这是我编译过程的记录",{"2":{"211":1}}],["这是在你检验它们只是口水战",{"2":{"209":1}}],["这是非常有价值的资产",{"2":{"204":1}}],["这是你的问题",{"2":{"202":1}}],["这是当容器为空时的一种特殊处理",{"2":{"63":1}}],["这可以让他们更愿意与你合作",{"2":{"199":1}}],["这可以使你得到回答的机会增加",{"2":{"191":1}}],["这技巧对你获得有用的答案相当有帮助",{"2":{"198":1}}],["这并不是一种怀疑",{"2":{"194":1}}],["这并不是要求你简单的把成堆的出错代码或者资料完全转录到你的提问中",{"2":{"191":1}}],["这比低声下气更好地定位了你的位置",{"2":{"193":1}}],["这总比你惹恼别人然后欠别人一个道歉要好一点",{"2":{"192":1}}],["这尤其严重",{"2":{"192":1}}],["这同样适用在网页和文件",{"2":{"192":1}}],["这通常不是个好主意",{"2":{"189":1}}],["这使得回复部分内容非常困难",{"2":{"189":1}}],["这本身就是暧昧的做法",{"2":{"187":1}}],["这将被视为无意义的喧闹",{"2":{"212":1}}],["这将伤害到你获取信息或帮助的机会",{"2":{"208":1}}],["这将限制你的观众",{"2":{"187":1}}],["这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者",{"2":{"181":1}}],["这些数据可能直接缓存在本地",{"2":{"335":1}}],["这些需求与核心业务无关",{"2":{"332":1}}],["这些操作光靠",{"2":{"250":1}}],["这些渠道通常更适合初学者的需要",{"2":{"212":1}}],["这些来找麻烦的人在给他们自己找麻烦",{"2":{"209":1}}],["这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙",{"2":{"209":1}}],["这些都是失败者的态度",{"2":{"209":1}}],["这些都是开始提问的好地方",{"2":{"185":1}}],["这些答复意味着回答者认为",{"2":{"206":1}}],["这些问题得由你来搞定",{"2":{"200":1}}],["这些方法底层都依赖于类型转换器管理器",{"2":{"37":1}}],["这么做只会使它们沦为毫无意义的唠叨与无用的技术论坛",{"2":{"209":1}}],["这么做很棒",{"2":{"198":1}}],["这么做",{"2":{"181":1}}],["这条规则存在一条有限的例外",{"2":{"197":1}}],["这条",{"2":{"171":1,"172":1,"173":1}}],["这样一个动作",{"2":{"283":1}}],["这样问更是画蛇添足",{"2":{"201":1}}],["这样的链式操作符",{"2":{"241":1}}],["这样的回答",{"2":{"211":1}}],["这样的人对无节制的时间黑洞相当厌恶",{"2":{"198":1}}],["这样的格式",{"2":{"140":1}}],["这样黑客们在读你的记录时就知道该注意哪些内容了",{"2":{"195":1}}],["这样做的话",{"2":{"192":1}}],["这样做的用处至少有三点",{"2":{"191":1}}],["这样做的人永远看不到你发的消息",{"2":{"187":1}}],["这样让人反感的话",{"2":{"187":1}}],["这样可以让你感受一下那里的文化",{"2":{"183":1}}],["这样很可能直接就找到了能解决问题的文件或邮件列表线索",{"2":{"181":1}}],["这样",{"2":{"175":1}}],["这样其他的操作就不会受到这个条件影响",{"2":{"111":1}}],["这里我们可以基于一个",{"2":{"310":1,"318":1,"327":1}}],["这里我们以方法数据源容器为例",{"2":{"265":1}}],["这里我们以手机号脱敏为例",{"2":{"65":1}}],["这里我们选择直接基于",{"2":{"257":1,"261":1}}],["这里有句话可以提醒你",{"2":{"194":1}}],["这里需要强调一下",{"2":{"73":1}}],["这里的",{"2":{"67":1}}],["这里是手机号字段",{"2":{"66":1}}],["这里提供了一些可选的配置",{"2":{"49":1}}],["这个插件发展成了一个独立的内部框架",{"2":{"332":1}}],["这个插件功能逐渐丰富",{"2":{"332":1}}],["这个家伙",{"2":{"211":1}}],["这个傲慢自大的提问者",{"2":{"211":1}}],["这个问题已经",{"2":{"211":1}}],["这个过程和奖励都被中止",{"2":{"197":1}}],["这个注解会被配置解析器中的专门的注解解析器",{"2":{"169":1}}],["这个规则并不总是准确的",{"2":{"125":1}}],["这个装配操作在",{"2":{"123":1}}],["这个装配操作只在",{"2":{"123":1}}],["这个功能是通过类型解析器",{"2":{"106":1,"150":1}}],["这个功能通常用于同步冗余的别名字段",{"2":{"63":1}}],["这个将嵌套对象取出并展开的操作称为拆卸操作",{"2":{"100":1}}],["这个提供者接入",{"2":{"53":1}}],["这种行为实际上就是字段填充",{"2":{"333":1}}],["这种",{"2":{"283":1}}],["这种先配置数据源",{"2":{"262":1}}],["这种大众化的软件",{"2":{"212":1}}],["这种问法无非想得到",{"2":{"211":1}}],["这种问题说明提问者不但对",{"2":{"210":1}}],["这种说法通常都是对的",{"2":{"210":1}}],["这种事发生以后",{"2":{"209":1}}],["这种风格更注重解决问题",{"2":{"208":1}}],["这种良好的后继行动实际上比传统的礼节更为重要",{"2":{"204":1}}],["这种感觉对于那些你向他们求助的大师或者专家而言",{"2":{"204":1}}],["这种补充有助于让每位参与协助的人因问题的解决而从中得到满足感",{"2":{"204":1}}],["这种类型的补充也有助于他人在邮件列表",{"2":{"204":1}}],["这种情况应该怎样检查最好",{"2":{"194":1}}],["这种情况下",{"2":{"87":1,"100":1,"103":1}}],["这种编码对于张贴非",{"2":{"189":1}}],["这种方式可以帮助你了解如何自行解决这个问题",{"2":{"199":1}}],["这种方式称为自动填充",{"2":{"148":1}}],["这种方式强转",{"2":{"37":1}}],["这种配置一般用于将属性的字典",{"2":{"139":1}}],["这种配置适用于将字典值或枚举值映射回目标对象的字段上",{"2":{"138":1}}],["这种配置通常适用于对象的组装",{"2":{"137":1}}],["这种配置方式直接复用了",{"2":{"79":1}}],["这种字段映射遵循普通字段映射的语义",{"2":{"44":1}}],["这种做法等效于使用",{"2":{"33":1}}],["装配",{"2":{"123":2}}],["装配处理器",{"0":{"38":1},"1":{"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1},"2":{"38":1}}],["装配操作可以指定数据源容器的加载策略",{"2":{"220":1,"222":1}}],["装配操作中的容器支持懒加载",{"2":{"219":1}}],["装配操作处理器",{"2":{"91":1}}],["装配操作指一个",{"2":{"84":1}}],["装配操作",{"2":{"23":6,"283":2}}],["装饰器是",{"2":{"36":1}}],["装饰器",{"2":{"36":3,"220":1,"222":1}}],["理论上具备最高的性能",{"2":{"36":1}}],["×",{"2":{"36":2,"285":4}}],["较前者拥有更高的性能",{"2":{"36":1}}],["√",{"2":{"36":4,"285":2}}],["功能和概念的基础上进行彻底的重构",{"2":{"332":1}}],["功能",{"2":{"299":1}}],["功能强大",{"2":{"37":1}}],["功能最全的操作器",{"2":{"36":1}}],["功能同上",{"2":{"24":1}}],["最初",{"2":{"332":1}}],["最初的回复才能够",{"2":{"197":1}}],["最简单的粗暴的方法",{"2":{"277":1}}],["最理想的方式是向最初提问的话题回复此消息",{"2":{"204":1}}],["最有效描述程序问题的方法是提供最精简的",{"2":{"199":1}}],["最有可能给你有用答案的人通常也正是最忙的人",{"2":{"198":1}}],["最好忽略这种人",{"2":{"210":1}}],["最好不要理睬大多数的口水战",{"2":{"209":1}}],["最好再把这份指南剩下的内容多读几遍",{"2":{"202":1}}],["最好写得像是你做错了什么",{"2":{"192":1}}],["最好设置你的换行分割点小于",{"2":{"189":1}}],["最好通过一句话的问题描述来开始聊天",{"2":{"185":1}}],["最好先去该发行版的论坛或邮件列表中提问",{"2":{"185":1}}],["最好在搞清楚这之间差异之前什么也别问",{"2":{"183":1}}],["最典型的错误之一是在某种致力于跨平台可移植的语言",{"2":{"183":1}}],["最终",{"2":{"332":1}}],["最终返回一个按照参数对象分组的数据集",{"2":{"278":1}}],["最终执行的",{"2":{"174":1}}],["最终都需要将其注册到待使用的",{"2":{"158":1}}],["最终推断出来的类型会是",{"2":{"151":1}}],["最终的执行顺序要通过",{"2":{"127":1}}],["最后再根据情况继续阅读",{"2":{"336":1}}],["最后再将参数对象作为本次调用的",{"2":{"92":1}}],["最后返回以",{"2":{"277":1}}],["最后一招",{"2":{"200":1}}],["最后",{"2":{"175":1,"211":1,"261":1}}],["最后实际的调用参数为",{"2":{"78":1}}],["最通用",{"2":{"36":1}}],["最大线程数与核心线程数皆为",{"2":{"1":1}}],["介绍",{"2":{"36":1}}],["只执行装配操作",{"2":{"254":1}}],["只是一些重复的关联查询操作",{"2":{"332":1}}],["只是一些网络连线之类的",{"2":{"184":1}}],["只是别对问题是由",{"2":{"210":1}}],["只管这么干好了",{"2":{"208":1}}],["只贴几十行代码",{"2":{"199":1}}],["只让你而不是整个论坛知道答案",{"2":{"188":1}}],["只在",{"2":{"187":1}}],["只因你的第一次搜索没有找到答案",{"2":{"181":1}}],["只会填充集合中的首个元素",{"2":{"230":1,"232":1}}],["只会完成带有",{"2":{"153":1}}],["只会查询",{"2":{"7":1}}],["只能判断是否为",{"2":{"118":1}}],["只需要",{"2":{"71":1}}],["只需将自定义工厂类声明为",{"2":{"35":1}}],["用",{"0":{"334":1}}],["用来按照操作配置真正地完成填充操作",{"2":{"285":1}}],["用犀利的语言将其驳得体无完肤都是可以接受的",{"2":{"208":1}}],["用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址",{"2":{"206":1}}],["用这种标题会被条件反射式地忽略",{"2":{"187":1}}],["用它来检查发送文件夹中的邮件",{"2":{"189":1}}],["用它们来找到与你遭遇到困难的软硬件问题最相关的网站",{"2":{"183":1}}],["用标签",{"2":{"184":1}}],["用法类似",{"2":{"122":1}}],["用法与",{"2":{"99":1}}],["用户仅需在自己的项目通过下述任意方式将其纳入",{"2":{"309":1}}],["用户需要自行创建后再将其注册到全局配置中",{"2":{"295":1}}],["用户需要确保目标容器能够接受",{"2":{"140":1}}],["用户",{"2":{"186":3}}],["用户也可以通过配置自定义是否关闭该功能",{"2":{"247":1}}],["用户也可以获取",{"2":{"168":1}}],["用户也可以指定",{"2":{"167":1}}],["用户也可以自行实现接口并提高工厂的优先级以替换默认策略",{"2":{"35":1}}],["用户默认不需要进行额外的操作",{"2":{"166":1}}],["用户可以通过",{"2":{"239":1,"246":1}}],["用户可以通过实现",{"2":{"56":1}}],["用户可以使用",{"2":{"169":1}}],["用户可以在通过",{"2":{"156":1}}],["用户可以在注解中使用",{"2":{"107":1}}],["用户可以实现",{"2":{"150":1}}],["用户可以为",{"2":{"140":1}}],["用户可以根据自己的需求",{"2":{"107":1}}],["用于自动查询接口并填充字段值",{"2":{"332":1}}],["用于生成构造方法与",{"2":{"308":1,"317":1,"325":1}}],["用于扫描一个或多个包路径下的枚举",{"2":{"243":1,"244":1}}],["用于整合组件管理",{"2":{"233":1}}],["用于快速声明一个基于常量类的装配操作",{"2":{"229":1}}],["用于快速声明一个基于方法容器的装配操作",{"2":{"224":1}}],["用于在具体的填充过程支持一些自定的操作",{"2":{"228":1}}],["用于同时支持",{"2":{"220":1,"222":1}}],["用于后续填充",{"2":{"52":1,"282":1}}],["用于统一管理框架各处的反射调用操作",{"2":{"36":1}}],["用于统一填充方法参数",{"2":{"35":1}}],["用于分别对每一个参数进行填充",{"2":{"35":1}}],["用于填充的对象是",{"2":{"25":1}}],["用于支持",{"2":{"19":1}}],["与该对象类型对应操作配置",{"2":{"331":1}}],["与非",{"2":{"312":1,"320":1}}],["与用于构造",{"2":{"300":1}}],["与上述相反",{"2":{"208":1}}],["与方法容器类似",{"2":{"175":1}}],["与嵌套填充配合使用",{"0":{"130":1},"1":{"131":1,"132":1}}],["与装配操作类似",{"2":{"107":1}}],["与装配操作一样",{"2":{"101":1}}],["与常量容器相同",{"2":{"49":1}}],["与",{"2":{"35":1,"38":1,"49":1,"51":2,"53":1,"61":2,"71":1,"73":1,"79":2,"89":2,"110":1,"118":1,"133":1,"134":1,"167":1,"220":1,"222":1,"228":3,"276":1,"283":1,"289":1}}],["与手动填充",{"2":{"33":1}}],["两种方式效果一样",{"2":{"309":1}}],["两种方式效果一致",{"2":{"55":1,"149":1}}],["两个过时的",{"2":{"233":1}}],["两个里面挑一个",{"2":{"209":1}}],["两个参数中提到了",{"2":{"207":1}}],["两个类型的对象",{"2":{"33":1}}],["两者区在主要的功能和配置上完全一致",{"2":{"306":1}}],["两者效果一致",{"2":{"287":1}}],["两者主要的区别在于是否在类或类的属性上配置注解时一并配置数据源容器",{"2":{"287":1}}],["两者对照如下",{"2":{"133":1}}],["两者差别不大",{"2":{"33":1}}],["适当引用并删减前文的内容",{"2":{"187":1}}],["适配不同的参数类型",{"2":{"31":1}}],["适用环境",{"2":{"14":1}}],["4",{"0":{"30":1,"51":1,"61":1,"74":1,"89":1,"95":1,"96":1,"97":1,"98":1,"113":1,"119":1,"139":1,"152":1,"173":1,"174":1,"180":1,"227":1,"246":1,"248":1,"275":1,"284":1,"311":1,"320":1,"321":1,"322":1,"328":1,"336":1},"1":{"97":1,"98":1,"321":1,"322":1},"2":{"78":2,"176":1,"181":1,"190":1,"304":1}}],["40",{"2":{"6":1}}],["字典或者",{"2":{"333":1}}],["字典",{"2":{"282":1}}],["字典项编码",{"2":{"222":1,"223":1}}],["字典项id",{"2":{"24":1}}],["字典类型",{"2":{"222":1,"223":1}}],["字",{"2":{"189":1}}],["字以内的标题是抓住资深专家注意力的好机会",{"2":{"187":1}}],["字符串的时候进行字段填充",{"2":{"156":1}}],["字符串的分隔符与上文",{"2":{"46":1}}],["字段填充是一个广泛存在的需求",{"2":{"335":1}}],["字段填充数据吗",{"0":{"303":1}}],["字段填充到",{"2":{"256":1}}],["字段进行填充",{"2":{"276":1}}],["字段关联数据的场景",{"2":{"276":1}}],["字段对应的一个操作会被转为一个",{"2":{"331":1}}],["字段对应",{"2":{"256":1}}],["字段与",{"2":{"256":1}}],["字段的类型改为一个字符串",{"2":{"145":1}}],["字段的值",{"2":{"86":1}}],["字段字符串中通过逗号分隔的多个键值",{"2":{"140":1}}],["字段字符串中按分隔符分割的多个键值",{"2":{"44":1}}],["字段同名",{"2":{"89":1}}],["字段或有返回值的无参方法",{"2":{"88":1}}],["字段值",{"2":{"257":2,"258":2}}],["字段值为",{"2":{"86":1}}],["字段值映射到",{"2":{"86":1,"331":1}}],["字段值对应的数据",{"2":{"86":1}}],["字段映射的字面量配置的新特性",{"2":{"232":1}}],["字段映射支持以链式操作符获取或设置多级嵌套对象的属性",{"2":{"217":1}}],["字段映射规则按照就近原则执行",{"2":{"141":1}}],["字段映射将变为批量映射模式",{"2":{"140":1}}],["字段映射",{"2":{"84":1,"257":1,"261":1}}],["字段映射到",{"2":{"63":1}}],["字段上的过程",{"2":{"331":1}}],["字段上通过",{"2":{"257":1}}],["字段上声明一个装配操作",{"2":{"86":1}}],["字段上",{"2":{"63":1,"86":1,"88":1,"138":1,"139":1,"257":1,"258":1}}],["字段为",{"2":{"27":1}}],["字段",{"2":{"27":1,"44":1,"84":1,"86":2,"92":1,"133":1,"137":1,"138":1,"140":1,"287":2}}],["就可能能够带给你越多的便利",{"2":{"335":1}}],["就能确认",{"2":{"279":1}}],["就请给出好的答案",{"2":{"213":1}}],["就给别人乱指路",{"2":{"213":1}}],["就算软件没花费你一分钱",{"2":{"212":1}}],["就是非常典型的关联字段填充操作",{"2":{"333":1}}],["就是直接尽可能的手动处理完整个过程",{"2":{"277":1}}],["就是那个提出问题的人",{"2":{"211":1}}],["就是对预先道谢这一条",{"2":{"203":1}}],["就不用浪费我的时间了",{"2":{"210":1}}],["就在我找到它的地方啊",{"2":{"210":1}}],["就指望别人像对待脆弱的洋娃娃那样对你",{"2":{"209":1}}],["就复制一份代码并移除不影响产生问题行为的部分",{"2":{"199":1}}],["就最有可能得到有用的答案",{"2":{"198":1}}],["就没有人能看到最常见问题的完整场景",{"2":{"186":1}}],["就没有对应的",{"2":{"25":1}}],["就试着搜索一下问题的几个关键词",{"2":{"185":1}}],["就需要更换不同的装配操作处理器",{"2":{"38":1}}],["就像那根最后压垮骆驼背的稻草一样",{"2":{"183":1}}],["就像",{"2":{"28":1}}],["就像在类或类属性上进行配置一样",{"2":{"27":1}}],["首先最好不要发布很长的问题描述",{"2":{"185":1}}],["首先",{"2":{"27":1,"121":1,"201":1,"257":1,"261":1,"276":1}}],["统一填充方法参数",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1}}],["又不想要每个类都重复配置",{"2":{"25":1}}],["又各自通过",{"2":{"6":1}}],["也支持组合式注解",{"2":{"287":1}}],["也支持直接传入",{"2":{"31":1}}],["也读过了",{"2":{"211":1}}],["也对",{"2":{"210":1}}],["也别妨碍他",{"2":{"213":1}}],["也别让自己卷入口水战",{"2":{"209":1}}],["也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者",{"2":{"209":1}}],["也别假设",{"2":{"186":1}}],["也很有礼貌地提到这点",{"2":{"202":1}}],["也应该被纠正",{"2":{"197":1}}],["也不能取而代之",{"2":{"203":1}}],["也不会让我满意",{"2":{"194":1}}],["也不存在提取公共父类的可能",{"2":{"25":1}}],["也没有用",{"2":{"193":1}}],["也换个好点的",{"2":{"188":1}}],["也提及你不反对将自己的邮件转发给他人",{"2":{"186":1}}],["也提供了一些便捷的工厂方法",{"2":{"68":1}}],["也提供了容器自身生命周期的回调接口",{"2":{"20":1}}],["也有可能你的问题一开始就没有组织好",{"2":{"212":1}}],["也有可能会冒犯到其中某部分人",{"2":{"192":1}}],["也有其它的黑客论坛",{"2":{"209":1}}],["也有",{"2":{"186":1}}],["也就是在质疑他们的能力",{"2":{"192":1}}],["也就是说",{"2":{"105":1}}],["也就不用再次发问了",{"2":{"186":1}}],["也许攻击的言语中还会带点夹七夹八的颜色",{"2":{"209":1}}],["也许值得这样去做",{"2":{"202":1}}],["也许太忙以至于没法回答你的问题",{"2":{"186":1}}],["也许这会有帮助",{"2":{"185":1}}],["也许这样就找到答案了",{"2":{"183":1}}],["也将对整个项目群组有益",{"2":{"186":1}}],["也能帮助你归纳出更好的问题",{"2":{"183":1}}],["也让遇到相似问题的其他人能被搜索引擎引导到你的提问来",{"2":{"181":1}}],["也是你如何透过善待他人而赢得声誉的方式",{"2":{"204":1}}],["也是件好事",{"2":{"181":1}}],["也是唯一的拆卸操作处理就是",{"2":{"107":1}}],["也是默认的处理器",{"2":{"38":1}}],["也会一并取出并展开",{"2":{"102":1}}],["也会被子类所继承",{"2":{"88":1}}],["也可能缓存在",{"2":{"335":1}}],["也可能是对象集合",{"2":{"52":1,"282":1}}],["也可以更换表达式引擎以支持其他类型的表达式",{"2":{"152":1}}],["也可以是字符串",{"2":{"152":1}}],["也可以直接是集合或者数组",{"2":{"140":1}}],["也可以通过建造者构建一个枚举容器",{"2":{"58":1}}],["也可以通过建造者构建一个常量容器",{"2":{"48":1}}],["类得到操作配置",{"2":{"285":1}}],["类的",{"2":{"256":1,"289":1}}],["类上的",{"2":{"228":1}}],["类中声明了三组操作",{"2":{"251":1}}],["类中配置任何注解",{"2":{"155":1}}],["类中的三个操作的顺序为",{"2":{"126":1}}],["类实现的",{"2":{"142":1}}],["类如下",{"2":{"142":1}}],["类或方法同理",{"2":{"114":1}}],["类似的",{"2":{"123":1}}],["类似下述代码",{"2":{"94":1}}],["类似",{"2":{"38":1,"331":1}}],["类似于",{"2":{"30":1,"38":1,"53":1}}],["类型或名称",{"2":{"292":1}}],["类型不为",{"2":{"178":1}}],["类型为",{"2":{"161":1,"162":1,"314":1,"322":1}}],["类型的非",{"2":{"219":1}}],["类型的数据",{"2":{"218":1}}],["类型的键",{"2":{"140":1}}],["类型的参数适配为容器",{"2":{"31":1}}],["类型的参数",{"2":{"31":1,"90":1}}],["类型转换",{"2":{"117":1,"136":1}}],["类型转换器",{"0":{"37":1}}],["类型强制转为",{"2":{"90":1}}],["类型并不相同",{"2":{"90":1}}],["类型",{"2":{"37":1,"45":1,"49":1,"51":1,"59":1,"61":1,"71":1,"72":1,"73":2,"79":1,"90":2,"93":1,"140":1}}],["类",{"2":{"25":1,"123":1,"256":1,"283":1}}],["填充不生效",{"0":{"289":1}}],["填充方式",{"0":{"286":1}}],["填充方法入参",{"2":{"149":1}}],["填充方法返回值",{"2":{"149":1}}],["填充关联商品信息",{"2":{"272":1,"273":1,"274":1,"275":2}}],["填充关联客户信息",{"2":{"272":1,"273":1,"274":1,"275":2}}],["填充订单类型",{"2":{"272":1}}],["填充被多级包装的数据",{"0":{"268":1}}],["填充被包装的数据",{"0":{"267":1}}],["填充出现问题",{"2":{"231":1}}],["填充子节点",{"2":{"132":1}}],["填充员工的装配操作",{"2":{"131":1}}],["填充参数",{"2":{"124":1}}],["填充返回值",{"2":{"124":1}}],["填充嵌套对象",{"0":{"100":1},"1":{"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1},"2":{"290":1}}],["填充数据源为",{"2":{"79":1,"273":3,"287":1}}],["填充的数据源可能多种多样",{"2":{"335":1}}],["填充的对象可能是一个嵌套的树形结构",{"2":{"335":1}}],["填充的对象的字段非常像",{"2":{"25":1}}],["填充的格式默认为",{"2":{"44":1}}],["填充时",{"2":{"31":1}}],["填充",{"2":{"25":1,"29":1,"33":3,"161":1,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1}}],["启动项目有可能会出现",{"2":{"304":1}}],["启动出现",{"2":{"228":1}}],["启动应用报错",{"0":{"304":1},"2":{"223":1,"304":1}}],["启动时容器仍然未加载",{"2":{"223":1}}],["启动顺序太靠后",{"2":{"223":1}}],["启动自动注册",{"2":{"167":1}}],["启动后",{"2":{"24":1}}],["启用配置",{"0":{"309":1}}],["启用字节码增强",{"2":{"239":1}}],["启用全局切面后",{"2":{"221":1,"222":1}}],["启用插件",{"0":{"158":1},"1":{"159":1,"160":1}}],["启用后",{"2":{"156":1}}],["启用缓存管理器",{"0":{"178":1}}],["启用缓存",{"2":{"79":1}}],["启用执行器",{"0":{"1":1}}],["例如有人能帮我吗",{"2":{"201":1}}],["例如运行脚本工具所生成的",{"2":{"195":1}}],["例如对象映射",{"2":{"44":1,"140":1}}],["例如",{"2":{"24":1,"43":4,"63":1,"107":1,"126":1,"140":2,"142":1,"145":1,"152":1,"153":1,"154":1,"174":1,"175":1,"199":1,"201":1}}],["返回值可以是",{"2":{"314":1,"322":1}}],["返回值被通用响应体包装",{"2":{"77":2,"151":2,"267":2}}],["返回值已经是分组后的",{"2":{"73":1}}],["返回值参数类型",{"2":{"72":1}}],["返回值类型可以是单个对象",{"2":{"149":1}}],["返回值类型",{"2":{"71":1,"72":1}}],["返回的容器会根据固定的字典类型查询",{"2":{"279":1}}],["返回的数据集直接以对象为",{"2":{"277":1}}],["返回的数据必须按入参的对象实例本身分组",{"2":{"80":1}}],["返回的数据源对象类型为",{"2":{"71":2,"75":1}}],["返回的数据按客户组别id分组",{"2":{"40":1}}],["返回的对象可以是数据源对象或数据源对象的属性集合",{"2":{"44":1,"140":1}}],["返回字典分类和字典类型组合的字符串作为命名空间",{"2":{"24":1}}],["返回一个自定义缓存对象",{"2":{"16":1}}],["筛选",{"2":{"24":1}}],["标准",{"2":{"87":1}}],["标准装配操作注解处理器",{"2":{"24":1}}],["标准操作注解处理器",{"2":{"24":1}}],["通知器",{"2":{"299":1}}],["通用响应体包装了分页对象",{"2":{"268":1}}],["通用响应体",{"2":{"77":1,"151":1,"267":1}}],["通用属性",{"2":{"24":1}}],["通常封闭源代码软件的技术支持费用比开源软件的要高得多",{"2":{"212":1}}],["通常人们组建这样的团体来互相帮助并帮助新手",{"2":{"212":1}}],["通常在",{"2":{"211":1}}],["通常",{"2":{"206":1}}],["通常会被垃圾信过滤器过滤掉",{"2":{"202":1}}],["通常请别人看看哪里有问题",{"2":{"198":1}}],["通常比问你能解释一下",{"2":{"198":1}}],["通常是因为他认为问题编写太差或者太肤浅",{"2":{"197":1}}],["通常是接口中的查询方法",{"2":{"42":1}}],["通常可以即时得到回应",{"2":{"185":1}}],["通常那儿都有常见问题",{"2":{"183":1}}],["通常情况下每个操作都对应类或类属性上的一个注解",{"2":{"283":1}}],["通常情况下",{"2":{"24":1,"174":1}}],["通过更少的代码搞定各种关联字段填充的需求",{"2":{"335":1}}],["通过引入",{"2":{"335":1}}],["通过回调接口排除",{"2":{"254":1}}],["通过回复提问",{"2":{"187":1}}],["通过默认引入了基于字节码的反射增强库",{"2":{"239":1}}],["通过告诉他们我所走过的弯路",{"2":{"211":1}}],["通过我的提问方法",{"2":{"211":1}}],["通过允许将你的电子邮件转发他人",{"2":{"186":1}}],["通过论坛或",{"2":{"185":1}}],["通过注解的",{"2":{"152":1,"153":1,"154":1}}],["通过注解配置到期时间和刷新",{"2":{"227":1}}],["通过注解配置",{"0":{"9":1},"2":{"50":1,"60":1}}],["通过类似",{"2":{"142":1}}],["通过模板引入的字段映射配置与通过",{"2":{"141":1}}],["通过指定",{"2":{"111":1}}],["通过一套类似",{"2":{"108":1}}],["通过在类或属性上添加",{"2":{"79":1}}],["通过获取注解得到额外的信息",{"2":{"67":1}}],["通过获取它",{"2":{"67":1}}],["通过对象内省的方式",{"2":{"63":1}}],["通过",{"2":{"50":1,"53":1,"55":1,"60":1,"69":1,"91":1,"126":1,"146":1,"246":1,"273":1,"283":1,"292":1,"293":1,"294":1,"296":1}}],["通过配置文件",{"2":{"50":1,"60":1}}],["通过依赖注入获取字典服务",{"2":{"24":1}}],["通过该配置对象我们可以知道一个对象中有多少个字段需要处理",{"2":{"331":1}}],["通过该回调接口",{"2":{"21":1}}],["通过该方法可以获得被替换或者删除的容器",{"2":{"19":1}}],["通过该方法可以获取创建后即将加入缓存的容器实例",{"2":{"19":1}}],["通过该方法获得要注册的容器示例或工厂方法",{"2":{"19":1}}],["拆卸操作支持非平铺模式",{"2":{"236":1}}],["拆卸操作支持处理数组",{"2":{"101":1}}],["拆卸操作也可以排序",{"2":{"129":1}}],["拆卸操作也依赖于拆卸操作处理器",{"2":{"107":1}}],["拆卸操作处理器",{"0":{"107":1}}],["拆卸操作是递归完成的",{"2":{"105":1}}],["拆卸操作同样支持在类或属性上声明",{"2":{"101":1}}],["拆卸操作执行器",{"2":{"36":1}}],["拆卸操作",{"2":{"23":1,"131":1,"153":1,"283":1}}],["上图描述了一个",{"2":{"331":1}}],["上面代码用于为",{"2":{"272":1}}],["上面",{"2":{"256":1}}],["上的一个真实的提问",{"2":{"211":1}}],["上的特定注解解析为对应的装配或拆卸配置",{"2":{"22":1}}],["上没有找到任何答案",{"2":{"184":1}}],["上下文中",{"2":{"309":1,"317":1}}],["上下文中的组件",{"2":{"216":1}}],["上下文中已经有了一个继承",{"2":{"169":1}}],["上下文中任何符合",{"2":{"167":1}}],["上下文中获得对应的",{"2":{"166":1}}],["上述写法被称为选项式",{"2":{"258":1}}],["上述配置相当于使用",{"2":{"171":1,"172":1,"173":1}}],["上述配置表示",{"2":{"86":1}}],["上述示例表示",{"2":{"246":1}}],["上述示例表示只有当type不等于",{"2":{"152":1}}],["上述示例中",{"2":{"106":1,"134":1,"137":1,"138":1,"140":1,"150":1,"175":1}}],["上述条件等同于",{"2":{"119":1}}],["上述这个逻辑的问题在于",{"2":{"6":1}}],["上添加",{"2":{"66":1,"161":1}}],["传递给parser时",{"2":{"22":1}}],["尊敬的",{"2":{"21":1}}],["为其设置对应的性别值",{"2":{"333":1}}],["为例",{"2":{"333":1}}],["为什么需要",{"0":{"335":1}}],["为什么引了",{"0":{"300":1}}],["为什么",{"0":{"298":1,"299":1}}],["为什么使用异步执行器的时候报错",{"0":{"295":1}}],["为某个固定值",{"2":{"279":1}}],["为整数时才生效",{"2":{"253":1}}],["为命名空间为",{"2":{"246":1}}],["为基于",{"2":{"218":1,"221":1,"222":1}}],["为你动态加上的这个字段",{"2":{"161":1}}],["为对象添加原本不具备的属性",{"2":{"156":1}}],["为操作指定触发条件",{"2":{"110":1}}],["为键值指定别名",{"0":{"94":1}}],["为此",{"2":{"80":1}}],["为一个方法容器",{"2":{"70":1}}],["为",{"2":{"49":1,"51":1,"55":1,"61":1,"78":1,"86":1,"120":1,"152":1,"167":1,"170":1,"174":1,"216":1,"224":1,"249":1,"253":1,"257":2,"258":2}}],["为空字符串",{"2":{"233":1}}],["为空时指向",{"2":{"133":1}}],["为空时仍然应用该操作",{"2":{"117":1}}],["为空",{"2":{"21":2,"254":1}}],["为了保持代码的整洁性",{"2":{"141":1}}],["为了保证性能",{"2":{"132":1}}],["为了保证尽可能减少查库次数",{"2":{"6":1}}],["为了简化代码",{"2":{"121":1}}],["为了便于区分",{"2":{"89":1}}],["为了便于用户对在",{"2":{"18":1}}],["为了兼容",{"2":{"24":1}}],["为了提高效率",{"2":{"6":1}}],["若填充失败时",{"2":{"236":1}}],["若被",{"2":{"236":1}}],["若目标类没有配置任何装配操作则执行会报错",{"2":{"229":1}}],["若已有则可以跳过",{"2":{"157":1,"164":1,"177":1}}],["若该元素上同时声明了多个操作",{"2":{"111":1}}],["若你的数据源容器接受的参数类型不是",{"2":{"90":1}}],["若你在非",{"2":{"54":1,"160":1}}],["若是有参方法",{"2":{"71":1}}],["若枚举类上存在",{"2":{"61":1}}],["若常量类上存在",{"2":{"51":1}}],["若返回值为字符串",{"2":{"45":1}}],["若在",{"2":{"42":1}}],["若有必要",{"2":{"35":1}}],["若方法不指定填充对象类型",{"2":{"221":1,"222":1}}],["若方法带有",{"2":{"35":1}}],["若方法具备带有",{"2":{"35":1}}],["若",{"2":{"21":2,"94":2,"159":1,"254":1}}],["若发现它已经失效",{"2":{"15":1}}],["use",{"2":{"224":1}}],["useraddress",{"2":{"260":1,"261":2,"262":2}}],["userage",{"2":{"169":1,"171":2,"173":2,"174":1,"260":1,"261":2,"262":2}}],["userinfo>",{"2":{"260":1,"261":1}}],["userinfo",{"2":{"260":3,"261":4,"262":2}}],["userid",{"2":{"94":4,"161":1,"162":1,"260":2,"261":1,"262":1}}],["userdao",{"2":{"260":3,"261":2,"262":1}}],["userdo",{"2":{"56":1}}],["userdo>",{"2":{"56":2}}],["userkey",{"2":{"94":2}}],["username",{"2":{"73":6,"161":1,"162":1,"169":1,"171":2,"172":2,"173":3,"260":1,"261":2,"262":2,"331":1}}],["usercontainer",{"2":{"56":2}}],["uservo>",{"2":{"151":1,"268":1}}],["uservo>>>",{"2":{"151":1,"268":1}}],["uservo>>",{"2":{"77":2,"151":2,"267":2}}],["uservo",{"2":{"55":2,"77":2,"89":1,"123":2,"151":3,"267":1,"268":1}}],["userservice",{"2":{"31":1,"56":3,"151":3,"260":1,"261":2,"267":2,"268":1}}],["users",{"2":{"31":5,"56":2}}],["user>>",{"2":{"73":1}}],["user>",{"2":{"31":3,"73":3,"260":1,"261":1}}],["user",{"2":{"21":1,"25":1,"27":1,"31":10,"55":3,"56":1,"73":2,"82":1,"89":4,"94":1,"110":4,"111":2,"114":1,"116":2,"117":4,"118":2,"123":3,"161":5,"169":2,"171":2,"172":1,"173":3,"174":6,"184":1,"185":1,"260":3,"261":7,"262":4}}],["unable",{"2":{"224":1}}],["unaryoperator",{"2":{"67":1}}],["unix",{"2":{"183":1,"214":2}}],["unit",{"2":{"10":2}}],["u",{"2":{"31":2}}],["该方法的返回值为",{"2":{"261":1,"262":1}}],["该方法将返回一个",{"2":{"260":1}}],["该方法会清空缓存",{"2":{"20":1}}],["该方法会查询并缓存字典值",{"2":{"20":1}}],["该回调方法会在所有操作完成后调用",{"2":{"250":1}}],["该值默认为",{"2":{"249":1}}],["该配置只在",{"2":{"239":1}}],["该配置表示",{"2":{"311":1,"319":1,"328":1}}],["该配置表示当入参集合为空时",{"2":{"78":1}}],["该配置表示是否需要过滤入参集合中的空值",{"2":{"78":1}}],["该项目的黑客可能仅仅回复",{"2":{"185":1}}],["该扩展提供的",{"2":{"178":1}}],["该查询是基于",{"2":{"174":1}}],["该填充可以在属性映射时",{"2":{"156":1}}],["该填充完全兼容已有的各项配置",{"2":{"156":1}}],["该字段映射遵循普通字段映射的语义",{"2":{"140":1}}],["该注解属性如下",{"2":{"133":1}}],["该条件是否需要取反",{"2":{"121":1}}],["该条件应该排在第几个",{"2":{"121":1}}],["该条件应该是",{"2":{"121":1}}],["该条件不会生效",{"2":{"114":1}}],["该条件仅应用到",{"2":{"111":1}}],["该条件将同时应用到下面两个装配操作",{"2":{"111":1}}],["该行为可以通过在指定属性映射策略改变",{"2":{"96":1,"143":1}}],["该功能是通过",{"2":{"142":1}}],["该功能需要配合装配处理器",{"2":{"140":1}}],["该功能依赖",{"2":{"136":1}}],["该功能通常配合方法容器使用",{"2":{"92":1}}],["该功能基于",{"2":{"31":1,"92":1,"93":1}}],["该容器入参为待填充的",{"2":{"80":1}}],["该容器将从",{"2":{"69":1}}],["该类必须有一个公开的无参构造方法",{"2":{"42":1,"74":1,"92":1}}],["该对象中实现的回调方法会在特定的处理阶段被触发",{"2":{"21":1}}],["初始化方法",{"2":{"20":1}}],["会先需要将其取出平铺后再进行填充",{"2":{"283":1}}],["会先将",{"2":{"102":1}}],["会偶发空指针异常",{"2":{"234":1,"236":1}}],["会导致填充字段错乱",{"2":{"224":1}}],["会更好",{"2":{"213":1}}],["会更加灵活而直观",{"2":{"113":1}}],["会不会有帮助",{"2":{"204":1}}],["会让你交到更多朋友",{"2":{"204":1}}],["会使黑客们兴奋的地方",{"2":{"202":1}}],["会使用",{"2":{"86":1}}],["会变形",{"2":{"187":1}}],["会比在私有论坛中提同样的问题更容易得到有用的回答",{"2":{"183":1}}],["会借助",{"2":{"148":1,"174":1}}],["会有包含多个",{"2":{"133":1}}],["会自行完成注册",{"2":{"121":1}}],["会自动将对应的模块注册到该实例中",{"2":{"159":1}}],["会自动帮你合并在同一次操作中对相同数据源容器的调用",{"2":{"89":1}}],["会自动进行注册",{"2":{"24":1}}],["会自动注册",{"2":{"19":1,"98":1,"145":1}}],["会根据配置从数据源获得对象",{"2":{"331":1}}],["会根据指定的类型和处理器类型获取对应的操作处理器",{"2":{"107":1}}],["会根据字典分类和字典类型从服务接口中获取字典项",{"2":{"24":1}}],["会动态推断类型",{"2":{"150":1}}],["会动态推断",{"2":{"106":1}}],["会认为其为一个",{"2":{"87":1,"103":1}}],["会直接将待填充的对象作为",{"2":{"80":1}}],["会对后续的维护带来麻烦",{"2":{"71":1}}],["会在用户使用时根据",{"2":{"166":1}}],["会在方法执行前",{"2":{"149":1}}],["会在后处理阶段扫描该方法",{"2":{"71":1}}],["会在一开始就会配置好一个默认的异步执行器",{"2":{"1":1}}],["会调用",{"2":{"20":2}}],["管理的",{"2":{"245":1}}],["管理的容器",{"2":{"229":1}}],["管理",{"2":{"56":1,"76":1,"82":2,"95":1,"309":1}}],["管理即可",{"2":{"19":1,"54":1,"121":1}}],["管理器对数据软引用",{"2":{"14":1}}],["管理器对数据弱引用",{"2":{"14":1}}],["管理器",{"2":{"14":1}}],["是如何通过",{"2":{"331":1}}],["是粒度最细的",{"2":{"286":1}}],["是正当的",{"2":{"213":1}}],["是什么",{"2":{"207":1}}],["是什么被影响了",{"2":{"187":1}}],["是你的朋友",{"2":{"206":1}}],["是非常重要的",{"2":{"204":1}}],["是或否",{"2":{"201":1}}],["是吧",{"2":{"192":1}}],["是针对某牌显卡芯片组",{"2":{"187":1}}],["是问服务器和网管相关的问题",{"2":{"184":1}}],["是问写程序有关的问题",{"2":{"184":1}}],["是问一些通用的电脑问题",{"2":{"184":1}}],["是",{"2":{"147":1}}],["是一个用于创建容器的静态工厂",{"2":{"69":1}}],["是用于获取数据源容器的组件",{"2":{"53":1}}],["是用于感知并干涉容器生命周期的特色组件",{"2":{"19":1}}],["是否按你的配置正确的将数据源对象的属性值映射到待填充的对象上",{"2":{"289":1}}],["是否按顺序执行",{"2":{"285":1}}],["是否异步",{"2":{"285":1}}],["是否忽略",{"0":{"249":1}}],["是否支持",{"2":{"241":1}}],["是否支持链式操作符",{"0":{"241":1}}],["是否支持对",{"2":{"240":1}}],["是否支持处理map对象",{"0":{"240":1}}],["是否启用返回值自动填充",{"2":{"247":1}}],["是否启用参数自动填充",{"2":{"247":1}}],["是否启用字节码反射",{"0":{"239":1}}],["是否启用缓存配置",{"2":{"79":1}}],["是否不调用方法而直接返回空集合",{"2":{"78":1}}],["是否跳过查询直接返回空集合",{"2":{"72":1}}],["是否过滤入参集合中的",{"2":{"72":1}}],["是否遵循枚举类上的",{"2":{"61":1}}],["是否遵循常量类上的",{"2":{"51":1}}],["是否需要翻转键值",{"2":{"49":1}}],["是否只加载被",{"2":{"60":1,"244":1}}],["是否只引用被",{"2":{"49":1}}],["是否只引用带有",{"2":{"49":1}}],["是否只保存公共变量",{"2":{"49":1}}],["是否只保存带有",{"2":{"49":1}}],["是否默认生效",{"2":{"36":1}}],["是整个框架的基石",{"2":{"36":1}}],["是可重复注解",{"2":{"17":1}}],["是基于",{"2":{"12":2}}],["注入",{"2":{"314":1,"322":1}}],["注入操作者接口",{"2":{"28":1}}],["注册mapper",{"0":{"165":1},"1":{"166":1,"167":1,"168":1}}],["注册",{"2":{"161":1,"165":1}}],["注册到",{"2":{"160":1}}],["注册到你需要的",{"2":{"159":1}}],["注册策略",{"2":{"145":1}}],["注册注解解析器",{"2":{"121":1}}],["注册注解处理器",{"2":{"24":1}}],["注册数据源容器",{"0":{"81":1},"1":{"82":1,"83":1}}],["注册一个键值映射策略",{"2":{"65":1}}],["注册一系列注解处理器",{"2":{"22":1}}],["注册指定的值映射策略",{"2":{"65":1}}],["注意告诉我答案和给我启示",{"2":{"211":1}}],["注意它们的默认设置不一定满足这些要求",{"2":{"189":1}}],["注意",{"2":{"17":1,"27":1,"36":1,"71":1,"82":1,"86":1,"105":1,"117":1,"210":2}}],["注解引入框架后",{"2":{"304":1}}],["注解引用数据源",{"2":{"274":1}}],["注解不生效",{"0":{"298":1,"299":1}}],["注解无法支持带有通配符的路径",{"2":{"233":1}}],["注解无法被识别",{"2":{"228":1}}],["注解支持通过类似",{"2":{"229":1}}],["注解支持在",{"2":{"229":1}}],["注解用于配置",{"2":{"227":1}}],["注解应当支持在类上声明",{"2":{"224":1}}],["注解在类上的配置方式",{"2":{"220":1,"222":1}}],["注解在属性上",{"2":{"49":3}}],["注解指定在",{"2":{"175":1}}],["注解指定扫描路径",{"2":{"28":1}}],["注解标记的属性作为主键",{"2":{"171":1}}],["注解来配置以",{"2":{"169":1}}],["注解来进一步定义容器的具体信息",{"2":{"49":1,"59":1}}],["注解来进一步指定如何填充参数",{"2":{"34":1}}],["注解后",{"2":{"161":1,"223":1,"233":1,"304":1}}],["注解替换",{"2":{"126":1}}],["注解也支持使用",{"2":{"123":1}}],["注解声明一个装配操作",{"2":{"257":1}}],["注解声明在类上",{"2":{"104":1}}],["注解声明装配操作时",{"2":{"32":1}}],["注解进行声明",{"2":{"102":1}}],["注解进行选项式风格的配置",{"2":{"51":1,"61":1,"79":1}}],["注解都支持在类或类的属性上使用",{"2":{"85":1}}],["注解绑定的方法上添加",{"2":{"79":1}}],["注解提供了一些参数",{"2":{"79":1}}],["注解添加了两个用于空值处理的属性",{"2":{"78":1}}],["注解所在的元素",{"2":{"67":1}}],["注解即可",{"2":{"66":1,"161":1,"290":1}}],["注解即可为其应用缓存",{"2":{"56":1}}],["注解中的",{"2":{"292":1,"293":1,"294":1}}],["注解中正确配置了",{"2":{"289":1}}],["注解中不指定引用字段",{"2":{"138":1,"139":1}}],["注解中不指定",{"2":{"137":1}}],["注解中使用",{"2":{"123":1,"124":1,"141":1}}],["注解中通过",{"2":{"77":1,"151":1,"267":1}}],["注解中通过命名空间引入了",{"2":{"52":1}}],["注解中",{"2":{"72":1,"142":1}}],["注解中指定",{"2":{"264":1}}],["注解中指定缓存配置",{"2":{"228":1}}],["注解中指定使用",{"2":{"129":1}}],["注解中指定使用异步执行器",{"2":{"3":1}}],["注解中指定要使用异步执行器",{"2":{"5":1}}],["注解共提供下述可选项",{"2":{"51":1,"61":1}}],["注解了",{"2":{"51":1,"61":1}}],["注解配置了两个映射属性",{"2":{"134":1}}],["注解配置要扫描的枚举包路径",{"2":{"60":1}}],["注解配置要扫描的常量包路径",{"2":{"50":1}}],["注解配置装配操作",{"2":{"27":1}}],["注解的自动填充",{"2":{"227":1}}],["注解的接口的代理对象",{"2":{"219":1}}],["注解的配置",{"2":{"217":1}}],["注解的一些配置项",{"2":{"162":1}}],["注解的解析器",{"2":{"121":1}}],["注解的作用域",{"0":{"114":1}}],["注解的方法上添加操作配置",{"2":{"232":1}}],["注解的方法上添加注解",{"2":{"9":1}}],["注解的方法或者参数上获取操作配置",{"2":{"155":1}}],["注解的方式实现配置缓存",{"2":{"79":1}}],["注解的属性",{"2":{"49":2}}],["注解的",{"2":{"39":1,"55":1,"99":1,"126":2}}],["注解的参数进行填充",{"2":{"35":1}}],["注解的参数",{"2":{"35":1}}],["注解的声明式监听器机制类似",{"2":{"35":1}}],["注解的使用方式与自动填充中完全一致",{"2":{"34":1}}],["注解上的指定的执行器和解析器",{"2":{"33":1}}],["注解上需要显式的指定",{"2":{"27":1}}],["注解处理器",{"0":{"22":1,"284":1},"1":{"23":1,"24":1},"2":{"287":1}}],["注解时",{"2":{"13":1}}],["注解",{"0":{"34":1},"2":{"9":1,"23":1,"25":1,"27":1,"35":1,"49":3,"51":3,"56":1,"57":1,"61":3,"71":1,"75":1,"79":2,"80":1,"84":1,"116":1,"117":1,"118":1,"119":1,"120":1,"133":1,"149":1,"218":1,"219":1,"224":1,"229":1,"236":1,"261":1,"286":2}}],["workaround",{"2":{"213":1}}],["word",{"2":{"189":1}}],["web",{"2":{"206":1,"304":1}}],["weakconcurrentmap",{"2":{"12":1,"300":1}}],["willard",{"2":{"194":1}}],["windows",{"2":{"183":1,"189":1,"210":7}}],["withdefaultconfiguration",{"2":{"52":1,"54":1,"65":2,"68":1,"76":1,"83":1,"326":1,"330":1}}],["where",{"2":{"170":1,"171":1,"172":2,"173":2,"174":1,"175":1}}],["when",{"2":{"86":1,"118":1,"249":1}}],["whendestroyed",{"2":{"19":1}}],["whencreated",{"2":{"19":1}}],["whenregistered",{"2":{"19":1}}],["writevalueasstring",{"2":{"161":1}}],["wrapifnecessary",{"2":{"148":1}}],["warning",{"2":{"17":1,"27":1,"36":1,"71":1,"80":1,"82":1,"105":1,"132":1,"140":1,"142":1,"161":2,"174":1,"179":1,"239":1}}],["html",{"2":{"189":2}}],["hibernate",{"2":{"122":1}}],["hacker",{"2":{"181":1}}],["hashcode",{"2":{"80":1}}],["hashmap",{"2":{"16":2,"20":1,"52":1,"69":1,"265":1,"277":1,"282":3}}],["handlertype",{"2":{"39":2,"41":1,"42":1,"44":2,"93":1,"107":3,"140":2,"145":2,"175":1,"273":1,"274":1,"275":1,"292":1,"293":1,"294":1}}],["handler",{"2":{"24":2,"39":1,"65":2,"67":2,"107":2,"289":1,"292":1,"293":1,"294":1}}],["hutoolconvertermanager",{"2":{"37":1,"300":1}}],["hutool",{"0":{"300":1},"2":{"17":1,"37":3,"219":1,"287":1,"300":1}}],["e",{"2":{"272":6,"333":2}}],["else",{"2":{"250":2}}],["element",{"2":{"24":2,"65":1,"67":4,"121":1}}],["elementtype",{"2":{"17":2,"24":4,"121":4,"275":3}}],["evelyn",{"2":{"215":1}}],["eventlistener",{"2":{"35":1,"70":1}}],["eric",{"2":{"211":1}}],["empnames",{"2":{"175":3}}],["empmapper",{"2":{"131":2,"175":2}}],["emp>",{"2":{"131":4}}],["emp",{"2":{"131":6,"264":1,"265":1}}],["emps",{"2":{"131":6}}],["employees",{"2":{"102":1,"104":2,"106":3,"107":1}}],["employee>",{"2":{"102":1,"103":1,"104":1,"107":1}}],["employee",{"2":{"102":3,"103":2,"104":1,"107":1}}],["empty",{"2":{"68":1}}],["emptymap",{"2":{"68":1,"82":1,"277":1}}],["entity",{"2":{"248":2}}],["entry",{"2":{"21":1}}],["enablecrane4j",{"2":{"223":1,"236":1,"304":2}}],["enableclearcache",{"2":{"180":1}}],["enablecache",{"2":{"79":2}}],["enable",{"2":{"152":2,"239":2,"240":1,"241":1,"245":1,"247":2}}],["enablenull",{"2":{"117":3}}],["enname",{"2":{"61":1}}],["enumcontainer",{"2":{"282":2}}],["enumcontainerbuilder",{"2":{"58":1}}],["enumvalue",{"2":{"223":1}}],["enumkey",{"2":{"223":1,"273":1,"274":1,"334":1}}],["enums",{"2":{"60":1,"61":3,"244":1,"257":1}}],["enum",{"2":{"51":1,"58":2,"59":2,"60":2,"61":1,"243":1,"244":3,"256":1,"258":1,"274":1,"282":1}}],["equals",{"2":{"21":1,"80":1,"117":3,"254":1}}],["excel",{"2":{"189":1}}],["exchange",{"2":{"184":5}}],["excludeclasses",{"2":{"50":1,"60":1}}],["exclude",{"2":{"49":2}}],["excludeopeator",{"2":{"28":1}}],["excludes",{"2":{"28":1,"124":1,"153":1,"162":1,"167":2}}],["ex",{"2":{"162":2}}],["extension",{"2":{"157":2,"164":2,"176":1,"177":2,"308":2}}],["extends",{"2":{"16":2,"24":1,"71":1,"121":1}}],["expect",{"2":{"117":3}}],["expression",{"2":{"111":1}}],["expiretime",{"2":{"16":1}}],["expire",{"2":{"10":2}}],["expirationtime",{"2":{"9":3,"75":1,"79":1,"179":1}}],["exampleservice",{"2":{"132":1}}],["exampleapplication",{"2":{"28":1}}],["example",{"2":{"28":2,"33":2,"50":1,"60":1,"69":1,"148":5}}],["execution",{"2":{"331":1}}],["executeordered",{"2":{"128":2,"147":1}}],["executeifmatchallgroups",{"2":{"124":1}}],["executeifmatchanygroups",{"2":{"124":1}}],["executeifnonematchanygroups",{"2":{"124":1}}],["execute",{"2":{"33":2,"124":1,"131":1,"147":1,"254":1,"285":1,"286":1,"313":1,"315":1,"321":1,"323":1,"329":2,"330":1}}],["executeasync",{"2":{"4":1,"147":1}}],["executortype",{"2":{"3":1,"5":1,"30":1,"129":1,"132":1,"154":2,"162":1,"264":1}}],["executor",{"2":{"1":9,"154":1,"285":2,"289":1}}],["lkml",{"2":{"211":1}}],["last",{"2":{"157":3,"164":2,"177":2,"307":1,"308":2,"316":1,"317":2,"324":1,"325":2}}],["lambda",{"0":{"68":1},"2":{"68":3,"282":1}}],["lambdacontainer",{"2":{"40":1}}],["lombok",{"2":{"271":2,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1}}],["lombk",{"2":{"161":1}}],["loadingcache",{"2":{"216":1,"217":1}}],["load",{"2":{"60":1,"244":1}}],["long",{"2":{"16":1}}],["lts",{"2":{"228":1}}],["lt",{"2":{"44":1,"73":4,"140":1,"178":1,"199":2}}],["linux",{"2":{"185":2,"210":6,"211":2,"212":1}}],["linkedhashmap",{"2":{"31":2}}],["linkedblockingqueue",{"2":{"1":1}}],["lifecycle",{"2":{"19":1,"20":4,"302":1}}],["listperson",{"2":{"333":2,"334":1}}],["listbytypeandid",{"2":{"278":3}}],["listbytypeandids",{"2":{"277":2,"279":1}}],["listbyids",{"2":{"31":1,"40":1,"56":1,"79":3,"131":4,"151":2,"155":2,"265":3,"267":2,"273":4,"274":4,"287":5,"333":1,"334":1}}],["listorder",{"2":{"272":1,"273":1}}],["listuseinfo",{"2":{"260":1}}],["listuserinfos",{"2":{"260":1,"261":2}}],["listusers",{"2":{"260":1,"261":2,"262":2}}],["listuser",{"2":{"77":2,"151":3,"267":2,"268":1}}],["listuseragenamebyids",{"2":{"73":1}}],["listusermapbyids",{"2":{"73":1}}],["listuserbydeptids",{"2":{"73":1}}],["listuserbydeptid",{"2":{"73":1}}],["listuserbyids",{"2":{"73":1}}],["listfoo",{"2":{"252":1}}],["liststudent",{"2":{"129":1,"264":1}}],["listitembyidsandtypes",{"2":{"74":1}}],["listinternaluserbyids",{"2":{"31":1}}],["listdicts",{"2":{"24":1}}],["list",{"2":{"3":2,"4":1,"9":2,"13":2,"14":2,"24":1,"25":1,"41":1,"42":1,"44":3,"45":1,"56":1,"71":3,"73":10,"74":2,"75":1,"77":4,"102":1,"103":2,"104":1,"105":1,"106":1,"107":1,"110":1,"119":2,"123":1,"124":2,"129":2,"131":3,"132":2,"140":4,"145":3,"147":1,"149":1,"150":1,"151":9,"152":1,"153":1,"154":1,"155":1,"175":1,"252":1,"257":1,"260":4,"261":4,"264":2,"265":2,"267":4,"268":5,"271":1,"272":6,"273":3,"274":3,"275":1,"277":2,"285":1,"287":1,"313":1,"314":2,"315":2,"321":1,"322":2,"323":2,"329":1,"330":1,"333":3,"334":2}}],["k6",{"2":{"194":1}}],["k",{"2":{"16":6}}],["k>",{"2":{"16":4,"279":3}}],["keytriggeroperation>",{"2":{"124":1}}],["keytriggeroperation",{"2":{"121":1,"229":1}}],["keytype",{"2":{"42":1,"45":1,"74":1,"90":3,"92":2,"93":1,"161":2,"162":1}}],["keydesc",{"2":{"42":1,"45":2,"46":2,"74":1,"91":1,"92":6,"93":3,"94":1}}],["keyresolver",{"2":{"38":1,"91":1,"94":1,"95":2}}],["keys",{"2":{"9":1,"20":1,"68":2,"73":4,"74":1,"118":4,"179":1,"180":1,"228":1}}],["key",{"0":{"42":1,"249":1,"303":1},"2":{"5":1,"6":2,"7":1,"9":3,"13":3,"14":3,"16":8,"17":2,"21":3,"24":3,"25":1,"27":3,"30":1,"31":3,"38":2,"39":1,"40":1,"43":1,"45":1,"49":1,"58":3,"59":6,"61":1,"65":2,"67":2,"69":2,"72":5,"73":9,"80":7,"84":3,"86":4,"88":3,"89":1,"90":7,"92":3,"93":1,"94":2,"104":2,"110":2,"111":8,"114":4,"117":5,"118":3,"133":2,"138":1,"139":2,"155":2,"161":4,"162":1,"178":5,"179":2,"180":1,"221":2,"222":2,"224":1,"232":1,"249":4,"254":2,"257":2,"258":2,"276":1,"277":2,"278":3,"282":3,"283":2,"289":6,"331":1,"333":3}}],["方法等多种数据源",{"2":{"332":1}}],["方法即可触发填充",{"2":{"329":1}}],["方法获取缓存的",{"2":{"296":1}}],["方法配置为数据源容器",{"2":{"287":1}}],["方法和常量等数据源创建容器",{"2":{"282":1}}],["方法中添加断点",{"2":{"289":1}}],["方法中",{"2":{"278":1}}],["方法返回后进行简单的填充",{"2":{"269":1}}],["方法返回的对象列表的",{"2":{"72":1}}],["方法也适配为容器",{"2":{"245":1}}],["方法缓存希望可以像",{"2":{"227":1}}],["方法时",{"2":{"221":1,"222":1}}],["方法参数上解析操作配置",{"2":{"155":1}}],["方法参数类型",{"2":{"72":1}}],["方法上添加",{"2":{"261":1}}],["方法上解析操作配置",{"2":{"155":1}}],["方法上",{"2":{"88":1}}],["方法上的配置进行填充",{"2":{"29":1}}],["方法设置过滤",{"2":{"86":1}}],["方法就不会被调用",{"2":{"78":1}}],["方法的返回值是",{"2":{"73":1}}],["方法的入参是一个函数式接口",{"2":{"67":1}}],["方法名",{"2":{"72":1}}],["方法必须有返回值",{"2":{"71":1}}],["方法可以是实例方法",{"2":{"71":1}}],["方法类型",{"2":{"71":1}}],["方法容器通常不直接创建使用",{"2":{"70":1}}],["方法容器指以实例方法或静态方法作为数据源的容器",{"2":{"70":1}}],["方法容器",{"0":{"70":1},"1":{"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1},"2":{"92":1,"265":1,"278":2}}],["方法数据源的函数式接口",{"2":{"68":1}}],["方法数据源容器以及自动填充切面中的各种属性操作功能",{"2":{"36":1}}],["方法数据源容器",{"2":{"9":1,"261":1}}],["方法或属性",{"2":{"67":1}}],["方法基于枚举类快速配置一个枚举数据源",{"2":{"58":1}}],["方法构建的特殊方法容器",{"2":{"53":1}}],["方法构建容器",{"2":{"48":1,"58":1,"59":1}}],["方法将常量类定义为一个数据源容器",{"2":{"48":1}}],["方法工厂",{"0":{"35":1}}],["方法添加其他类型的参数适配器",{"2":{"31":1}}],["方法后",{"2":{"29":1}}],["方法进行销毁",{"2":{"20":1}}],["方法进行初始化",{"2":{"20":1}}],["方法",{"2":{"16":1,"19":1,"37":1,"53":1,"79":1,"87":3,"103":1,"128":1,"161":1,"262":1,"271":2,"273":2,"286":1,"287":2,"289":1,"308":1,"311":1,"315":1,"317":1,"319":1,"323":1,"325":1,"328":1,"330":1}}],["定义一个用于解析",{"2":{"121":1}}],["定义一个条件注解",{"2":{"121":1}}],["定义一个缓存管理器实现类",{"2":{"16":1}}],["定义一个缓存实现类",{"2":{"16":1}}],["定义lambda容器",{"2":{"68":1}}],["定义枚举容器的命名空间",{"2":{"59":1,"72":1}}],["定义常量容器的命名空间",{"2":{"49":1}}],["定义你的自己的类型转换器",{"2":{"37":1}}],["定义注解处理器",{"2":{"24":1}}],["定义注解",{"2":{"24":1}}],["定义缓存配置",{"2":{"11":1}}],["假使你的汽车发动机汽缸密封圈爆掉了",{"2":{"212":1}}],["假设有以下",{"2":{"174":1}}],["假设我们有一个数据库表映射对象如下",{"2":{"169":1}}],["假设我们现在有",{"2":{"6":1}}],["假设",{"2":{"142":1,"256":1,"260":1}}],["假设通过",{"2":{"139":1}}],["假设存在以下键字段类型",{"2":{"43":1}}],["假如我们有一张字典表",{"2":{"24":1}}],["假如希望我们想要实现一个基于",{"2":{"16":1}}],["要怎么处理",{"2":{"331":1}}],["要谦虚和诚实",{"2":{"213":1}}],["要知道",{"2":{"212":1}}],["要解决的问题糊涂",{"2":{"210":1}}],["要么用自己的方式对付他们",{"2":{"209":1}}],["要么就是测试你是否真会搞砸的心理专家",{"2":{"209":1}}],["要求道歉",{"2":{"209":1}}],["要求通过电子邮件回复是非常无礼的",{"2":{"188":1}}],["要得到一段相当精简的测试用例并不太容易",{"2":{"199":1}}],["要理解专家们所处的世界",{"2":{"198":1}}],["要向列表而不是其中的个别成员提问",{"2":{"186":1}}],["要一个一个地来",{"2":{"183":1}}],["要查询的字段",{"2":{"171":1,"173":1}}],["要令自定义注解解析器生效",{"2":{"121":1}}],["要扫描的包路径",{"2":{"50":1,"60":1}}],["要接入自定义的缓存",{"2":{"16":1}}],["要使用的缓存管理器",{"2":{"10":1}}],["自问写一份文件或加个常见问题",{"2":{"204":1}}],["自从本指南发布后",{"2":{"203":1}}],["自己定义一个提供者",{"2":{"54":1}}],["自动执行填充",{"2":{"315":1}}],["自动触发",{"2":{"257":1,"261":1}}],["自动生成表查询数据源",{"2":{"216":1}}],["自动校正选项",{"2":{"189":1}}],["自动从",{"2":{"166":1}}],["自动构建数据源容器",{"2":{"163":1}}],["自动类型推断",{"0":{"150":1}}],["自动类型转换",{"0":{"136":1}}],["自动推断类型",{"0":{"106":1}}],["自动注册",{"0":{"82":1,"167":1}}],["自动填充方法入参",{"2":{"286":1}}],["自动填充方法返回值",{"2":{"286":1,"314":1,"322":1}}],["自动填充方法参数时",{"2":{"233":1}}],["自动填充时",{"2":{"229":1,"236":1}}],["自动填充将会生效",{"2":{"159":1}}],["自动填充",{"0":{"129":1,"148":1,"247":1,"314":1,"322":1},"1":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1},"2":{"34":1,"77":1,"124":1,"162":1,"286":1}}],["自动回收",{"2":{"14":1}}],["自定义注解",{"2":{"121":1}}],["自定义注解处理器",{"0":{"24":1}}],["自定义条件",{"0":{"121":1}}],["自定义策略",{"0":{"98":1,"145":1}}],["自定义解析器",{"0":{"95":1}}],["自定义容器",{"0":{"56":1}}],["自定义类型转换",{"2":{"37":1}}],["自定义缓存",{"0":{"16":1}}],["失效",{"2":{"15":1}}],["并决定在保留",{"2":{"332":1}}],["并实现了基于切面的自动填充功能",{"2":{"332":1}}],["并实现各种增删改查方法",{"2":{"16":1}}],["并最终将数据源中的",{"2":{"331":1}}],["并最终分发给操作执行器",{"2":{"331":1}}],["并完成具体的字段映射",{"2":{"331":1}}],["并完成自动注册",{"2":{"166":1}}],["并引入",{"2":{"308":1}}],["并引用相关的若干行",{"2":{"195":1}}],["并没有注册异步操作执行器",{"2":{"295":1}}],["并填充",{"2":{"287":2}}],["并根据操作配置完成所有操作",{"2":{"285":1}}],["并解析",{"2":{"285":1}}],["并获得操作配置",{"2":{"283":1}}],["并直接设置值",{"2":{"277":1}}],["并添加到",{"2":{"277":1}}],["并添加了键值解析器",{"2":{"232":1}}],["并添加了少量新功能",{"2":{"224":1,"225":1}}],["并添加了一些新功能",{"2":{"221":1}}],["并添加了一些新的功能",{"2":{"219":1}}],["并找到对应的商品信息",{"2":{"272":1}}],["并尝试通过容器获取对应的数据",{"2":{"249":1}}],["并与键值解析器进行整合",{"2":{"232":1}}],["并与键值对应",{"2":{"173":1}}],["并额外支持了常量和键值两种数据源容器的选项式配置",{"2":{"229":1}}],["并优化了一些功能的使用方式",{"2":{"228":1}}],["并修复了一些问题",{"2":{"227":1}}],["并重构",{"2":{"224":1}}],["并发环境下获取容器可能导致类转换异常",{"2":{"224":1}}],["并调整了关于枚举和常量扫描相关的功能",{"2":{"223":1}}],["并统一为所有装配操作提供一对一",{"2":{"216":1}}],["并附上一个链接一点用都没有",{"2":{"213":1}}],["并邀请他们与我共同探讨",{"2":{"211":1}}],["并声称如果你不想帮助用户就闭嘴",{"2":{"209":1}}],["并再一次向他们表示感谢",{"2":{"204":1}}],["并描述为什么它们不起作用",{"2":{"194":1}}],["并提供新手帮助",{"2":{"185":1}}],["并提取",{"2":{"41":1}}],["并不难",{"2":{"189":1}}],["并不会实际上的清除",{"2":{"180":1}}],["并不总是必须的",{"2":{"71":1}}],["并手动完成注册",{"2":{"121":1}}],["并让它们以特定的顺序组合",{"2":{"113":1}}],["并通过",{"2":{"107":1}}],["并通过方法进行填充",{"2":{"25":1}}],["并指定使用你自己的解析器",{"2":{"95":1}}],["并指定要绑定的目标类中的指定方法",{"2":{"79":1}}],["并将此逻辑从主业务流程中剥离",{"2":{"334":1}}],["并将所有属性值组装为集合",{"2":{"140":1}}],["并将首个非空值作为实际的",{"2":{"94":1}}],["并将",{"2":{"92":1}}],["并将其部分字段填充到最终返回的对象上",{"2":{"333":1}}],["并将其上传到",{"2":{"332":1}}],["并将其填充到",{"2":{"311":1,"319":1,"328":1}}],["并将其注册到全局配置中",{"2":{"310":1,"318":1,"327":1}}],["并将其注册到全局配置对象中",{"2":{"310":1,"318":1,"327":1}}],["并将其注册为一个方法容器",{"2":{"71":1}}],["并将其作为数据源对象返回",{"2":{"69":1}}],["并将其交给",{"2":{"65":1}}],["并将其声明为",{"2":{"56":1}}],["并将其赋值给目标对象的指定属性",{"2":{"41":1}}],["并将其增量添加到缓存中",{"2":{"7":1}}],["并如何对",{"2":{"80":1}}],["并按字典值分组",{"2":{"334":1}}],["并按",{"2":{"265":3,"272":1}}],["并按用户的所属部门",{"2":{"73":1}}],["并按用户",{"2":{"73":1}}],["并按照字典项id分组",{"2":{"24":1}}],["并创建了一个根据用户id返回userdo集合的数据源容器",{"2":{"56":1}}],["并赋值给",{"2":{"44":1,"140":1}}],["并返回按",{"2":{"80":1,"279":1}}],["并返回按key分组的数据源对象",{"2":{"68":1}}],["并返回按客户组别",{"2":{"40":1}}],["并返回自定义的实现",{"2":{"36":1}}],["并配合键值解析器",{"2":{"38":1}}],["并在生产环境中广泛使用",{"2":{"332":1}}],["并在对应回调方法中添加逻辑",{"2":{"250":1}}],["并在标题中包含已修正",{"2":{"204":1}}],["并在这次填充中替换原本通过命名空间引用的的",{"2":{"31":1}}],["并在",{"2":{"28":1}}],["并驱动它在处理器链上流转",{"2":{"22":1}}],["并且成功将",{"2":{"250":1,"251":1,"255":1,"259":1,"263":1,"266":1,"276":1}}],["并且添加了较多新特性",{"2":{"222":1}}],["并且添加相关的标签",{"2":{"184":1}}],["并且调整了",{"2":{"218":1}}],["并且调整了一部分",{"2":{"217":1}}],["并且为维修付费",{"2":{"212":1}}],["并且赞赏这次良好的讨论经历的时候",{"2":{"211":1}}],["并且他没有把问题的责任推到别人头上",{"2":{"211":1}}],["并且未指出你有搞砸的地方",{"2":{"209":1}}],["并且一定要提到你认为哪一部分特别需要关注以及为什么",{"2":{"199":1}}],["并且通常对病患标记都有站得住脚的怀疑",{"2":{"208":1}}],["并且通常在讨论串外就看不到里面的内容",{"2":{"187":1}}],["并且通过缓存等机制避免运行时的额外判断逻辑",{"2":{"95":1}}],["并且在",{"2":{"169":1}}],["并且在将其通过操作门面注册后",{"2":{"52":1}}],["并且更加灵活",{"2":{"155":1}}],["并且更容易集中管理配置",{"2":{"33":1}}],["并且两者可以同时存在",{"2":{"141":1}}],["并且",{"2":{"78":1,"156":1,"209":1,"335":1}}],["并且需要按",{"2":{"71":2,"75":1}}],["并且实现",{"2":{"16":1}}],["并且标记为过期",{"2":{"15":1}}],["由热情的软件爱好者",{"2":{"212":1}}],["由于缺少依赖注入和自动装配功能的支持",{"2":{"306":1}}],["由于查询到所需的订单数据后",{"2":{"272":1}}],["由于查询出的数据需要根据用户指定的外键字段进行分组",{"2":{"173":1}}],["由于操作配置对象",{"2":{"248":1}}],["由于兼容性问题",{"2":{"239":1}}],["由于这样问是画蛇添足",{"2":{"201":1}}],["由于以上这点似乎让许多人觉得难以配合",{"2":{"194":1}}],["由于可以同时指定查询的条件字段和查询字段",{"2":{"169":1}}],["由于序列化过程中的填充也算是一种自动填充",{"2":{"162":1}}],["由于序列化为",{"2":{"161":1}}],["由于默认使用了",{"2":{"161":1}}],["由于",{"2":{"151":1,"156":1,"161":1}}],["由用户自行决定要如何返回数据源",{"2":{"80":1}}],["由",{"2":{"14":1}}],["由主线程进行继续执行任务",{"2":{"1":1}}],["随着时间推移",{"2":{"332":1}}],["随后",{"2":{"265":1}}],["随后将目标对象的属性映射到参数对象中",{"2":{"92":1}}],["随机设置一个性别编码",{"2":{"257":1}}],["随",{"2":{"14":1}}],["组装数据",{"2":{"265":1}}],["组别的操作",{"2":{"252":2}}],["组别的装配",{"2":{"153":1}}],["组成",{"2":{"212":1}}],["组中生效",{"2":{"123":2}}],["组合式",{"2":{"287":2}}],["组合式配置",{"0":{"258":1}}],["组合将会产生不同的效果",{"2":{"133":1}}],["组合",{"0":{"113":1}}],["组合注解",{"0":{"17":1},"2":{"287":1}}],["组件的回调方法",{"2":{"250":1}}],["组件的回调接口",{"0":{"18":1},"1":{"19":1,"20":1,"21":1},"2":{"80":1,"89":1,"113":1,"254":1}}],["组件实现",{"2":{"14":1}}],["组操作",{"2":{"6":6}}],["基本上他是对的",{"2":{"206":1}}],["基本只在测试用例中使用",{"2":{"37":1}}],["基本概念",{"0":{"280":1},"1":{"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1},"2":{"0":1,"84":1,"129":1,"131":1,"132":1,"154":1,"295":1,"305":1,"336":1}}],["基于默认配置创建一个操作门面",{"2":{"326":1}}],["基于操作执行器或",{"2":{"286":1}}],["基于函数式接口创建一个容器",{"2":{"282":1}}],["基于枚举类创建一个容器",{"2":{"282":1}}],["基于新特性添加基于接口代理的填充方法",{"2":{"219":1}}],["基于上述配置创建一个jsonnodeautooperatemodule",{"2":{"160":1}}],["基于方法填充",{"2":{"155":1}}],["基于方法句柄",{"2":{"36":1}}],["基于接口填充",{"2":{"110":1}}],["基于此",{"2":{"37":1}}],["基于原生反射的普通反射属性操作器",{"2":{"36":1}}],["基于自定义容器的装配操作注解处理器",{"2":{"24":1}}],["基于这套机制已经提供了三种实现",{"2":{"19":1}}],["基于已有的",{"2":{"16":1}}],["基于",{"2":{"14":3,"16":1,"36":1,"37":2,"52":1,"133":2,"175":1,"220":1,"227":1,"236":1,"282":1,"286":1,"287":1}}],["描述目标而不是过程",{"0":{"196":1}}],["描述问题的最终状态",{"2":{"204":1}}],["描述问题症状而非你的猜测",{"0":{"194":1}}],["描述问题发生的环境",{"2":{"190":1}}],["描述最近做过什么可能相关的硬件或软件变更",{"2":{"190":1}}],["描述在提问前为确定问题而采取的诊断步骤",{"2":{"190":1}}],["描述在提问前你是怎样去研究和理解这个问题的",{"2":{"190":1}}],["描述",{"2":{"14":1}}],["属性上",{"2":{"311":1,"319":1,"328":1}}],["属性对应的操作配置",{"2":{"289":1}}],["属性对应的字段映射配置",{"2":{"84":1}}],["属性可以指定本次填充操作的执行器",{"2":{"154":1}}],["属性可以指定操作值",{"2":{"126":1}}],["属性可以设置本次执行的操作组",{"2":{"153":1}}],["属性默认支持链式操作符",{"2":{"151":1}}],["属性默认支持使用",{"2":{"88":1}}],["属性简化配置",{"2":{"134":1,"135":1,"137":1,"138":1}}],["属性到键",{"0":{"138":1},"2":{"133":1}}],["属性到属性",{"0":{"134":1},"1":{"135":1,"136":1},"2":{"133":1}}],["属性来简化配置",{"2":{"133":1}}],["属性来指定仅执行",{"2":{"124":1}}],["属性来指定分组",{"2":{"123":1}}],["属性来指定要使用的处理器",{"2":{"107":1}}],["属性配置将决定它们之间将如何映射字段值",{"2":{"133":1}}],["属性配合使用",{"2":{"49":1}}],["属性设置为",{"2":{"112":1}}],["属性不为null时才应用操作",{"2":{"118":1}}],["属性不为空才应用操作",{"2":{"118":1}}],["属性不为空时才应用操作",{"2":{"110":1}}],["属性不是必须的",{"2":{"89":1}}],["属性为",{"2":{"110":1,"116":1,"117":4}}],["属性为空时",{"2":{"254":1}}],["属性为空",{"2":{"94":2}}],["属性进行分组",{"2":{"172":1,"173":1}}],["属性进行指定",{"2":{"107":1}}],["属性进行赋值",{"2":{"96":1,"143":1}}],["属性的填充",{"2":{"254":1}}],["属性的类型",{"2":{"106":2}}],["属性的递归填充",{"2":{"21":1}}],["属性显式指定需要拆卸的字段",{"2":{"104":1}}],["属性显式的进行方法绑定",{"2":{"71":1}}],["属性里引用一些配置文件属性",{"2":{"99":1}}],["属性时",{"2":{"96":1,"143":1,"221":1,"222":1}}],["属性映射",{"2":{"283":1}}],["属性映射应当支持使用",{"2":{"223":1}}],["属性映射模板",{"0":{"141":1}}],["属性映射到目标对象的",{"2":{"96":1,"143":1}}],["属性映射策略",{"0":{"96":1,"143":1},"1":{"97":1,"98":1,"144":1,"145":1}}],["属性映射为",{"2":{"44":1,"140":1}}],["属性值不为空",{"2":{"289":1}}],["属性值映射过来",{"2":{"97":1,"144":1}}],["属性值为",{"2":{"97":1,"144":1}}],["属性值",{"2":{"94":1,"140":1}}],["属性值中指定分隔符",{"2":{"93":1}}],["属性值作为key",{"2":{"48":1}}],["属性名2",{"2":{"92":1}}],["属性名1",{"2":{"92":1}}],["属性名和属性值",{"2":{"49":1}}],["属性指向的数据源容器",{"2":{"84":1}}],["属性指向的属性",{"2":{"84":1}}],["属性指定装配处理器为一对多装配处理器",{"2":{"292":1,"293":1,"294":1}}],["属性指定操作所属的组",{"2":{"122":1}}],["属性指定",{"2":{"77":1,"151":1,"267":1}}],["属性指定要使用的分隔符",{"2":{"45":1}}],["属性指定要使用的管理器",{"2":{"13":1}}],["属性",{"2":{"71":1,"73":1,"94":2,"106":2,"123":4,"126":1,"131":1,"133":3,"140":1,"142":1,"150":2,"152":1,"161":1,"228":1,"289":1,"334":1}}],["属性中的嵌套对象",{"2":{"142":1}}],["属性中使用了",{"2":{"134":1}}],["属性中",{"2":{"55":1}}],["属性中指定要使用的处理器",{"2":{"39":1}}],["属性或方法上指定触发条件时",{"2":{"111":1}}],["属性或",{"2":{"39":1}}],["属性并注册你的管理器",{"2":{"13":1}}],["后处理器初始化后才加载",{"2":{"298":1}}],["后处理器",{"2":{"298":1}}],["后一个问题源自于",{"2":{"211":1}}],["后注解",{"2":{"161":1}}],["后续将会围绕其作出修改",{"2":{"270":1}}],["后续直接使用即可",{"2":{"159":1}}],["后续会介绍",{"2":{"85":1}}],["后者一般在与",{"2":{"146":1}}],["后面的映射字段会覆盖已有的值",{"2":{"141":1}}],["后",{"2":{"13":1,"86":1,"138":1,"149":1,"221":1,"222":1,"224":1,"225":1,"234":1,"236":1,"296":1,"334":1}}],["托管即可",{"2":{"13":1}}],["扩展的引入方式",{"2":{"218":1}}],["扩展中",{"2":{"53":1}}],["扩展",{"2":{"12":1}}],["扩展插件",{"2":{"12":1}}],["具体参照",{"2":{"303":1}}],["具体参见上文的安装步骤",{"2":{"161":1}}],["具体参见",{"2":{"152":1,"153":1,"279":1,"290":1,"292":1,"293":1,"294":1,"295":1,"302":1,"305":1}}],["具体参见后文的",{"2":{"287":1}}],["具体参见后文",{"2":{"136":1,"140":1,"142":1,"283":1,"286":1}}],["具体请参见后文",{"2":{"287":1}}],["具体配置可以参见",{"2":{"162":1}}],["具体配置如下",{"2":{"6":1}}],["具体而言",{"2":{"140":1}}],["具体内容参见",{"2":{"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"232":1,"233":1,"236":1}}],["具体内容可以参见",{"2":{"257":3,"261":3}}],["具体内容可以参考",{"2":{"84":1}}],["具体内容可参见",{"2":{"92":1,"113":1,"250":1}}],["具体内容请参见文档",{"2":{"34":1}}],["具体可参见后文",{"2":{"56":1,"75":1}}],["具体可参见",{"2":{"42":1,"45":1,"74":1,"77":1,"86":1,"89":1,"131":2,"132":2,"254":2,"278":2,"310":1,"318":1,"327":1}}],["具体可以参见",{"2":{"12":1,"80":1}}],["具体代码如下",{"2":{"16":1}}],["具体来说",{"2":{"16":1}}],["触发操作",{"0":{"146":1,"329":1},"1":{"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1},"2":{"286":1}}],["触发填充操作",{"2":{"131":1,"132":1,"247":1,"254":1,"257":1,"261":1,"266":1,"305":1}}],["触发填充",{"0":{"312":1,"320":1},"1":{"313":1,"314":1,"321":1,"322":1},"2":{"33":1,"34":1}}],["触发",{"2":{"12":1,"286":1}}],["实体类与数据结构",{"0":{"271":1}}],["实际场景中需要的可能数据远远不止这些",{"2":{"272":1}}],["实际场景中",{"2":{"43":1}}],["实际上判断条件是",{"2":{"117":1}}],["实际上就是你声明的",{"2":{"67":1}}],["实际上",{"2":{"17":1}}],["实际上总共需要完成",{"2":{"6":1}}],["实例中",{"2":{"158":1,"159":1}}],["实例",{"2":{"16":1}}],["实现代码",{"0":{"272":1}}],["实现的缓存管理器",{"2":{"233":1}}],["实现的缓存对象",{"2":{"12":1}}],["实现的",{"2":{"150":1}}],["实现注解解析器",{"2":{"121":1}}],["实现自定义的拆卸操作处理器",{"2":{"107":1}}],["实现自己的条件逻辑",{"2":{"121":1}}],["实现自己的增删改查方法",{"2":{"16":1}}],["实现自己的自定义缓存对象",{"2":{"16":1}}],["实现类同样会获得此方法",{"2":{"71":1}}],["实现类似的功能",{"2":{"17":1}}],["实现从而扩展这部分功能",{"2":{"70":1}}],["实现了扫描和适配的功能",{"2":{"70":1}}],["实现对应的注解处理器",{"2":{"24":1}}],["实现抽象方法",{"2":{"16":1}}],["实现",{"2":{"12":1,"14":2,"22":1,"31":1,"35":1,"36":2,"37":2,"92":1,"93":1,"106":1,"136":1,"148":1,"286":1,"287":1,"302":1}}],["默认的表达式引擎是",{"2":{"152":1}}],["默认的四种实现调用顺序如下",{"2":{"35":1}}],["默认会将",{"2":{"117":1}}],["默认内置策略的名称皆已被声明为",{"2":{"97":1}}],["默认取",{"2":{"94":1}}],["默认",{"2":{"73":1}}],["默认值",{"2":{"49":1,"51":1,"59":1,"61":1,"72":1,"79":1}}],["默认为",{"2":{"46":1,"239":1,"240":1,"241":1,"245":1}}],["默认情况下排除该属性",{"2":{"49":1}}],["默认情况下",{"2":{"45":1,"86":1,"117":1,"119":1,"171":1,"295":1}}],["默认支持自动方法返回值与方法入参",{"2":{"247":1}}],["默认支持",{"2":{"44":2,"152":1}}],["默认支持的操作过滤",{"2":{"24":1}}],["默认将会使用一对一装配处理器",{"2":{"39":1}}],["默认提供了三种策略",{"2":{"97":1,"144":1}}],["默认提供了三种处理器",{"2":{"38":1}}],["默认提供了",{"2":{"54":1,"121":1}}],["默认提供了以下几个实现",{"2":{"36":1}}],["默认提供了下述管理器实现",{"2":{"14":1}}],["默认提供了两种类型的缓存管理器",{"2":{"12":1}}],["默认使用",{"2":{"12":1,"116":1}}],["默认已经提供了一个异步执行器",{"2":{"0":1}}],["除非结论真的很有技术含量",{"2":{"204":1}}],["除非他个人觉得问题",{"2":{"204":1}}],["除非你想得到是或否类型的回答",{"2":{"201":1}}],["除非你能提供解决问题的源代码补丁",{"2":{"192":1}}],["除非你非常",{"2":{"192":1}}],["除非你只是对性而不是对答案感兴趣",{"2":{"189":1}}],["除非你只想在该讨论串当前活跃的人群中提问",{"2":{"187":1}}],["除非你认为回复的信息可能比较敏感",{"2":{"188":1}}],["除此之外不需要进行额外的配置",{"2":{"161":1}}],["除了基于",{"2":{"257":1,"261":1}}],["除了基于分组和条件填充外",{"2":{"254":1}}],["除了有礼貌和有内涵以外",{"2":{"204":1}}],["除了普通枚举外",{"2":{"59":1}}],["除了可以将",{"2":{"31":1}}],["除上述情况外",{"2":{"34":1}}],["除针对全局容器的生命周期处理器外",{"2":{"20":1}}],["除直接移除缓存外",{"2":{"15":1}}],["除通过上述方式自动配置缓存外",{"2":{"11":1}}],["除注解外",{"2":{"10":1}}],["gitee",{"2":{"332":1}}],["g2",{"2":{"252":1}}],["g1",{"2":{"252":5,"253":2}}],["grommicking",{"2":{"211":2}}],["grouped",{"2":{"277":2}}],["groupid",{"2":{"216":1}}],["groupid>junit",{"2":{"308":1}}],["groupid>org",{"2":{"177":1,"308":3,"317":5,"325":1}}],["groupid>com",{"2":{"157":2,"164":1}}],["groupid>cn",{"2":{"157":1,"164":1,"177":1,"308":1,"317":1,"325":1}}],["groupid>",{"2":{"157":3,"164":2,"177":2,"308":5,"317":6,"325":2}}],["group",{"2":{"185":1,"277":2}}],["groupby",{"2":{"40":1}}],["groups",{"2":{"24":3,"122":1,"123":6,"124":3,"252":3,"253":2}}],["google",{"2":{"181":4,"183":1,"184":3,"206":1,"210":1,"211":1,"213":1}}],["global",{"2":{"178":1}}],["globalconfiguration",{"2":{"24":2}}],["generalrediscachemanager",{"2":{"178":3}}],["gendermap",{"2":{"333":2}}],["genderenum>",{"2":{"333":1}}],["genderenum",{"2":{"282":3,"333":5,"334":1}}],["gendername=",{"2":{"257":2}}],["gendername",{"2":{"250":2,"256":2,"257":3,"258":3,"334":3}}],["gendercode=0",{"2":{"257":1}}],["gendercode=1",{"2":{"257":1}}],["gendercode",{"2":{"250":1,"256":3,"257":4,"258":1,"333":2,"334":1}}],["gender",{"2":{"51":2,"61":4,"138":10,"139":3,"256":3,"257":4,"258":5,"333":2}}],["getgendercode",{"2":{"333":1}}],["getgroupid",{"2":{"40":1}}],["getitems",{"2":{"272":2}}],["getid",{"2":{"20":1,"24":1,"31":1,"56":1,"80":1,"87":1,"94":1,"265":6,"272":4,"277":6,"279":1}}],["getordertype",{"2":{"272":1}}],["getparentids",{"2":{"265":1}}],["getparentid",{"2":{"265":3}}],["getpropertyoperator",{"2":{"36":2}}],["getmapping",{"2":{"161":1}}],["gettheassociatedsource",{"2":{"289":1}}],["gettype",{"2":{"272":2,"277":2}}],["gettree",{"2":{"132":1}}],["getter",{"2":{"9":1,"20":1,"36":1,"51":1,"58":1,"59":1,"61":1,"87":3,"88":1,"103":1,"145":1,"161":1,"179":1,"221":1,"222":1,"256":1,"258":1,"271":2,"277":2,"278":1,"289":1,"308":1,"311":1,"315":1,"317":1,"319":1,"323":1,"325":1,"328":1,"330":1}}],["getemployees",{"2":{"103":1}}],["getkey",{"2":{"94":1}}],["getusernamebyid",{"2":{"73":1}}],["getuserid",{"2":{"31":1,"94":1}}],["getname",{"2":{"72":1,"265":3,"272":3,"277":2,"282":1,"333":1}}],["getnamespace",{"2":{"11":1,"56":1,"82":1}}],["getannotation",{"2":{"24":3,"67":1}}],["getsourcesfromcontainer",{"2":{"289":1}}],["getstudents",{"2":{"257":2}}],["getstandardannotation",{"2":{"24":1}}],["getsimplename",{"2":{"1":1}}],["getcustomerid",{"2":{"272":2}}],["getcontainer",{"2":{"179":2,"279":1}}],["getconditiondescriptor",{"2":{"121":1}}],["getcode",{"2":{"58":1,"80":1,"272":1,"282":1,"333":1}}],["getcache",{"2":{"15":1}}],["getcachemanager",{"2":{"11":1,"179":1,"180":1}}],["getclass",{"2":{"1":1}}],["get",{"2":{"9":1,"16":2,"20":1,"56":1,"67":1,"82":1,"179":3,"265":2,"272":3,"277":4,"282":1,"296":1,"333":1}}],["getbeanoperationexecutor",{"2":{"285":1}}],["getbeanoperationexecutormap",{"2":{"1":1}}],["getbeanoperationsparser",{"2":{"283":1,"285":1}}],["getbean",{"2":{"4":1,"16":1,"19":1,"24":1,"28":1,"35":1,"67":1,"121":1,"128":1,"131":1,"145":1,"147":1,"168":1,"254":1,"257":1}}],["getfoos",{"2":{"314":2,"315":2,"322":2,"323":2}}],["getfoolist",{"2":{"124":1,"149":3,"150":2}}],["getfoo",{"2":{"3":2,"152":1,"153":1,"154":1,"161":1}}],["getruntime",{"2":{"1":2}}],["gt",{"2":{"44":1,"73":4,"126":2,"140":1,"178":1,"189":2,"199":2}}],["guavacontainercache",{"2":{"14":1}}],["guavacachemanager",{"2":{"10":1,"12":1,"13":1,"14":2,"15":2}}],["guava",{"0":{"300":1},"2":{"12":3,"14":2,"216":1,"217":1,"235":1,"236":1,"300":1}}],["gc",{"2":{"12":1,"14":1}}],["容器的生命周期",{"2":{"302":1}}],["容器的命名空间必须是一个非空字符串",{"2":{"82":1}}],["容器的命名空间",{"2":{"10":1}}],["容器可以做一些自定义的初始化",{"0":{"302":1}}],["容器里面注册了一个配置对象",{"2":{"281":1}}],["容器缓存配置",{"0":{"246":1}}],["容器缓存的数据为",{"2":{"48":1,"58":1,"59":1}}],["容器注册",{"2":{"233":1}}],["容器注册前回调",{"2":{"19":1}}],["容器会通过从缓存管理器获取的缓存对象存取数据",{"2":{"179":1}}],["容器时",{"2":{"179":1}}],["容器在读写数据时",{"2":{"179":1}}],["容器有且仅有一个可用的",{"2":{"159":1}}],["容器返回的数据源对象是",{"2":{"142":1}}],["容器对应的key类型为integer集合",{"2":{"90":1}}],["容器中声明一个默认配置类",{"2":{"309":1}}],["容器中存在对应的",{"2":{"299":1}}],["容器中存在",{"2":{"298":1,"299":1}}],["容器中存在多个",{"2":{"159":1}}],["容器中获取",{"2":{"95":1}}],["容器中",{"2":{"79":1}}],["容器中的",{"2":{"79":1}}],["容器中创建对应的",{"2":{"28":1}}],["容器指以",{"2":{"68":1}}],["容器管理",{"2":{"65":1}}],["容器管理即可",{"2":{"16":1,"24":1,"98":1,"145":1,"309":1}}],["容器获取的情况下",{"2":{"95":1}}],["容器获取",{"2":{"65":1,"76":1,"83":1,"147":1}}],["容器获取操作门面",{"2":{"4":1,"19":1,"121":1,"128":1,"145":1}}],["容器提供者",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"53":1,"279":1}}],["容器",{"0":{"68":1,"242":1},"1":{"243":1,"244":1,"245":1,"246":1},"2":{"31":3}}],["容器生命周期接口",{"0":{"20":1}}],["容器生命周期处理器",{"0":{"19":1},"2":{"19":1}}],["容器销毁后回调",{"2":{"19":1}}],["容器创建后",{"2":{"19":1}}],["\\tkeydesc",{"2":{"278":1}}],["\\tkeytype",{"2":{"278":1}}],["\\tdict",{"2":{"277":1}}],["\\tdictvo",{"2":{"277":2}}],["\\tds",{"2":{"277":2}}],["\\tdept",{"2":{"265":2}}],["\\tgrouped",{"2":{"277":2}}],["\\tr",{"2":{"265":6}}],["\\tresults",{"2":{"265":1,"277":1}}],["\\tresultkey",{"2":{"261":1}}],["\\tresulttype",{"2":{"261":1}}],["\\treturn",{"2":{"82":1,"131":2,"132":1,"257":2,"277":2,"279":1}}],["\\tset",{"2":{"265":2,"277":2}}],["\\tsort",{"2":{"264":3}}],["\\t\\tcontainer",{"2":{"265":1}}],["\\tbindmethod",{"2":{"262":1}}],["\\tmap",{"2":{"265":4,"277":5}}],["\\tmale",{"2":{"256":1,"258":1}}],["\\tmethod",{"2":{"262":1,"278":1}}],["\\tnamespace",{"2":{"261":1}}],["\\tname",{"2":{"250":3}}],["\\tnew",{"2":{"24":1,"128":1}}],["\\tint",{"2":{"257":1}}],["\\tif",{"2":{"250":1}}],["\\tid",{"2":{"94":2}}],["\\tthirddepts",{"2":{"265":1}}],["\\ttargettype",{"2":{"278":1}}],["\\ttarget",{"2":{"262":1}}],["\\ttemplate",{"2":{"131":1}}],["\\ttype",{"2":{"74":1,"261":1}}],["\\tcachemanager",{"2":{"179":1}}],["\\tcrane4jtemplate",{"2":{"131":1}}],["\\tcontainer",{"2":{"89":1,"261":1,"264":3,"265":1,"279":1}}],["\\tlist",{"2":{"131":1,"265":1}}],["\\tpublic",{"2":{"82":1,"132":2,"260":2,"261":2,"265":1}}],["\\tprop",{"2":{"264":3,"265":1}}],["\\tprops",{"2":{"257":1,"258":1,"261":1,"262":1,"279":1}}],["\\tpropertymappingstrategy",{"2":{"46":1}}],["\\tprivate",{"2":{"42":1,"74":1,"250":4,"251":6,"252":6,"253":6,"254":6,"256":2,"257":2,"258":2,"260":6,"261":3,"262":3,"264":6,"265":7,"276":3,"277":9,"278":7,"279":3}}],["\\tfoo",{"2":{"80":1}}],["\\tfoolist",{"2":{"31":1}}],["\\t",{"2":{"10":2,"16":1,"19":1,"24":2,"31":1,"67":1,"82":1,"131":2,"132":5,"155":1,"179":1,"250":1,"251":3,"252":4,"253":3,"254":3,"256":1,"257":3,"258":1,"260":2,"261":6,"262":2,"264":2,"265":10,"277":6,"278":1,"279":2}}],["6",{"0":{"76":1,"141":1,"154":1,"229":1,"230":1,"231":1,"286":1,"315":1,"330":1},"2":{"9":1,"51":1,"64":1,"79":1,"86":1,"108":1,"181":1,"187":3,"211":1,"265":1,"317":1}}],["600",{"2":{"10":1}}],["60",{"2":{"6":2,"10":1}}],["jeff",{"2":{"208":1}}],["jetcache",{"2":{"9":1}}],["j",{"2":{"181":1}}],["js",{"2":{"142":1}}],["json",{"2":{"156":1,"161":6,"224":1,"271":1}}],["jsonnodepropertyoperator",{"2":{"160":2}}],["jsonnodeautooperatemodule",{"2":{"159":4,"160":3}}],["jsonnode",{"2":{"90":1,"156":1,"161":2}}],["jsonobject",{"2":{"25":1,"219":1}}],["join",{"2":{"46":1,"145":1}}],["jacksonjsonnodeassistant",{"2":{"160":1}}],["jackson",{"0":{"156":1},"1":{"157":1,"158":1,"159":1,"160":1,"161":1,"162":1},"2":{"38":2,"90":2,"156":2,"157":5,"161":1,"224":1}}],["javaoperateteamplte",{"2":{"254":1}}],["java8",{"2":{"239":1}}],["javamybatisplusquerycontainerprovider",{"2":{"168":1}}],["javamap",{"2":{"69":1}}],["javafoo",{"2":{"161":1}}],["javasimplecrane4jglobalconfiguration",{"2":{"98":1}}],["javacachemanager",{"2":{"179":1,"180":1}}],["javacontainer",{"2":{"48":1,"58":1,"80":1,"179":1}}],["javacrane4jtemplate",{"2":{"16":1,"28":1,"35":1}}],["javapropertymappingstrategy",{"2":{"145":1}}],["javaprivate",{"2":{"43":1,"66":1,"67":1}}],["javapublic",{"2":{"16":1,"17":2,"39":1,"41":1,"44":2,"55":2,"63":1,"86":1,"87":1,"89":1,"97":1,"99":2,"102":1,"103":1,"105":1,"106":1,"107":1,"110":1,"112":1,"113":2,"116":1,"117":2,"121":1,"123":2,"126":1,"131":1,"134":2,"135":2,"137":2,"138":2,"139":1,"140":2,"141":2,"142":1,"144":1,"145":2,"149":1,"170":1,"174":1,"175":1,"251":1,"252":1,"253":1,"254":1,"264":1,"265":1,"272":1,"283":1,"330":1,"333":1}}],["javabean",{"2":{"38":1,"94":1,"219":1}}],["javadecoratedpropertyoperator",{"2":{"36":1}}],["javadictannotationhandler",{"2":{"24":1}}],["javalist",{"2":{"4":1,"29":1,"31":1,"147":1}}],["java",{"2":{"1":1,"3":2,"5":1,"6":2,"9":3,"11":1,"13":1,"14":1,"15":2,"17":1,"19":1,"20":1,"21":1,"24":3,"25":2,"27":1,"28":2,"30":1,"31":3,"33":3,"34":1,"36":1,"40":1,"42":1,"45":1,"46":1,"48":1,"49":1,"50":1,"51":1,"52":1,"54":1,"56":1,"58":1,"59":1,"60":1,"61":1,"65":1,"67":1,"68":2,"71":2,"73":1,"74":1,"75":1,"76":1,"77":2,"79":2,"80":1,"82":2,"83":1,"88":1,"90":1,"92":1,"93":1,"94":1,"104":1,"110":2,"111":2,"114":1,"117":1,"118":1,"119":2,"120":1,"121":2,"124":2,"128":1,"129":1,"131":2,"132":1,"141":1,"145":1,"148":1,"149":2,"150":1,"151":3,"152":1,"153":1,"154":1,"155":1,"159":1,"160":1,"161":2,"162":1,"169":1,"171":1,"172":1,"173":1,"174":1,"178":2,"179":1,"250":1,"256":2,"257":2,"258":2,"260":3,"261":3,"262":1,"264":1,"265":1,"267":2,"268":1,"271":1,"273":2,"274":2,"275":2,"276":1,"277":2,"278":1,"279":1,"281":2,"282":3,"283":1,"285":1,"287":2,"309":2,"310":1,"311":1,"313":1,"314":1,"315":1,"318":1,"319":1,"321":1,"322":1,"323":1,"326":1,"327":1,"328":1,"329":1,"334":1}}],["javathreadpooltaskexecutor",{"2":{"1":1}}],["jdk9+",{"0":{"301":1}}],["jdk9",{"2":{"36":1}}],["jvm",{"2":{"12":1,"14":2}}],["或其他内容",{"2":{"336":1}}],["或更高版本解决这个问题",{"2":{"304":1}}],["或拆卸操作",{"2":{"284":1}}],["或通过指定分组来选择性的跳过一些操作",{"2":{"283":1}}],["或通过动态解析返回值类型来获取操作配置",{"2":{"155":1}}],["或是",{"2":{"213":1}}],["或是其他企图引起关注的标题",{"2":{"202":1}}],["或是其他等等",{"2":{"198":1}}],["或谢谢你的关照",{"2":{"203":1}}],["或只是出现在",{"2":{"187":1}}],["或根据你在参数上的操作配置对入参进行填充",{"2":{"155":1}}],["或执行器",{"2":{"146":1}}],["或单个对象",{"2":{"101":1}}],["或在回调方法中获取",{"2":{"89":1}}],["或一些复杂的自定义条件确认要从数据源中获取哪些数据",{"2":{"80":1}}],["或配置文件的方式配置缓存时",{"2":{"79":1}}],["或任意类中的静态方法作为数据源容器",{"2":{"79":1}}],["或基础数据类型及其包装类",{"2":{"227":1}}],["或基础数据类型",{"2":{"73":1}}],["或静态方法",{"2":{"71":1}}],["或者也可以叫做数据组装或者数据聚合",{"2":{"333":1}}],["或者直接查看",{"2":{"306":1}}],["或者有其他的顾虑",{"2":{"265":1}}],["或者有其他拆分规则",{"2":{"140":1}}],["或者类的全限定名",{"2":{"262":1}}],["或者jsonobject",{"2":{"240":1}}],["或者与",{"2":{"210":1}}],["或者只是在他的想像中你搞砸了",{"2":{"209":1}}],["或者只是其中的",{"2":{"187":1}}],["或者换种方式表达感激",{"2":{"203":1}}],["或者这有答案吗",{"2":{"201":1}}],["或者提供回归测试来表明前一版本中行为不正确",{"2":{"192":1}}],["或者提供一种更灵活的途径去接入第三方框架提供的数据源",{"2":{"53":1}}],["或者其它类似的",{"2":{"189":1}}],["或者你所用的",{"2":{"185":1}}],["或者你也可以在配置类中注册",{"2":{"82":1}}],["或者你也可以实现",{"2":{"54":1}}],["或者许可书以弄清楚你的问题是否切题",{"2":{"183":1}}],["或者压根别发",{"2":{"183":1}}],["或者根本得不到任何答案",{"2":{"181":1}}],["或者找到太多答案",{"2":{"181":1}}],["或者任意以",{"2":{"178":1}}],["或者在方法上添加",{"2":{"161":1}}],["或者在你的数据源",{"2":{"118":1}}],["或者当数据源对象本身就是某个字典值或枚举值的情况",{"2":{"137":1}}],["或者顺序不同的操作由于引用了同个数据源容器而被自动合并等等",{"2":{"125":1}}],["或者使用",{"2":{"99":1}}],["或者基于操作处理器",{"2":{"91":1}}],["或者容器中的",{"2":{"79":1}}],["或者干脆项目没有使用",{"2":{"76":1}}],["或者字段加解密",{"2":{"64":1}}],["或者对链式操作符的支持等",{"2":{"36":1}}],["或者",{"2":{"36":1,"48":1,"58":1,"80":1,"124":1,"131":1,"149":1,"187":1,"210":2,"213":1,"221":1,"222":1,"223":1,"250":1,"280":1,"309":1}}],["或",{"2":{"9":1,"31":1,"56":1,"80":1,"84":1,"107":2,"113":1,"122":1,"152":1,"153":2,"183":1,"186":1,"189":1,"210":1,"219":1,"292":1,"293":1,"294":1,"296":1,"299":1}}],["此处已经做了简化",{"2":{"272":1}}],["此过程中如果更有经验的人注意到不完整或者不当之处",{"2":{"197":1}}],["此扩展插件基于",{"2":{"158":1}}],["此后通过不同的方式触发填充即可",{"2":{"257":1}}],["此后执行时仅当条件满足时才会应用该操作",{"2":{"253":1}}],["此后当项目启动时",{"2":{"157":1,"164":1}}],["此后",{"2":{"92":1}}],["此后你可以通过它的",{"2":{"13":1}}],["此类容器称为",{"2":{"80":1}}],["此外",{"2":{"9":2,"12":1,"13":1,"33":1,"51":1,"56":1,"61":1,"79":1,"83":2,"88":2,"95":2,"101":1,"133":1,"147":1,"254":1,"287":1,"300":1}}],["此时将会以",{"2":{"179":1}}],["此时则需要显式的指定要绑定的参数名",{"2":{"149":1}}],["此时会触发自动填充",{"2":{"148":1}}],["此时绑定到同一操作上的条件将会被合并为一个组合条件",{"2":{"113":1}}],["此时你需要使用",{"2":{"104":1}}],["此时你需要显式的指定该操作要绑定的",{"2":{"88":1}}],["此时你可以不必再加一级",{"2":{"9":1}}],["此时与上文创建的缓存为同一个对象",{"2":{"15":1}}],["此时实际上提交到线程池中的任务就是三个",{"2":{"6":1}}],["此时",{"2":{"6":1,"15":2,"28":1,"38":1,"71":1,"80":2,"106":1,"150":1,"151":1,"210":1,"250":1,"264":1,"267":1}}],["fd",{"2":{"265":3}}],["flatmap",{"2":{"272":1}}],["florbish",{"2":{"211":1}}],["flurbamatic",{"2":{"211":2}}],["fluent",{"2":{"87":2,"103":1}}],["fucking",{"2":{"206":2}}],["functionalinterface",{"2":{"67":1}}],["function",{"2":{"20":1,"24":1,"56":1,"68":2,"90":2}}],["feature",{"2":{"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"232":1,"233":1,"236":1}}],["fedora",{"2":{"190":1}}],["female",{"2":{"51":1,"61":2,"256":2,"258":2,"333":1}}],["from",{"2":{"170":1,"171":1,"172":1,"173":1,"174":1}}],["fault",{"2":{"184":1}}],["faq",{"0":{"288":1},"1":{"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1},"2":{"181":2,"183":3,"204":1,"207":1,"211":2}}],["fasterxml",{"2":{"157":2}}],["factorybean",{"2":{"53":2,"55":1}}],["false",{"2":{"48":1,"49":3,"79":1,"117":1,"121":1,"152":1,"225":1,"239":1,"247":2}}],["firstiddeptname",{"2":{"265":2}}],["firstiddeptid",{"2":{"264":2,"265":3}}],["firstdepts",{"2":{"265":2}}],["firstdeptids",{"2":{"265":2}}],["firstdeptname",{"2":{"264":2,"265":1}}],["fix",{"2":{"218":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1}}],["fixed",{"2":{"68":1}}],["fic",{"2":{"194":1}}],["filters",{"2":{"208":1}}],["filter",{"2":{"124":1}}],["filternullkey",{"2":{"72":1,"78":2}}],["fill",{"2":{"25":2,"29":2,"31":1,"33":2,"34":1,"110":1,"119":2,"152":2}}],["find",{"2":{"224":1}}],["findall",{"2":{"20":1}}],["final",{"2":{"9":1,"16":1,"20":2,"48":3,"49":3,"51":2,"56":1,"58":2,"59":2,"61":4,"132":1,"256":2,"258":2,"265":1,"277":2,"278":1,"279":1,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1}}],["field",{"2":{"17":1,"24":1,"121":1,"275":3}}],["followtypeconfig",{"2":{"51":2,"61":2}}],["foreach",{"2":{"265":1,"272":4,"277":4,"333":1}}],["forenum",{"2":{"58":3,"59":2,"282":1}}],["forconstantclass",{"2":{"48":3}}],["forlambda",{"2":{"24":1,"40":1,"68":3,"80":1,"282":1}}],["formap",{"2":{"11":1,"31":1,"52":1,"69":2,"282":3}}],["foonly",{"2":{"211":2}}],["foodo",{"2":{"174":1}}],["foomapper",{"2":{"169":2,"170":1,"171":1,"172":1,"173":1,"174":1}}],["foovo",{"2":{"142":2,"174":1}}],["foochild",{"2":{"119":1}}],["foocontainer",{"2":{"82":1}}],["foocontainerprovider",{"2":{"54":1,"55":3}}],["fooconstant2",{"2":{"49":1}}],["fooconstant",{"2":{"48":3}}],["fooquerydto",{"2":{"92":2}}],["foo2>",{"2":{"33":2}}],["foo2",{"2":{"33":13,"34":3}}],["foo1",{"2":{"33":15,"34":5}}],["foooperator",{"2":{"28":1}}],["foolist",{"2":{"25":2,"29":2,"31":1,"80":2,"123":2,"254":1}}],["fooservice",{"2":{"4":1,"28":1,"31":1,"79":3,"147":1}}],["foos",{"2":{"4":2,"110":1,"124":2,"147":4,"285":2,"313":3,"314":2,"315":5,"321":3,"322":2,"323":5,"329":3,"330":3}}],["foo>",{"2":{"3":2,"4":1,"9":1,"13":1,"14":1,"25":1,"29":1,"31":1,"71":2,"75":1,"80":1,"82":1,"110":1,"123":1,"124":2,"147":1,"149":1,"152":1,"153":1,"154":1,"155":2,"252":1,"285":1,"313":1,"314":2,"315":2,"321":1,"322":2,"323":2,"329":1,"330":1}}],["foo",{"2":{"3":2,"9":2,"13":2,"14":2,"20":2,"25":1,"29":1,"31":1,"39":2,"45":2,"46":2,"49":1,"51":1,"61":1,"63":1,"66":1,"67":1,"71":4,"74":1,"75":2,"76":4,"79":4,"80":12,"90":5,"92":2,"93":2,"94":1,"97":2,"99":2,"110":8,"111":6,"112":1,"113":2,"114":3,"116":2,"117":7,"118":3,"119":7,"120":3,"123":2,"124":2,"132":1,"142":7,"144":2,"149":8,"152":3,"153":3,"154":2,"155":3,"161":8,"162":2,"169":2,"170":3,"171":2,"172":1,"173":1,"174":2,"211":2,"251":2,"252":2,"253":1,"254":1,"272":5,"283":8,"285":2,"311":1,"313":6,"314":5,"315":8,"319":1,"321":6,"322":5,"323":8,"328":1,"329":6,"330":4,"331":2,"334":1}}],["则是针对它的一套完善的解决方案",{"2":{"335":1}}],["则说明该操作配置未能生效",{"2":{"289":1}}],["则在第一步需要先配置数据源",{"2":{"274":1}}],["则此时我们可以有",{"2":{"268":1}}],["则此时",{"2":{"264":1}}],["则自动按指定的分隔符拼接为字符串",{"2":{"236":1}}],["则需要按文档重新引入",{"2":{"218":1}}],["则需要按如下方式配置",{"2":{"160":1}}],["则需要按下述方式进行手动配置",{"2":{"159":1}}],["则需要手动的通过",{"2":{"298":1,"299":1}}],["则需要手动的指定操作执行器为有序执行器",{"2":{"127":1}}],["则需要手动使用",{"2":{"142":1}}],["则支持并发填充",{"2":{"154":1}}],["则上述示例表示",{"2":{"142":1}}],["则认为条件不通过",{"2":{"117":1}}],["则使用",{"2":{"116":1}}],["则使用该参数作为临时数据源对首个参数进行填充",{"2":{"35":1}}],["则可以在",{"2":{"151":1,"267":1}}],["则可以将",{"2":{"119":1}}],["则可以放在方法上",{"2":{"110":1}}],["则可以是",{"2":{"79":1}}],["则取",{"2":{"94":2}}],["则也可以写为",{"2":{"92":1}}],["则必须手动显式的在注解配置中指定",{"2":{"90":1}}],["则为其中的元素类型",{"2":{"72":1}}],["则为其设置一个默认值",{"2":{"21":1}}],["则首个参数必须为",{"2":{"71":1}}],["则优先使该注解的配置",{"2":{"51":1,"61":1}}],["则分别对方法中每一个带有",{"2":{"35":1}}],["则不进行针对",{"2":{"21":1,"254":1}}],["则当在一个元素上添加多个",{"2":{"17":1}}],["则会从管理器重新创建并获取一个缓存对象",{"2":{"15":1}}],["则会对",{"2":{"7":1}}],["则直接从缓存中获取",{"2":{"7":1}}],["即指",{"2":{"283":1}}],["即所有的配置集成在一个注解中",{"2":{"258":1}}],["即以上版本",{"2":{"249":1}}],["即便他们能够处理",{"2":{"189":1}}],["即懒加载",{"2":{"166":1}}],["即为当前项目最新版本",{"2":{"307":1,"316":1,"324":1}}],["即为原本的字符串集合",{"2":{"145":1}}],["即为要应用缓存的数据源容器的",{"2":{"10":1}}],["即离",{"2":{"141":1}}],["即仅当目标对象实现了",{"2":{"121":1}}],["即上文的",{"2":{"86":1}}],["即使数据源相同也需要重复配置",{"2":{"287":1}}],["即使两个不同的操作都来自相同的数据源",{"2":{"265":1}}],["即使使用自动填充",{"2":{"254":1}}],["即使",{"2":{"249":1}}],["即使命中了缓存但是依然会查",{"2":{"235":1,"236":1}}],["即使缓存全部命中依然会调用查询方法",{"2":{"235":1,"236":1}}],["即使只是建议个",{"2":{"213":1}}],["即使他们可能从没亲自写过任何软件",{"2":{"212":1}}],["即使他们认为毛茸茸的小海豹很重要",{"2":{"202":1}}],["即使没什么秘密",{"2":{"186":1}}],["即使没有",{"2":{"183":1}}],["即使没有结果",{"2":{"181":1}}],["即使是在这种情况下",{"2":{"186":1}}],["即使你要为这些协助付费",{"2":{"212":1}}],["即使你没有搞砸",{"2":{"209":1}}],["即使你很急也不要在标题写紧急",{"0":{"202":1}}],["即使你私下非常确信已经发现一个真正的",{"2":{"192":1}}],["即使你是对的",{"2":{"192":1}}],["即使你确信他能最好地回答你的问题",{"2":{"186":1}}],["即使你的",{"2":{"86":1}}],["即使它只是表明了搜索引擎不能提供哪些帮助",{"2":{"181":1}}],["即使用",{"2":{"131":1}}],["即使用属性名作为value",{"2":{"48":1}}],["即通过",{"2":{"84":1}}],["即",{"2":{"84":1,"117":1}}],["即结果总是与",{"2":{"72":1}}],["即可引用该数据源容器",{"2":{"310":1,"318":1,"327":1}}],["即可",{"2":{"292":1,"293":1,"294":1,"308":1,"317":1,"336":1}}],["即可以通过xx",{"2":{"151":1}}],["即可在方法返回时对返回值进行自动填充",{"2":{"149":1}}],["即可在项目启动后自动注册",{"2":{"56":1}}],["即可确认",{"2":{"71":1}}],["即可自动注册",{"2":{"35":1}}],["即从数据源容器中查询数据时",{"2":{"40":1}}],["即一个",{"2":{"39":1,"261":1,"262":1}}],["即若",{"2":{"17":1}}],["即第一次查询",{"2":{"7":1}}],["即总共有",{"2":{"6":1}}],["级别的日志输出执行时间",{"2":{"221":1,"222":1}}],["级别的配置缓存",{"2":{"219":1}}],["级别",{"2":{"7":1}}],["对",{"2":{"261":1}}],["对枚举类型数据源提供更好的支持",{"2":{"219":1}}],["对那些坦诚犯错之人没有必要当众羞辱",{"2":{"213":1}}],["对初犯者私下回复",{"2":{"213":1}}],["对像是",{"2":{"212":1}}],["对他而言",{"2":{"209":1}}],["对真正的冒犯者狠狠地打击",{"2":{"208":1}}],["对或错",{"2":{"201":1}}],["对一些特殊的文件不要设置固定宽度",{"2":{"189":1}}],["对入参进行自动填充",{"2":{"149":1}}],["对入参进行填充",{"0":{"29":1}}],["对最终要映射的属性值做一些调整",{"2":{"145":1}}],["对用户的实现进行包装",{"2":{"142":1}}],["对员工对象进行填充",{"2":{"131":1}}],["对于有深度的问题",{"2":{"204":1}}],["对于讨论串",{"2":{"187":1}}],["对于集合或数组中的每个数据源对象",{"2":{"140":1}}],["对于填充",{"2":{"102":1}}],["对于所有的数据源容器来说",{"2":{"7":1}}],["对结果分组",{"0":{"73":1,"175":1}}],["对接",{"2":{"37":2}}],["对应注解为",{"2":{"287":1}}],["对应到代码中有点像",{"2":{"133":1}}],["对应",{"2":{"80":1}}],["对应的",{"2":{"178":1}}],["对应的属性值不为",{"2":{"97":1,"144":1}}],["对应的属性值是不是",{"2":{"97":1,"144":1}}],["对应的目标属性为",{"2":{"97":1,"144":1}}],["对应的目标属性",{"2":{"97":2,"144":2}}],["对应的接受参数对象的查询方法",{"2":{"74":1}}],["对应的参数对象",{"2":{"74":1}}],["对应的值进行填充",{"2":{"27":1}}],["对应多个",{"2":{"73":1}}],["对应多个值比如一个",{"2":{"73":1}}],["对应多个数据源对象",{"2":{"43":1}}],["对应操作类型",{"2":{"23":1}}],["对属性值做一些处理",{"2":{"21":1}}],["对象为",{"2":{"277":1}}],["对象填充订单类型",{"2":{"272":1}}],["对象对应一个",{"2":{"261":1,"262":1}}],["对象进行属性映射",{"2":{"240":1}}],["对象时自动填充相关数据",{"2":{"161":1}}],["对象数组或对象的",{"2":{"149":1}}],["对象集合的",{"2":{"140":1}}],["对象到键",{"0":{"139":1}}],["对象到属性",{"0":{"137":1},"2":{"133":1}}],["对象赋值给studentvo",{"2":{"137":1}}],["对象后",{"2":{"137":1,"142":1}}],["对象都提取出来",{"2":{"131":1}}],["对象中",{"2":{"142":1}}],["对象中的性别编码",{"2":{"333":1}}],["对象中的属性",{"2":{"161":1}}],["对象中的",{"2":{"131":1}}],["对象中还存在需要拆卸的嵌套对象",{"2":{"102":1}}],["对象取出并展开",{"2":{"102":1}}],["对象之前",{"2":{"102":1}}],["对象的",{"2":{"175":1}}],["对象的回调接口",{"2":{"80":1}}],["对象的支持",{"2":{"36":1}}],["对象分组的数据集",{"2":{"80":1}}],["对象作为",{"2":{"80":1}}],["对象容器",{"0":{"80":1},"2":{"80":1,"277":1}}],["对象内省",{"0":{"62":1,"63":1},"1":{"63":1,"64":1,"65":1,"66":1,"67":1}}],["对象回调接口",{"0":{"21":1},"2":{"113":1}}],["对象",{"2":{"6":2,"25":1,"27":1,"29":1,"44":1,"140":1,"170":1,"219":1,"260":3,"261":1,"262":1,"276":1,"331":2}}],["负责管理缓存对象",{"2":{"7":1}}],["缓存时",{"2":{"235":1,"236":1}}],["缓存功能分离至独立的",{"2":{"220":1,"222":1}}],["缓存功能由缓存管理器",{"2":{"7":1}}],["缓存配置同样集成到了",{"2":{"79":1}}],["缓存将会被清空",{"2":{"15":1}}],["缓存会根据你设置的过期时间自动过期",{"2":{"15":1}}],["缓存的粒度都是",{"2":{"7":1}}],["缓存管理器",{"0":{"12":1},"1":{"13":1,"14":1,"15":1},"2":{"7":1,"12":1,"178":1}}],["缓存",{"0":{"7":1,"75":1},"1":{"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1},"2":{"12":1,"36":1,"56":1,"75":1,"178":1,"227":1,"335":1}}],["不想要重复造轮子",{"2":{"300":1}}],["不执行对应的填充操作",{"2":{"254":1}}],["不执行特定的操作组",{"2":{"124":1}}],["不为",{"2":{"253":1}}],["不为字符串时",{"2":{"161":1}}],["不能",{"2":{"210":1}}],["不能设置超时时间",{"2":{"12":1}}],["不同凡响的说法需要不同凡响的证据",{"2":{"210":1}}],["不同的执行器会对填充操作产生不同的影响",{"2":{"154":1}}],["不同的",{"2":{"133":1}}],["不同的操作配置可以具备相同的",{"2":{"89":1}}],["不该问的问题",{"0":{"210":1}}],["不理你并将你从他的生活中滤掉更简单",{"2":{"209":1}}],["不去关马桶盖等等",{"2":{"209":1}}],["不是我们的",{"2":{"202":1}}],["不是所有论坛都允许在回复中出现分离的标题",{"2":{"187":1}}],["不然还是另起炉灶比较好",{"2":{"187":1}}],["不要在实际步骤上开玩笑",{"2":{"213":1}}],["不要哭嚎所有的批评都应该通过私下的邮件传送",{"2":{"209":1}}],["不要动辄声称找到了",{"2":{"192":1}}],["不要使用quoted",{"2":{"189":1}}],["不要发送一段文字只是一行句子但自动换行后会变成多行的邮件",{"2":{"189":1}}],["不要直接点击回复来开始一个全新的讨论串",{"2":{"187":1}}],["不要妄想用你的痛苦程度来打动我们",{"2":{"187":1}}],["不要假设自己会在开发者列表中受到欢迎",{"2":{"186":1}}],["不要对你的问题是否会受到欢迎做太乐观的估计",{"2":{"183":1}}],["不要将所有问题一股脑拋出",{"2":{"181":1}}],["不要指望几秒钟的",{"2":{"181":1}}],["不管哪一个表达式",{"2":{"116":1}}],["不论公司大还是小",{"2":{"212":1}}],["不论我是谁",{"2":{"211":1}}],["不论",{"2":{"97":1,"144":1}}],["不指定该操作绑定的",{"2":{"92":1}}],["不填时默认获取首个符合条件的同名方法",{"2":{"72":1}}],["不限制",{"2":{"71":2}}],["不再使用注册到全局配置中的",{"2":{"31":1}}],["不支持解析复数可重复的组合注解",{"2":{"17":1}}],["不支持设置到期时间",{"2":{"14":1}}],["不过不必担心",{"2":{"306":1}}],["不过支持细粒度配置",{"2":{"286":1}}],["不过依然显得十分繁琐",{"2":{"272":1}}],["不过对应的可能会带来额外的内存消耗",{"2":{"239":1}}],["不过由于在每一层级都要进行查询",{"2":{"132":1}}],["不过由于提取操作在填充之前",{"2":{"131":1}}],["不过它总是先于装配操作完成",{"2":{"129":1}}],["不过因为各种原因",{"2":{"125":1}}],["不过默认的多对多装配处理器默认内置了该解析",{"2":{"93":1}}],["不过默认的一对一与一对多装配处理器默认内置了该解析",{"2":{"92":1}}],["不过出于代码的可维护性考虑",{"2":{"71":1}}],["不过通常还是更推荐使用第一种方式",{"2":{"55":1}}],["不过同时它们也会带来额外的性能消耗",{"2":{"36":1}}],["不过这种写法可以减少一次类型判断从而轻微提高性能",{"2":{"33":1}}],["不过",{"2":{"32":1,"37":1,"79":1,"88":1,"187":1,"264":1,"309":1}}],["不过你可以通过",{"2":{"180":1}}],["不过你可以在解析注解时自动态的指定数据源容器",{"2":{"24":1}}],["不过你也可以通过操作门面类手动注册",{"2":{"145":1}}],["不过你也可以通过操作门面手动注册",{"2":{"35":1}}],["不过你也可以通过操作门面手动注册它",{"2":{"19":1,"24":1}}],["不过你也可以通过操作门面手动注册这个管理器",{"2":{"16":1}}],["不过你也可以手动完成这个过程",{"2":{"76":1}}],["不过你也可以根据情况下选择一个模板类来节约一些功夫",{"2":{"24":1}}],["不过在非",{"2":{"306":2}}],["不过在最开始的时候我们仅有少量的必要信息",{"2":{"271":1}}],["不过在某些时候",{"2":{"15":1}}],["不过在同步执行时意义不大",{"2":{"6":1}}],["不使用时",{"2":{"14":2}}],["不设置队列大小",{"2":{"1":1}}],["调整抽象层级",{"2":{"232":1}}],["调整执行器的每次向线程池提交任务时",{"2":{"6":1}}],["调用前还需要先解析操作配置",{"2":{"286":1}}],["调用operator实例的object基本方法会发生死循环直到栈溢出",{"2":{"226":1}}],["调用方法数据源容器报错",{"2":{"218":1}}],["调用上述方法",{"2":{"180":1}}],["调用被代理的方法",{"2":{"148":1}}],["调用",{"2":{"86":1,"286":1}}],["调用类的全限定名字符串",{"2":{"79":1}}],["调用操作接口以填充对象的参数",{"2":{"37":1}}],["调用所消耗的时间",{"2":{"6":1}}],["且被",{"2":{"299":1}}],["且容器中存在对应的",{"2":{"298":1}}],["且都有相应的",{"2":{"289":1}}],["且便于集中管理",{"2":{"287":1}}],["且",{"2":{"235":1,"236":1,"289":1}}],["且支持重复声明",{"2":{"224":1}}],["且返回值为空时报错",{"2":{"221":1,"222":1}}],["且返回值类型必须为",{"2":{"71":1}}],["且内容也没那么丰富",{"2":{"212":1}}],["且无法自动设置别名",{"2":{"174":1}}],["且配置文件中的",{"2":{"152":1}}],["且排序靠前的字段优先完成映射",{"2":{"141":1}}],["且不指定",{"2":{"139":1}}],["且用不到这些额外的功能",{"2":{"36":1}}],["且在",{"2":{"36":1}}],["且需要映射的字段也越来越多时",{"2":{"6":1}}],["且允许核心线程池超时",{"2":{"1":1}}],["的前提下",{"2":{"335":1}}],["的前缀",{"2":{"179":1}}],["的功能逐渐稳定",{"2":{"332":1}}],["的整体执行流程可大致分为两阶段",{"2":{"331":1}}],["的版本号",{"2":{"307":1,"316":1,"324":1}}],["的版本有效",{"2":{"239":1}}],["的例子来进行对比",{"2":{"287":1}}],["的运行依赖于",{"2":{"281":1}}],["的集合",{"2":{"277":1}}],["的返回值进行自动填充",{"2":{"261":1}}],["的返回值类型",{"2":{"150":1}}],["的需求",{"2":{"240":1}}],["的一些可选项进行配置",{"2":{"237":1}}],["的方式动态决定是否要对特定对象应用操作",{"2":{"229":1}}],["的方法容器",{"2":{"227":1}}],["的自动填充",{"2":{"264":1}}],["的自动装配功能更加灵活",{"2":{"225":1}}],["的自定义缓存",{"2":{"16":1}}],["的管理方式",{"2":{"224":1}}],["的实现",{"2":{"224":1}}],["的配置执行",{"2":{"331":1}}],["的配置",{"2":{"223":1}}],["的正式版本",{"2":{"222":1}}],["的枚举",{"2":{"221":1,"222":1}}],["的第二个预览版本",{"2":{"221":1}}],["的第一个正式版本",{"2":{"216":1}}],["的依赖",{"2":{"219":1}}],["的动态数据源容器提供者",{"2":{"219":1}}],["的预览版本",{"2":{"219":1,"220":1}}],["的解析逻辑分离到独立的注解处理器",{"2":{"218":1}}],["的数据源提供更好的支持",{"2":{"218":1}}],["的数据源容器时才生效",{"2":{"120":1}}],["的数据源容器中获取数据源对象",{"2":{"86":1}}],["的数据源容器",{"2":{"55":1,"236":1}}],["的使用方式",{"2":{"217":1}}],["的使用方法",{"2":{"9":1}}],["的官方文档站点",{"2":{"216":1}}],["的测试用例",{"2":{"216":1}}],["的原因是什么",{"2":{"211":1}}],["的资料",{"2":{"211":1}}],["的发行版有关",{"2":{"210":1}}],["的开源操作系统吧",{"2":{"210":1}}],["的观察总结和这个相关也值得一读",{"2":{"208":1}}],["的回应",{"2":{"206":2}}],["的回调机制",{"2":{"18":1}}],["的详述开关",{"2":{"195":1}}],["的出色文章",{"2":{"190":1}}],["的症状",{"2":{"190":1}}],["的电脑发送电子邮件",{"2":{"189":1}}],["的标题很难引起足够重视",{"2":{"187":1}}],["的鼠标指针",{"2":{"187":1}}],["的鼠标指针会变形",{"2":{"187":1}}],["的流程或链接",{"2":{"183":1}}],["的格式访问",{"2":{"179":1}}],["的格式为",{"2":{"92":1}}],["的查询也允许指定查询结果的一对一或一对多映射类型",{"2":{"175":1}}],["的查询功能",{"2":{"53":1}}],["的扩展组件",{"2":{"163":1}}],["的扩展插件",{"2":{"156":1}}],["的特殊性",{"2":{"156":1}}],["的写法",{"2":{"149":1}}],["的链式操作符的方式来访问或设置嵌套对象的属性",{"2":{"142":1}}],["的不同重载方法来设置本次填充操作的执行组",{"2":{"124":1}}],["的拆卸操作",{"2":{"123":1}}],["的类型或名称",{"2":{"293":1,"294":1}}],["的类型",{"2":{"90":1}}],["的类型却是",{"2":{"90":1}}],["的类型转为指定类型",{"2":{"90":1}}],["的操作就是拆卸操作",{"2":{"283":1}}],["的操作",{"0":{"249":1},"2":{"84":1,"86":1}}],["的属性值映射到",{"2":{"134":1}}],["的属性值",{"2":{"97":1,"134":1,"144":1,"283":1}}],["的属性值不为",{"2":{"96":1,"143":1}}],["的属性映射到",{"2":{"84":1,"283":1,"333":1}}],["的属性操作器",{"2":{"36":1}}],["的时候会将所有的",{"2":{"161":1}}],["的时候会使用",{"2":{"76":1}}],["的时候",{"2":{"73":1,"78":1,"185":1}}],["的责任链机制",{"2":{"70":1}}],["的启动类或配置类上",{"2":{"50":1,"60":1}}],["的静态工厂方法",{"2":{"48":1,"58":1}}],["的容器挂载缓存空间",{"2":{"246":1}}],["的容器",{"2":{"40":1}}],["的字节码反射属性操作器",{"2":{"36":1}}],["的反射工厂",{"2":{"36":1}}],["的注解配置",{"2":{"17":1}}],["的组合注解机制优化",{"2":{"17":1}}],["的缓存支持",{"2":{"216":1,"217":1}}],["的缓存管理器",{"2":{"12":1,"176":1}}],["的缓存了",{"2":{"9":1}}],["的创建和销毁",{"2":{"7":1}}],["的",{"2":{"6":5,"12":2,"14":3,"17":1,"19":1,"25":1,"28":1,"31":1,"37":2,"47":1,"53":1,"69":1,"80":1,"84":1,"142":1,"147":1,"158":1,"159":1,"163":1,"174":1,"178":1,"187":1,"216":1,"217":1,"220":2,"222":2,"229":1,"283":1,"287":2,"300":1,"331":1,"333":1,"334":1}}],["次填充按对应的数据源容器打包成两个任务提交给线程池完成",{"2":{"6":1}}],["共同完成",{"2":{"7":1}}],["共",{"2":{"6":1}}],["+",{"2":{"6":1,"21":1,"24":2,"65":2,"67":2,"80":2,"99":1,"145":1,"250":3}}],["时忽略此操作",{"2":{"249":1}}],["时需要忽略这个操作",{"2":{"249":1}}],["时会空指针",{"2":{"223":1}}],["时会自动转换为查询",{"2":{"171":1}}],["时的一些自动装配问题",{"2":{"219":1}}],["时的奇怪现象",{"2":{"211":1}}],["时有问题",{"2":{"210":2}}],["时将会清除缓存管理器中的所有缓存",{"2":{"180":1}}],["时才生效",{"2":{"119":1,"253":2}}],["时才应用操作",{"2":{"110":1,"116":1,"117":3}}],["时回收",{"2":{"12":1}}],["时间单位",{"2":{"10":1}}],["时",{"2":{"6":1,"7":1,"17":1,"49":1,"51":1,"61":1,"69":1,"73":1,"78":2,"97":3,"117":1,"123":1,"137":1,"138":1,"139":1,"144":3,"152":1,"159":1,"161":1,"180":1,"249":1}}],["当对外展示时则需要屏蔽一些敏感信息",{"2":{"335":1}}],["当对方法返回进行自动填充时",{"2":{"77":1}}],["当引入",{"2":{"334":1}}],["当确认上述步骤皆无问题后",{"2":{"289":1}}],["当填充时",{"2":{"283":1}}],["当填充对象为指定类型",{"0":{"119":1}}],["当通过",{"2":{"234":1,"236":1}}],["当项目中同上存在复数同名的数据源容器时",{"2":{"233":1}}],["当项目启动后",{"2":{"71":1}}],["当作为数据源容器的方法接受单个参数并返回集合类型结果时",{"2":{"230":1,"232":1}}],["当需要值到键的映射时",{"2":{"228":1}}],["当需要填充的对象越来越多",{"2":{"6":1}}],["当目标对象的key值与数据源对象的key值类型不一致时",{"2":{"225":1}}],["当bean被spring代理时",{"2":{"218":1}}],["当回复一个好问题时",{"2":{"213":1}}],["当别人正在用错误的工具或方法时别建议笨拙的权宜之计",{"2":{"213":1}}],["当我向每个人表示感谢",{"2":{"211":1}}],["当我们使用解析器对类及类的属性进行解析式",{"2":{"284":1}}],["当我们在方法上添加",{"2":{"149":1}}],["当我们执行填充操作时",{"2":{"123":1}}],["当我们指定要将数据源对象的",{"2":{"96":1,"143":1}}],["当我们将一个需要解析的",{"2":{"22":1}}],["当我们填充这",{"2":{"6":1}}],["当黑客说你搞砸了",{"2":{"209":1}}],["当它们提供时",{"2":{"189":1}}],["当它们处理换行时",{"2":{"189":1}}],["当某个项目提供开发者邮件列表时",{"2":{"186":1}}],["当有人评论你的一个说法有误或者提出不同看法时",{"2":{"209":1}}],["当有人要求你提供更多相关信息时",{"2":{"184":1}}],["当有多个条件时",{"2":{"121":2}}],["当有多个方法工厂时",{"2":{"35":1}}],["当有多个处地方需要进行重复配置时",{"2":{"17":1}}],["当执行装配时",{"2":{"170":1}}],["当执行时",{"2":{"11":1,"31":1,"92":1,"155":1}}],["当存在需要填充的嵌套对象时",{"2":{"283":1}}],["当存在多个操作时",{"2":{"162":1}}],["当存在指定数据源容器",{"0":{"120":1}}],["当使用注册有",{"2":{"159":1}}],["当使用默认的操作执行器时",{"2":{"131":1}}],["当在注解中不指定",{"2":{"221":1,"222":1}}],["当在在",{"2":{"161":1}}],["当在",{"2":{"137":1,"138":1,"139":1}}],["当两边的属性类型不同时",{"2":{"136":1}}],["当前版本的递归执行器实际上是基于栈实现的",{"2":{"132":1}}],["当自动填充时",{"2":{"124":1}}],["当进行手动填充时",{"2":{"124":1}}],["当进行填充时",{"2":{"46":1}}],["当指定属性值非空",{"0":{"118":1}}],["当指定属性值等于指定值",{"0":{"117":1}}],["当表达式结果为真",{"0":{"116":1}}],["当条件你有较为复杂的判断逻辑时",{"2":{"113":1}}],["当不指定策略时",{"2":{"97":1,"144":1}}],["当如果你不填写",{"2":{"92":1}}],["当返回值已经是",{"2":{"73":1}}],["当注解声明在类上时必填",{"2":{"72":1}}],["当没有多个重载方法时",{"2":{"71":1}}],["当输入一个键值作为",{"2":{"69":1}}],["当配置解析时",{"2":{"55":1}}],["当抽象方法具备复数参数时",{"2":{"31":1}}],["当调用时等同于调用basemapper",{"2":{"53":1}}],["当调用时",{"2":{"24":1}}],["当一个容器类实现了",{"2":{"20":1}}],["当然",{"2":{"15":1,"55":1,"202":1,"206":1,"209":1,"277":1}}],["当数据源容器尝试操作它时",{"2":{"15":1}}],["当缓存被管理器移除后",{"2":{"15":1}}],["当",{"2":{"12":1,"59":1,"72":1,"78":1,"117":2,"134":1,"159":1,"228":1,"249":2,"254":1}}],["当你已经有了操作配置后",{"2":{"285":1}}],["当你发布软件或补丁时",{"2":{"214":1}}],["当你这样声称时",{"2":{"210":1}}],["当你这么做时",{"2":{"190":1}}],["当你行为不当时所会受到的冒犯",{"2":{"208":1}}],["当你要求私下回复时",{"2":{"197":1}}],["当你报告的是你认为可能在代码中的问题时",{"2":{"190":1}}],["当你提问时",{"0":{"182":1},"1":{"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1}}],["当你提出问题的时候",{"2":{"181":1}}],["当你调用",{"2":{"180":1}}],["当你访问",{"2":{"179":1}}],["当你的项目中存在多个",{"2":{"161":1}}],["当你通过",{"2":{"133":1}}],["当你使用",{"2":{"179":1}}],["当你使用多对多参数处理器",{"2":{"93":1}}],["当你使用一对一或一对多装配处理器时",{"2":{"92":1}}],["当你使用方法数据源容器时",{"2":{"9":1}}],["当你未指定填充使用的数据源容器时",{"2":{"63":1}}],["当你创建了一个实例后",{"2":{"54":1}}],["当你创建了一个处理器时",{"2":{"19":1}}],["当你不指定时",{"2":{"39":1}}],["当你需要在很多地方填充某个特定类型的对象时",{"2":{"33":1}}],["当你直接在方法上通过",{"2":{"32":1}}],["当你获得对应的代理对象后",{"2":{"29":1}}],["当你让被填充的对象实现上述接口后",{"2":{"21":1}}],["当你在本地成功运行示例后",{"2":{"306":1}}],["当你在标题中嚷嚷着有bug时",{"2":{"192":1}}],["当你在使用软件中遇到问题",{"2":{"192":1}}],["当你在类中配置好了要执行的填充操作后",{"2":{"146":1}}],["当你在类",{"2":{"111":1}}],["当你在类上声明时",{"2":{"71":1}}],["当你在",{"2":{"9":1,"304":1}}],["当触发拒绝策略时",{"2":{"1":1}}],["vue",{"2":{"287":1}}],["vitepress",{"2":{"232":1}}],["v",{"2":{"195":1}}],["vandiver",{"2":{"194":1}}],["validator",{"2":{"122":1}}],["val",{"2":{"6":2}}],["values",{"2":{"265":3,"272":1,"333":1}}],["valuetype",{"2":{"117":2,"253":1}}],["valuemapperprovider",{"2":{"65":1,"67":1}}],["value",{"2":{"6":2,"16":4,"21":2,"24":1,"51":1,"58":3,"59":5,"67":1,"69":1,"73":3,"99":1,"110":3,"111":1,"112":1,"113":3,"114":1,"116":1,"117":5,"118":2,"119":2,"120":1,"121":1,"124":1,"139":1,"145":2,"149":1,"178":2,"253":2,"256":2,"257":5,"258":6,"333":2}}],["vp2",{"2":{"194":1}}],["version>1",{"2":{"317":1}}],["version>2",{"2":{"317":3}}],["version>4",{"2":{"308":1}}],["version>5",{"2":{"308":2}}],["version>",{"2":{"157":3,"164":2,"177":2,"308":5,"317":6,"325":2}}],["version>$",{"2":{"157":3,"164":2,"177":2,"308":2,"317":2,"325":2}}],["version",{"2":{"157":3,"164":2,"177":2,"307":1,"308":2,"316":1,"317":2,"324":1,"325":2}}],["void",{"2":{"5":1,"16":4,"20":2,"21":2,"25":1,"27":1,"30":1,"31":3,"33":1,"34":1,"50":1,"60":1,"110":1,"119":2,"124":1,"145":1,"149":2,"155":1,"159":1,"250":1,"315":1,"323":1,"330":1}}],["和你所购买的同类软件相比",{"2":{"212":1}}],["和所有被怀疑的硬件作关键词仔细搜索",{"2":{"210":1}}],["和其它一些邮件阅读程序还会检查邮件标题以外的其它信息",{"2":{"187":1}}],["和其它搜索引擎还是你的朋友",{"2":{"183":1}}],["和其他的容器不同",{"2":{"70":1}}],["和操作注解一样",{"2":{"110":1}}],["和方法容器工厂链",{"2":{"70":1}}],["和反序列化器",{"2":{"38":1}}],["和具体的缓存对象",{"2":{"7":1}}],["和",{"0":{"206":1,"300":1},"2":{"6":1,"19":1,"22":1,"33":2,"36":1,"71":1,"80":1,"123":2,"135":1,"161":1,"207":1,"211":2,"218":1,"228":1,"271":1,"287":3,"289":1,"299":1,"331":1}}],["个字符宽的终端机上阅读邮件",{"2":{"189":1}}],["个别开发者",{"2":{"186":1}}],["个",{"2":{"6":2}}],["个待填充",{"2":{"6":1}}],["而有一些则不需要",{"2":{"335":1}}],["而有些字段不需要填充",{"2":{"335":1}}],["而执行阶段所有的组件都围绕",{"2":{"331":1}}],["而如果要使用组合式风格的配置",{"2":{"274":1}}],["而原来的代码仅需保留核心业务逻辑即可",{"2":{"273":1}}],["而现在",{"2":{"260":1}}],["而你会在公开场合中被告知你是如何搞砸的",{"2":{"209":1}}],["而你将被视为有错的一方",{"2":{"208":1}}],["而你又不会动到那些源代码",{"2":{"186":1}}],["而没有对你的要求视而不见",{"2":{"206":1}}],["而回复的时间则是稀缺的资源",{"2":{"198":1}}],["而他们在自以为能达到目标的特定道路上被卡住了",{"2":{"196":1}}],["而只有分别根据某一级部门",{"2":{"264":1}}],["而只是一种真实而有用的需求",{"2":{"194":1}}],["而只能查到项目维护者的电子邮件地址",{"2":{"186":1}}],["而非改变标题是可接受的",{"2":{"187":1}}],["而非你想得到的答案",{"2":{"181":1}}],["而应该是在这点空间中使用极简单扼要的描述方式来提出问题",{"2":{"187":1}}],["而且还都没有清楚的解释如何清除它",{"2":{"207":1}}],["而且他们打这些字的时候也正在读着",{"2":{"206":1}}],["而且有时还很有帮助",{"0":{"203":1}}],["而且通常会用逻辑上正确",{"2":{"201":1}}],["而且即使你的尝试不成功",{"2":{"199":1}}],["而且这样做了基本上没有人会去看",{"2":{"187":1}}],["而且在",{"2":{"186":1}}],["而且",{"2":{"184":1}}],["而调用",{"2":{"180":1}}],["而不要将此信息搞成侦探推理小说",{"2":{"204":1}}],["而不包含其他令人分散注意力的内容",{"2":{"199":1}}],["而不仅仅是邮件程序生成的模板",{"2":{"189":1}}],["而不仅仅是被动地从他人处索取知识",{"2":{"181":1}}],["而不用再次提问相同的问题",{"2":{"187":1}}],["而不是坐等天上掉答案",{"2":{"211":1}}],["而不是使人感觉舒服而却模模糊糊",{"2":{"208":1}}],["而不是那种有礼但含糊的报告",{"2":{"203":1}}],["而不是报告一个",{"2":{"196":1}}],["而不是你的猜测与归纳的结论",{"2":{"194":1}}],["而不是你的解释和理论",{"2":{"194":1}}],["而不是发一个回帖或回答",{"2":{"184":1}}],["而不是真的需要以目标对象本身为数据源进行填充",{"2":{"80":1}}],["而不必要求填充对象必须有一个对应的实体类",{"2":{"25":1}}],["而当有多个重载方法时",{"2":{"71":1}}],["而在更新对象时填充另一部分属性",{"2":{"122":1}}],["而在",{"2":{"70":1,"281":1}}],["而在非",{"2":{"1":1,"37":1,"98":1,"116":1,"121":1,"148":1}}],["而是以类为单位聚合为类级别的操作配置",{"2":{"283":1}}],["而是需要同时根据",{"2":{"276":1}}],["而是因为我用了正确的方式来提问",{"2":{"211":1}}],["而是直接从被",{"2":{"155":1}}],["而是直接从上述的",{"2":{"31":1}}],["而是让",{"2":{"151":1}}],["而是在执行拆卸操作时动态推断类型",{"2":{"106":1,"150":1}}],["而是通过在目标方法上添加注解的方式",{"2":{"70":1}}],["而输入的参数类型是",{"2":{"37":1}}],["而",{"2":{"7":1,"90":1,"118":1,"154":1,"335":1}}],["而缓存对象",{"2":{"7":1}}],["而每个容器都具备全局唯一的命名空间",{"2":{"52":1,"282":1}}],["而每个处理器都用于处理某个特定的注解",{"2":{"22":1}}],["而每个",{"2":{"6":1}}],["一次填充相同容器访问次数",{"2":{"285":1}}],["一次任务中操作对象的数量",{"2":{"6":1}}],["一定要说出来",{"2":{"213":1}}],["一定会惹恼某些人或者被他们忽视",{"2":{"211":1}}],["一种是愚蠢的",{"2":{"211":1}}],["一种方式是直接使用",{"2":{"147":1}}],["一针见血式的交流风格",{"2":{"208":1}}],["一下代码",{"2":{"199":1}}],["一小个程序片段能刚好展示出程序的异常行为",{"2":{"199":1}}],["一两个表情符号通常没有问题",{"2":{"189":1}}],["一是看潜在的回复者有多少",{"2":{"183":1}}],["一边用无意义的字面解释来答复你",{"2":{"181":1}}],["一些数据可能需要缓存",{"2":{"335":1}}],["一些关键操作通过",{"2":{"221":1,"222":1}}],["一些黑客觉得先谢了意味着事后就不用再感谢任何人的暗示",{"2":{"203":1}}],["一些热门软件的作者由于涌入其私人邮箱的大量不堪忍受的无用邮件而不再提供支持",{"2":{"183":1}}],["一些无法直接通过批量",{"2":{"179":1}}],["一些独特功能的来源",{"2":{"36":1}}],["一般是类或者方法",{"2":{"331":1}}],["一般而言",{"2":{"199":1}}],["一般来说实在太烂",{"2":{"210":1}}],["一般来说",{"2":{"183":1,"201":1}}],["一般我们推荐使用第一种",{"2":{"147":1}}],["一般情况下",{"2":{"15":1,"89":1,"105":1}}],["一直递归下去",{"2":{"102":1}}],["一致",{"2":{"99":1}}],["一对多映射处理器",{"2":{"175":1}}],["一对多分组",{"2":{"73":1}}],["一对多",{"0":{"40":1},"1":{"41":1,"42":1},"2":{"216":1,"292":1,"293":1,"294":1}}],["一对多装配操作处理器",{"2":{"38":1}}],["一对一分组",{"2":{"72":1,"73":1}}],["一对一",{"0":{"39":1},"2":{"140":1}}],["一对一装配操作处理器",{"2":{"38":1}}],["一个简单易用的关联字段填充框架",{"2":{"332":1}}],["一个类中可能会同时存在复数的装配操作与拆卸操作",{"2":{"283":1}}],["一个听起来权威的错误回复比没有还要糟",{"2":{"213":1}}],["一个真正的新手也许连怎么搜索或在哪找常见问题都不知道",{"2":{"213":1}}],["一个看见讨论串问题",{"2":{"204":1}}],["一个看起来像",{"2":{"187":1}}],["一个撸瑟",{"2":{"193":1}}],["一个黑客只需瞄一眼就能够立即明白你的环境和你遇到的问题",{"2":{"187":1}}],["一个好标题范例是目标",{"2":{"187":1}}],["一个有潜力能贡献社区经验的问题",{"2":{"181":1}}],["一个装配操作包含三个必要的属性",{"2":{"84":1}}],["一个数据源对应一个数据源容器",{"2":{"52":1,"282":1,"310":1,"318":1,"327":1}}],["一个属性对应多个数据源对象",{"2":{"40":1}}],["一个",{"2":{"38":1,"40":1,"73":1,"133":2,"211":1,"331":1}}],["一样",{"2":{"28":1,"53":1}}],["一级分类",{"2":{"24":3}}],["一节尝试在本地编写一个可运行的最小示例",{"2":{"336":1}}],["一节查看具体内容",{"2":{"282":1}}],["一节中手动填充部分内容",{"2":{"254":1}}],["一节中的键值解析策略部分",{"2":{"278":1}}],["一节中的",{"2":{"80":1,"113":1}}],["一节中包装类提取部分",{"2":{"77":1}}],["一节中执行器部分内容",{"2":{"0":1,"129":1,"154":1}}],["一节",{"2":{"9":1,"37":1,"42":1,"45":1,"56":1,"74":1,"75":1,"84":1,"86":1,"89":1,"91":1,"92":1,"110":2,"136":1,"140":1,"152":1,"153":2,"155":1,"162":1,"247":1,"250":1,"252":1,"253":1,"254":1,"257":3,"261":3,"265":1,"277":1,"278":2,"279":1,"286":1,"287":2,"291":1,"297":1,"310":1,"318":1,"327":1}}],["将枚举的",{"2":{"334":1}}],["将性别枚举按编码分组",{"2":{"333":1}}],["将字典编码转为字典值",{"2":{"333":1}}],["将字符串集合拼接为你所需的字符串格式",{"2":{"145":1}}],["将字符串按分隔符拆分",{"0":{"93":1}}],["将配置引入",{"2":{"309":1}}],["将容器注册到全局配置对象",{"2":{"282":1}}],["将它们组合到一起",{"2":{"274":1}}],["将订单类型编码转为订单类型值",{"2":{"273":1,"274":1,"275":2}}],["将所有的配置都集中到一个注解里",{"2":{"262":1}}],["将所有的嵌套对象展开",{"2":{"100":1}}],["将从目标对象中提取",{"2":{"232":1}}],["将从用户指定的",{"2":{"55":1}}],["将接受单个参数并返回单个对象的方法作为数据源容器时",{"2":{"231":1}}],["将mappingtype枚举中的",{"2":{"228":1}}],["将基于同一数据源的操作分为多个小任务",{"2":{"228":1}}],["将启用框架的方式从注解改为",{"2":{"227":1}}],["将更好的支持处理",{"2":{"219":1}}],["将更有可能得到解答",{"2":{"181":1}}],["将starter模块中的部分组件功能分离为核心模块中的独立组件",{"2":{"217":1}}],["将student",{"2":{"134":2}}],["将来其他人可以通过网页搜索找到你的问题和答案",{"2":{"186":1}}],["将员工集合中的员工名称映射到",{"2":{"175":1}}],["将指定部门下所有的员工名称映射到",{"2":{"175":1}}],["将自动在查询字段后面追加该外键字段",{"2":{"173":1}}],["将自动为接口创建",{"2":{"28":1}}],["将使用被",{"2":{"171":1}}],["将对象序列化为",{"2":{"156":1}}],["将对象的",{"2":{"63":1}}],["将按照规定的顺序同步执行填充操作",{"2":{"154":1}}],["将注解分离至独立的",{"2":{"216":1}}],["将注解放到方法上",{"2":{"149":1}}],["将注解配置在类而非属性或方法上",{"2":{"92":1}}],["将当前是否有特定的数据源容器确认是否要应用对应的操作",{"2":{"120":1}}],["将默认使用它作为实际的映射策略",{"2":{"97":1,"144":1}}],["将尝试对所有的同名字段进行拷贝",{"2":{"92":1}}],["将属性值合成为参数对象",{"0":{"92":1}}],["将数据源对象中的",{"2":{"86":1}}],["将输入的",{"2":{"73":1}}],["将该方法",{"2":{"70":1}}],["将手机号中间四位替换为",{"2":{"65":1,"67":1}}],["将得到的",{"2":{"46":1}}],["将",{"2":{"31":1,"131":1,"141":1,"142":1,"160":1,"218":1,"229":1,"257":1,"258":1,"261":1,"262":1,"278":1,"287":1}}],["将根据你在方法上的操作配置对返回值进行填充",{"2":{"155":1}}],["将根据你的配置",{"2":{"92":1}}],["将根据目标对象是否属于指定类型确认是否要应用对应的操作",{"2":{"119":1}}],["将根据指定属性值是否为空确认是否要应用对应的操作",{"2":{"118":1}}],["将根据指定属性值是否等于期望值确认是否要应用对应的操作",{"2":{"117":1}}],["将根据指定表达式的执行结果确认是否要应用对应的操作",{"2":{"116":1}}],["将根据现有的条件自动查找最匹配的方法",{"2":{"71":1}}],["将根据",{"2":{"29":1}}],["将其",{"2":{"283":1}}],["将其配置为一个数据源",{"2":{"261":1}}],["将其转换为对应的表字段",{"2":{"174":1}}],["将其对应的",{"2":{"138":1}}],["将其设置为多例",{"2":{"95":1}}],["将其它参数作为数据源",{"0":{"31":1}}],["将其声明为操作者",{"2":{"27":1}}],["将其注册到全局配置类",{"2":{"1":1}}],["将创建一个",{"2":{"22":1}}],["将无法正确解析到该注解",{"2":{"17":1}}],["将目标注解作为元注解",{"2":{"17":1}}],["将会根据参数对象为填充操作找到对应的数据源对象进行属性映射",{"2":{"278":1}}],["将会删除所有以特定前缀开头的",{"2":{"180":1}}],["将会清除某个命名空间中的缓存",{"2":{"180":1}}],["将会在",{"2":{"161":1}}],["将会通过反射创建一个实例",{"2":{"95":1}}],["将会通过后处理器自动解析并注册",{"2":{"70":1}}],["将会优先从",{"2":{"95":1}}],["将会先过滤控制再做判断",{"2":{"78":1}}],["将会先将操作按数据源容器分组",{"2":{"6":1}}],["将会直接将待处理对象本身作为数据源",{"2":{"63":1}}],["将会使用首个匹配的工厂去生成代理方法",{"2":{"35":1}}],["将会使用",{"2":{"33":1}}],["将会分别解析每个参数的类型",{"2":{"32":1}}],["将会统一按照该配置对参数进行填充",{"2":{"32":1}}],["将会被适配为一个",{"2":{"31":1}}],["将会把要注册的容器对象包装并替换具备缓存功能的增强容器",{"2":{"19":1}}],["将会自动地完成填充",{"2":{"334":1}}],["将会自动加载相关的组件",{"2":{"157":1,"164":1}}],["将会自动进行类型转换",{"2":{"136":1}}],["将会自动注册",{"2":{"82":1}}],["将会自动尝试将",{"2":{"37":1}}],["将会自动获取并注册它",{"2":{"13":1}}],["将会自动从",{"2":{"11":1}}],["将每一组操作再拆分为更细粒度的任务",{"2":{"6":1}}],["oder>",{"2":{"272":1,"273":1}}],["o",{"2":{"210":2}}],["outlook",{"2":{"189":1}}],["out",{"2":{"161":1,"313":1,"314":1,"315":2,"321":1,"322":1,"323":2,"329":1,"330":1}}],["ognlexpressioncontext",{"2":{"160":1}}],["ognlexpressionevaluator",{"2":{"160":1}}],["ognl",{"2":{"116":1,"234":1,"236":1}}],["orm",{"2":{"287":1,"335":1}}],["org",{"2":{"187":3}}],["or",{"2":{"113":3,"121":1}}],["orderservice",{"2":{"272":1,"273":1}}],["orders",{"2":{"272":6}}],["order>",{"2":{"272":1}}],["ordertypename",{"2":{"275":1}}],["ordertypecode",{"2":{"272":2,"275":1}}],["ordertypemap",{"2":{"272":3}}],["ordertype>",{"2":{"272":1}}],["ordertype",{"2":{"271":2,"272":6,"273":5,"274":4,"275":3}}],["orderedbeanoperationrecursiveexecutor",{"2":{"132":2}}],["orderedbeanoperationexecutor",{"2":{"30":1,"127":1,"129":2,"132":1,"154":2,"162":1,"264":1,"285":1}}],["order注解对装配操作排序",{"2":{"216":1}}],["order注解",{"2":{"126":1}}],["order",{"2":{"73":4,"74":1,"126":1,"131":2,"220":1,"222":1,"228":1,"271":3,"272":7,"273":4,"274":6,"275":5,"279":1,"287":4}}],["overflow",{"0":{"184":1},"2":{"184":1}}],["overwritenotnullmappingstrategy",{"2":{"97":1,"144":1,"224":1}}],["overwritemappingstrategy",{"2":{"97":1,"144":1}}],["override",{"2":{"9":1,"16":6,"20":3,"21":3,"24":3,"121":3,"145":1,"179":1,"250":1,"254":1,"279":1}}],["ok",{"2":{"77":1,"151":1,"267":1}}],["on",{"2":{"77":2,"151":4,"234":1,"236":1,"267":2,"268":1}}],["onotoonemethod",{"2":{"71":5,"74":1,"75":2}}],["only",{"2":{"60":1,"244":1}}],["onlyexplicitlyincluded",{"2":{"49":4}}],["onlypublic",{"2":{"48":1,"49":2}}],["one",{"2":{"48":4,"49":2,"58":3,"59":3,"72":2,"73":9,"175":1,"261":2,"262":2}}],["onetomanyassembleoperationhandler",{"2":{"38":1,"41":1,"42":1,"175":1,"292":1}}],["onetooneassembleoperationhandler",{"2":{"38":1,"39":2,"86":1}}],["of",{"2":{"33":2,"48":1,"58":1,"73":4,"74":1,"228":1,"272":1,"333":1}}],["op",{"2":{"210":2,"254":2}}],["op2",{"2":{"111":1,"114":2}}],["op1",{"2":{"111":3,"114":2}}],["opsforvalue",{"2":{"179":2}}],["opsforcontainer",{"2":{"52":1,"54":1,"68":1,"76":1,"83":1,"310":1,"315":1,"318":1,"323":1,"327":1,"330":1}}],["opsforcomponent",{"2":{"16":1,"19":1,"24":1,"65":1,"121":1,"145":1}}],["opsforproxy",{"2":{"28":1,"35":1}}],["operationhandler",{"2":{"331":2}}],["operations",{"2":{"283":1,"285":2}}],["operation",{"2":{"121":1,"283":1,"331":1}}],["operationannotationresolver",{"2":{"219":1}}],["operationannotationproxymethodfactory",{"2":{"35":1}}],["operationannotationhandler",{"2":{"22":1,"24":1,"284":1,"287":1}}],["operationawarebean",{"2":{"21":2,"80":1,"113":1,"250":2,"254":2}}],["operationexecutor",{"2":{"1":4,"6":2}}],["operatetemplate",{"2":{"33":6,"124":1,"147":1,"225":1,"254":2,"286":3}}],["operatemethod",{"2":{"33":1}}],["operate",{"2":{"5":1,"27":1,"29":1,"30":1,"31":3,"240":1,"241":1,"247":2,"248":2}}],["operatorproxyfactory中代理方法的生成也应当支持多种策略",{"2":{"219":1}}],["operatorproxymethodfactory",{"2":{"35":1}}],["operators",{"2":{"28":2}}],["operatorscan",{"2":{"28":2,"233":1}}],["operatorinterface",{"2":{"5":1,"25":2,"27":1,"28":3,"30":1,"31":2,"33":2,"34":1,"110":1,"119":2,"120":1}}],["operator",{"2":{"5":2,"25":3,"27":2,"28":2,"29":1,"30":2,"31":3,"33":4,"34":1,"110":1,"119":2,"120":1,"219":1,"227":1}}],["objectmapper",{"2":{"156":1,"158":2,"159":7,"160":9,"161":4}}],["objectcontainer",{"2":{"80":1}}],["objects",{"2":{"21":3,"67":1,"94":2,"254":2,"272":3}}],["object",{"2":{"9":1,"16":3,"31":1,"121":1,"124":4,"145":3,"178":2}}],["object>",{"2":{"9":2,"16":2,"24":1,"27":1,"31":3,"52":1,"58":1,"67":1,"119":2,"145":1,"178":2,"265":1,"282":4}}],["object>>",{"2":{"5":1,"25":1,"30":1,"265":1}}],["ramendik",{"2":{"215":1}}],["random",{"2":{"181":1}}],["root",{"2":{"210":2}}],["role",{"2":{"89":5,"123":4}}],["rtfm",{"0":{"206":1},"2":{"206":1,"210":1,"213":1}}],["rgb",{"2":{"196":2}}],["runwith",{"2":{"315":1,"323":1}}],["run",{"2":{"50":1,"60":1,"315":1,"323":1}}],["runtime",{"2":{"1":2,"17":1,"24":1,"121":1,"275":3}}],["r",{"2":{"37":1,"265":4}}],["release",{"2":{"308":2,"317":3}}],["readme",{"2":{"223":1}}],["read",{"2":{"206":1}}],["review",{"2":{"199":1}}],["reverse",{"2":{"48":1,"49":1}}],["re",{"2":{"187":2}}],["reporting",{"2":{"183":1}}],["requestparam",{"2":{"151":1,"268":1}}],["requestbody",{"2":{"151":3,"267":2,"268":1}}],["requiredargsconstructor",{"2":{"20":1,"51":2,"56":1,"58":1,"59":1,"61":2,"79":2,"132":1,"145":1,"256":1,"258":1,"265":1,"277":2,"278":1,"279":1,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1}}],["restconroller",{"2":{"161":1}}],["responsebody",{"2":{"161":2}}],["resolveoperationsfromcurrentelement",{"2":{"155":2,"233":1}}],["resourcevalue",{"2":{"145":1}}],["results",{"2":{"265":2,"277":3}}],["result",{"2":{"77":5,"151":10,"152":1,"247":1,"267":7,"268":3}}],["resultkey",{"2":{"71":2,"72":1,"73":3,"75":1,"79":2,"262":1,"265":1}}],["resulttype",{"2":{"9":1,"13":1,"14":1,"71":2,"72":1,"73":3,"74":1,"75":1,"77":2,"79":2,"131":2,"132":1,"262":1,"265":1,"273":2,"274":2,"287":2}}],["registerrepository",{"2":{"168":1}}],["registermapcontainer",{"2":{"310":1,"315":1,"318":1,"323":1,"327":1,"330":1}}],["registermodule",{"2":{"159":1,"160":1}}],["registermethodcontainers",{"2":{"76":1}}],["registerpropertymappingstrategy",{"2":{"145":1}}],["registervaluemapperprovider",{"2":{"65":1,"67":2}}],["registeroperatorproxymethodfactory",{"2":{"35":1}}],["registeroperationannotationhandler",{"2":{"24":1}}],["register",{"2":{"31":1,"167":2,"168":2,"225":1}}],["registeradapter",{"2":{"31":2}}],["registerconditionparser",{"2":{"121":1}}],["registercontainerprovider",{"2":{"54":1}}],["registercontainer",{"2":{"52":1,"68":1,"83":1,"282":1,"296":1}}],["registercontainerlifecycleprocessor",{"2":{"19":1}}],["registercachemanager",{"2":{"16":1}}],["remark",{"2":{"21":1}}],["remove",{"2":{"15":1,"16":2,"180":1}}],["removecache",{"2":{"15":1,"180":2}}],["retrun",{"2":{"82":1}}],["retentionpolicy",{"2":{"17":1,"24":1,"121":1,"275":3}}],["retention",{"2":{"17":1,"24":1,"121":1,"275":3}}],["return",{"2":{"9":2,"13":1,"14":1,"16":2,"20":1,"21":1,"24":4,"33":2,"36":1,"56":2,"65":1,"67":2,"82":1,"87":2,"94":1,"103":1,"121":3,"151":3,"161":1,"178":2,"254":1,"265":1,"267":2,"268":1,"273":1,"309":1,"314":1,"315":1,"322":1,"323":1,"334":1}}],["redistemplate",{"2":{"178":6,"179":3,"180":2}}],["rediscachemanager",{"2":{"178":2}}],["redis",{"0":{"176":1},"2":{"12":3,"176":2,"177":3,"178":1,"179":1,"180":2,"227":1}}],["refactor",{"2":{"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"228":1,"229":1,"232":1,"233":1,"236":1}}],["referencemappingstrategy",{"2":{"97":1,"144":2}}],["reference",{"2":{"97":1}}],["reflect",{"2":{"239":2}}],["reflectivedisassembleoperationhandler",{"2":{"107":2}}],["reflectivealiaspropertykeyresolver",{"2":{"94":2,"95":1}}],["reflectiveseparablepropertykeyresolver",{"2":{"93":1}}],["reflectivebeankeyresolver",{"2":{"92":1}}],["reflectivepropertyoperator",{"2":{"36":1,"160":1,"221":1,"222":1}}],["reflectasm",{"2":{"36":1,"239":1}}],["ref",{"2":{"5":1,"17":2,"24":1,"30":1,"41":1,"42":1,"44":2,"45":1,"46":1,"51":2,"52":1,"55":2,"61":3,"63":1,"74":1,"80":1,"86":1,"87":2,"88":1,"89":2,"90":1,"97":4,"123":3,"126":3,"133":4,"134":3,"135":1,"137":1,"138":1,"139":1,"140":3,"141":7,"142":1,"144":4,"145":2,"161":1,"162":1,"170":1,"175":1,"236":1,"257":1,"258":1,"261":3,"262":3,"274":2,"275":3,"277":1,"279":1,"283":1,"287":4,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1,"334":1}}],["rpc",{"2":{"6":1,"333":1,"335":1}}],["mergedannotation",{"2":{"287":1}}],["methodresultautooperatesupport",{"2":{"299":1}}],["methodresultautooperateadvisor",{"2":{"149":1,"299":1}}],["methodargumentautooperatesupport",{"2":{"299":1}}],["methodargumentautooperateadvisor",{"2":{"149":1,"299":1}}],["methodinvokercontainer",{"2":{"224":1}}],["methodcontainerfactory",{"2":{"70":2}}],["methodcontainerannotationprocessor",{"2":{"70":1}}],["methodhandler",{"2":{"224":1}}],["methodhandle",{"2":{"36":1}}],["methodhandlepropertyoperator",{"2":{"36":1}}],["method",{"2":{"24":1,"72":1,"79":3,"121":1,"245":1,"247":2,"273":2,"287":1}}],["multikeyassembleoperationhandler",{"2":{"216":1}}],["mutt",{"2":{"187":2}}],["milestone",{"2":{"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"232":1,"233":1,"236":1}}],["milliseconds",{"2":{"1":1,"10":1,"11":1,"15":2,"179":1}}],["mikhail",{"2":{"215":1}}],["mitchel",{"2":{"215":1}}],["mime",{"2":{"189":2}}],["mv1005",{"2":{"187":3}}],["mget",{"2":{"179":3}}],["module",{"2":{"158":1,"159":1}}],["msg",{"2":{"77":1,"151":1,"267":1}}],["mpbasemappercontainerregister支持懒加载",{"2":{"218":1}}],["mp",{"2":{"53":1,"174":1,"211":1,"218":1,"236":1}}],["mybatisplus相关扩展的测试用例数据库更换为h2",{"2":{"219":1}}],["mybatisplusquerycontainerprovider",{"2":{"53":1,"166":1,"168":2}}],["mybatisplus",{"0":{"163":1},"1":{"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1},"2":{"53":1,"163":2,"216":1,"218":2,"287":1}}],["mybatis",{"2":{"28":1,"36":1,"164":3,"167":1,"175":1,"177":1,"225":1}}],["matic",{"2":{"210":2}}],["male",{"2":{"51":1,"61":2,"139":2,"256":1,"258":1,"333":1}}],["main",{"2":{"50":1,"60":1,"330":1}}],["manual",{"2":{"206":1}}],["manytomanyassemblehandler",{"2":{"93":2}}],["manytomanyassembleoperationhandler",{"2":{"38":1,"44":3,"45":1,"140":3,"145":2,"273":1,"274":1,"275":1,"293":1,"294":1}}],["many",{"2":{"73":3,"175":1}}],["manager",{"2":{"10":1}}],["max",{"2":{"24":1,"121":1}}],["mapbuilder",{"2":{"310":1,"315":1,"318":1,"323":1,"327":1,"330":1}}],["mapaccessiblepropertyoperator",{"2":{"36":1}}],["mapcontainer",{"2":{"31":1,"52":2,"282":5}}],["mapcachemanager",{"2":{"11":2,"12":1,"14":1}}],["mapped",{"2":{"228":1,"233":1}}],["mapperscan",{"2":{"28":1}}],["mapper",{"2":{"25":1,"66":1,"67":1,"166":1,"167":5,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"225":2}}],["mapping配置",{"2":{"217":1}}],["mappingtemplate",{"2":{"141":1}}],["mappingtemplates",{"2":{"24":1}}],["mappingtype",{"2":{"72":2,"73":14,"74":1,"175":2,"233":1,"261":1,"262":1,"278":1}}],["mapping",{"2":{"5":1,"6":3,"17":2,"21":2,"24":2,"25":1,"27":1,"30":1,"31":3,"41":1,"42":1,"44":2,"45":1,"46":1,"51":1,"52":1,"55":2,"61":2,"63":1,"73":4,"74":1,"79":2,"80":1,"86":1,"87":2,"88":1,"89":2,"90":1,"92":1,"93":1,"94":1,"97":1,"123":3,"126":3,"133":5,"134":3,"135":1,"137":2,"138":2,"139":1,"140":2,"141":7,"142":2,"144":1,"145":4,"161":1,"162":1,"170":1,"175":1,"224":1,"228":1,"257":1,"258":1,"261":3,"262":3,"273":1,"274":3,"275":5,"277":1,"278":2,"279":1,"283":1,"287":4,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1,"334":1}}],["mapstruct",{"2":{"25":1,"133":1}}],["mapmaker",{"2":{"14":1,"300":1}}],["map",{"2":{"5":1,"9":2,"12":1,"13":1,"14":1,"16":11,"20":2,"25":2,"27":1,"30":1,"31":6,"36":2,"40":1,"52":3,"56":1,"69":5,"71":1,"73":7,"82":1,"139":1,"179":1,"218":1,"219":1,"240":3,"257":1,"265":5,"272":6,"277":4,"278":1,"282":8,"296":1,"310":4,"315":3,"318":4,"323":3,"327":4,"330":3,"333":1}}],["io",{"2":{"335":1}}],["import",{"2":{"309":2,"315":1}}],["impl",{"2":{"11":1}}],["implements",{"2":{"9":1,"20":1,"21":1,"50":1,"56":1,"60":1,"82":1,"145":1,"179":1,"250":1,"254":1,"277":2,"279":1}}],["itemoforder",{"2":{"272":4}}],["itemmap",{"2":{"272":2}}],["itemids",{"2":{"272":2}}],["itemsoforder",{"2":{"272":2}}],["itemservice",{"2":{"272":1,"273":1,"274":1}}],["items",{"2":{"271":2,"272":2,"273":1,"274":1,"275":1}}],["item>",{"2":{"271":1,"272":3,"273":1,"274":2,"275":1}}],["item",{"2":{"271":2,"272":7,"273":7,"274":9,"275":7}}],["irc",{"0":{"185":1},"2":{"185":5}}],["ignore",{"2":{"86":1,"118":1,"249":1}}],["issues",{"2":{"216":1,"289":1}}],["isnull",{"2":{"21":1,"94":2}}],["isinvalid",{"2":{"15":1}}],["if",{"2":{"21":1,"67":1,"94":2,"250":1,"272":3}}],["in",{"2":{"170":1,"171":1,"172":1,"173":1,"174":1}}],["instance",{"2":{"160":3}}],["instanceof",{"2":{"119":1,"121":1,"254":1}}],["info",{"2":{"80":2}}],["includes",{"2":{"124":3,"153":2,"167":2,"252":1}}],["include",{"2":{"49":4}}],["includeclasses",{"2":{"28":1,"50":1,"60":1}}],["includepackages",{"2":{"28":1,"50":1,"60":1}}],["init",{"2":{"19":1,"20":2,"159":1}}],["interger>",{"2":{"265":2}}],["interger",{"2":{"265":3}}],["international",{"2":{"202":1}}],["internalproviderassembleannotationhandler",{"2":{"24":2}}],["interface",{"2":{"5":1,"17":1,"24":1,"25":1,"27":1,"30":1,"31":2,"33":1,"34":1,"67":1,"110":1,"119":2,"120":1,"121":1,"274":2,"275":3,"287":1}}],["integer>forlambda",{"2":{"90":1}}],["integer>formap",{"2":{"82":1}}],["integer>",{"2":{"31":1,"43":1,"52":1,"56":2,"73":6,"77":2,"82":3,"129":1,"131":2,"140":1,"151":3,"155":1,"257":1,"260":2,"261":2,"264":1,"265":1,"267":2,"268":1,"272":3,"273":1,"274":2,"282":5,"287":1,"333":1,"334":1}}],["integer",{"2":{"3":2,"6":3,"17":2,"21":2,"24":2,"31":3,"41":1,"42":1,"43":1,"45":2,"52":2,"55":2,"56":1,"61":2,"68":2,"73":3,"74":1,"77":1,"80":1,"82":1,"86":1,"87":2,"88":1,"89":1,"90":4,"93":2,"94":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"112":1,"113":2,"117":4,"120":1,"121":1,"123":2,"126":4,"131":1,"132":1,"134":2,"135":2,"137":2,"141":3,"142":2,"151":1,"152":1,"153":1,"154":1,"161":4,"162":3,"169":2,"170":1,"171":1,"174":3,"175":1,"250":2,"251":3,"252":3,"253":4,"254":3,"256":2,"257":1,"258":2,"260":4,"261":2,"262":2,"264":3,"265":3,"267":1,"271":3,"272":3,"273":3,"274":2,"275":3,"276":1,"277":3,"278":2,"279":1,"282":4,"283":1,"287":2,"310":2,"311":1,"315":3,"318":2,"319":1,"323":3,"327":2,"328":1,"330":3,"333":2,"334":1}}],["int",{"2":{"1":2,"24":1,"58":1,"59":1,"121":1}}],["id=3",{"2":{"313":1,"321":1,"329":1}}],["id=2",{"2":{"313":1,"321":1,"329":1}}],["id=1",{"2":{"313":1,"321":1,"329":1}}],["id4",{"2":{"126":3}}],["id3",{"2":{"126":5,"140":1,"251":1,"252":1,"253":2,"254":6}}],["id2",{"2":{"126":5,"140":1,"251":1,"252":1,"253":1,"254":1}}],["id1",{"2":{"126":3,"140":1,"251":1,"252":1,"253":3,"254":1}}],["identify",{"2":{"90":2}}],["identity",{"2":{"20":1,"24":1,"56":1,"68":2}}],["idarray",{"2":{"43":1}}],["idlist",{"2":{"43":1}}],["idstr",{"2":{"43":1}}],["ids",{"2":{"40":2,"56":2,"73":3,"77":2,"82":1,"90":2,"93":1,"129":1,"131":4,"151":6,"155":1,"257":2,"260":2,"261":2,"264":1,"267":4,"268":2,"272":2,"273":2,"274":2,"277":4,"282":2,"287":1,"333":2,"334":2}}],["id",{"2":{"5":1,"6":2,"17":4,"21":4,"24":3,"25":1,"27":3,"30":1,"31":3,"34":2,"40":2,"41":2,"42":2,"52":1,"55":2,"61":1,"71":4,"72":1,"73":3,"74":2,"75":2,"79":4,"80":2,"86":4,"87":3,"88":3,"89":7,"90":2,"92":2,"94":8,"97":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"111":8,"114":5,"117":4,"120":1,"121":2,"123":5,"126":3,"131":2,"132":3,"134":2,"135":2,"137":3,"139":1,"141":2,"142":2,"144":1,"155":2,"161":4,"169":1,"170":3,"171":4,"174":2,"175":4,"235":1,"236":1,"249":2,"257":2,"260":1,"261":2,"262":2,"264":4,"265":4,"271":5,"272":1,"273":2,"274":1,"275":1,"276":3,"277":1,"278":2,"279":2,"282":4,"283":2,"311":3,"315":2,"319":3,"323":2,"328":3,"330":2,"331":1,"333":1}}],["30",{"0":{"217":1,"221":1,"236":1}}],["3",{"0":{"5":1,"6":1,"11":2,"15":1,"16":1,"21":1,"29":1,"35":1,"43":1,"44":1,"45":1,"46":2,"50":1,"60":1,"67":1,"73":1,"88":1,"91":1,"92":1,"93":1,"94":2,"95":1,"104":1,"105":1,"107":1,"112":1,"118":1,"121":1,"130":1,"131":1,"132":1,"138":1,"151":1,"162":1,"168":1,"169":1,"170":1,"171":1,"172":2,"173":1,"179":1,"219":1,"225":1,"226":1,"241":1,"245":1,"247":1,"254":1,"258":1,"262":1,"274":1,"279":1,"283":1,"310":1,"319":1,"327":1,"335":1},"1":{"44":1,"45":1,"46":1,"92":1,"93":1,"94":1,"95":1,"131":1,"132":1,"170":1,"171":1,"172":1,"173":1},"2":{"6":1,"31":1,"44":2,"46":1,"65":1,"67":1,"78":2,"113":5,"128":1,"140":1,"145":1,"179":4,"181":1,"219":1,"220":1,"264":1,"272":1,"273":1,"274":1,"275":1,"282":1,"310":1,"313":1,"314":1,"315":3,"317":3,"318":1,"321":1,"322":1,"323":3,"327":1,"329":1,"330":2,"333":2}}],["从某种程度来说",{"2":{"333":1}}],["从缓存或",{"2":{"333":1}}],["从全局配置类获取执行器",{"2":{"285":1}}],["从全局配置类获取解析器",{"2":{"285":1}}],["从全局配置类中获取配置解析器",{"2":{"283":1}}],["从全局配置中获取",{"2":{"11":1}}],["从容器中得到按相应",{"2":{"282":1}}],["从容器中获取到对应的数据后",{"2":{"133":1}}],["从容器中获取对应的枚举实例",{"2":{"58":1}}],["从返回值中提取待填充数据时",{"2":{"234":1,"236":1}}],["从另一个角度来看",{"2":{"211":1}}],["从资深黑客那里得到的唯一严重缺陷反馈",{"2":{"203":1}}],["从开机",{"2":{"194":1}}],["从注解元素获取配置",{"0":{"155":1}}],["从数据源容器获得的一个键值将对应一批数据源对象",{"2":{"140":1}}],["从而实现级联填充的效果",{"2":{"263":1}}],["从而实现字段值的同步更新",{"2":{"63":1}}],["从而在后续调用时略过配置解析步骤",{"2":{"248":1}}],["从而有四种情况",{"2":{"169":1}}],["从而对条件取反",{"2":{"112":1}}],["从而保证它与数据源接受的参数类型一致",{"2":{"90":1}}],["从命名空间为",{"2":{"86":1}}],["从方法数据源容器调用适配方法以获取数据源",{"2":{"37":1}}],["从",{"2":{"4":1,"19":1,"21":1,"55":1,"78":1,"90":1,"121":1,"128":1,"145":1,"155":2,"189":1,"281":1,"287":2}}],["你所面临的场景越多样化",{"2":{"335":1}}],["你所付出的也是微不足道的",{"2":{"212":1}}],["你了解了如何基于自动填充",{"2":{"269":1}}],["你有一个方法",{"2":{"260":1}}],["你有一个",{"2":{"256":1}}],["你定义了一个根据",{"2":{"249":1}}],["你必须有清楚而详尽的缺陷说明文件作后盾",{"2":{"210":1}}],["你必须让我看看",{"2":{"194":1}}],["你完全有可能是第一个注意到被成千上万用户反复使用的系统调用与函数库文件有明显缺陷的人",{"2":{"210":1}}],["你还需要有一个操作执行器",{"2":{"285":1}}],["你还可以通过",{"2":{"335":1}}],["你还可以通过预置的组合注解方便地使用它们",{"2":{"14":1}}],["你还可以在注解中调整字段的映射规则",{"2":{"283":1}}],["你还得把它送到修车铺",{"2":{"212":1}}],["你还有什么要补充的吗",{"2":{"210":1}}],["你能在这儿找到用户群组的清单",{"2":{"210":1}}],["你能帮我吗",{"2":{"210":4}}],["你能做的最糟糕的事莫过于哀嚎你的遭遇",{"2":{"209":1}}],["你要的是",{"2":{"209":1}}],["你要求他们奉献的时间越少",{"2":{"198":1}}],["你该这么做",{"2":{"209":1}}],["你以本指南所描述的或类似的方式",{"2":{"209":1}}],["你偶尔真的会碰到无礼和无聊的言行",{"2":{"208":1}}],["你是指这两个中的哪一个吗",{"2":{"207":1}}],["你不应该因此不爽",{"2":{"206":1}}],["你不会想让这种事发生在自己身上的",{"2":{"183":1}}],["你自己去搜索这些信息比灌给你",{"2":{"206":1}}],["你应该先清除它",{"2":{"207":1}}],["你应该对他祖母般的慈祥表示感谢",{"2":{"206":1}}],["你应该去读一读",{"2":{"206":1}}],["你应该能提供相应位置的修正或替代文件",{"2":{"192":1}}],["你希望能看到你问题的人可能永远也看不到",{"2":{"202":1}}],["你会在下次提问时尝到甜头",{"2":{"204":1}}],["你会在回复中看到这点",{"2":{"192":1}}],["你会从中学到东西",{"2":{"200":1}}],["你越有可能从真正专业而且很忙的专家那里得到解答",{"2":{"198":1}}],["你越有可能得到实质性的帮助",{"2":{"181":1}}],["你很可能就自己找到了解决方法或权宜之计",{"2":{"191":1}}],["你很可能被忽略掉或者被看作失败者",{"2":{"183":1}}],["你得到有效的回答的机会和速度都会大大的提升",{"2":{"190":1}}],["你给了相应人员处置你邮件的选择",{"2":{"186":1}}],["你也不能强求技术支持总是免费的",{"2":{"212":1}}],["你也该有足够的智慧去",{"2":{"210":1}}],["你也该这样做",{"2":{"185":1}}],["你也可能被要求去爬爬论坛的旧文",{"2":{"206":1}}],["你也可以添加自己的注解处理器以便支持自定义注解",{"2":{"287":1}}],["你也可以",{"2":{"213":1}}],["你也可以设置更细粒度的条件",{"2":{"152":1}}],["你也可以按照选项式风格",{"2":{"262":1}}],["你也可以按照",{"2":{"149":1}}],["你也可以自定义一个条件注解",{"2":{"121":1}}],["你也可以选择令目标类实现",{"2":{"113":1}}],["你也可以选择不在方法上加任何注解",{"2":{"32":1}}],["你也可以将其放置在类上",{"2":{"110":1}}],["你也可以提供自己的实现类来替换默认的类型解析器",{"2":{"106":1}}],["你也可以提供一个无参构造方法",{"2":{"95":1}}],["你也可以像",{"2":{"55":1}}],["你也可以实现",{"2":{"37":1,"95":1}}],["你也可以使用",{"2":{"34":1,"126":1,"134":1,"135":1,"137":1,"138":1}}],["你也可以注册自己的缓存管理器",{"2":{"13":1}}],["你也可以引入",{"2":{"12":1}}],["你也可以通过让目标对象实现",{"2":{"254":1}}],["你也可以通过设置操作的应用条件来实现类似的效果",{"2":{"153":1}}],["你也可以通过",{"2":{"31":1,"45":1}}],["你也可以通过替换",{"2":{"17":1}}],["你也可以通过管理器获取具体的缓存对象",{"2":{"15":1}}],["你也可以通过获取",{"2":{"11":1}}],["你也可以通过配置文件配置要对哪些容器应用缓存",{"2":{"10":1}}],["你也可以直接在数据源的层面直接就处理好级联关系",{"2":{"265":1}}],["你也可以直接实现",{"2":{"65":1}}],["你也可以直接为已有的操作器添加额外的装饰器",{"2":{"36":1}}],["你也可以直接将注解加在配置类里的工厂方法上",{"2":{"9":1}}],["你也可以直接使用默认提供的组合注解快捷使用",{"2":{"3":1}}],["你也可以在任意注解或配置类中通过",{"2":{"309":1}}],["你也可以在方法参数上添加",{"2":{"149":1}}],["你也可以在类上声明",{"2":{"88":1}}],["你也可以在带有",{"2":{"9":1}}],["你也可以在手动填充时使用",{"2":{"4":1}}],["你再到特定相关主题的网站去找",{"2":{"184":1}}],["你的",{"2":{"257":1}}],["你的说明里应该包含你的操作步骤",{"2":{"195":1}}],["你的加入也有可能使情况走向极端",{"2":{"183":1}}],["你的数据源容器接受的",{"2":{"90":1}}],["你就知道了答案",{"2":{"210":1}}],["你就有完成它的能力和决心",{"2":{"181":1}}],["你就可以在",{"2":{"52":1}}],["你就可以基于方法填充任意类型的对象了",{"2":{"29":1}}],["你将会是自己去挣到一个答案",{"2":{"181":1}}],["你将该管理器直接交由",{"2":{"16":1}}],["你并没有",{"2":{"181":1}}],["你没有",{"2":{"181":1}}],["你声明的管理器的",{"2":{"179":1}}],["你仅需要让自己的实现类继承它并实现关键的抽象方法即可",{"2":{"121":1}}],["你仅需要将其交给",{"2":{"13":1}}],["你都快通过操作门面后手动注册容器",{"2":{"83":1}}],["你在抱怨前已经做了这些",{"2":{"192":1}}],["你在属性上添加了条件注解",{"2":{"114":1}}],["你在",{"2":{"79":1}}],["你同样可以通过在被",{"2":{"79":1}}],["你只需返回一个根节点",{"2":{"132":1}}],["你只需要把自定义的注解解析器交给",{"2":{"121":1}}],["你只需要填写足以区分出两个方法的前部分参数即可",{"2":{"71":1}}],["你只需要将自定义策略交由",{"2":{"98":1,"145":1}}],["你只需要将",{"2":{"56":1}}],["你只需要将该注解处理器交由",{"2":{"24":1}}],["你只需要与",{"2":{"37":2}}],["你只需要实现三个抽象方法即可",{"2":{"24":1}}],["你只需将其交给",{"2":{"19":1}}],["你直接基于",{"2":{"24":1}}],["你需要提前准备好一些数据源",{"2":{"310":1,"318":1,"327":1}}],["你需要提供精确有内容的信息",{"2":{"191":1}}],["你需要根据",{"2":{"260":1}}],["你需要根据你的需要定义一个注解",{"2":{"24":1}}],["你需要配置一个操作",{"2":{"256":1}}],["你需要的信息非常容易获得",{"2":{"206":1}}],["你需要通过它完成包括数据源注册在内的各种必要操作",{"2":{"281":1}}],["你需要通过自动注册",{"2":{"165":1}}],["你需要通过",{"2":{"161":1}}],["你需要通过全局配置获取该组件",{"2":{"121":1}}],["你需要触发操作的执行",{"2":{"146":1}}],["你需要将其注册到",{"2":{"121":1,"282":1}}],["你需要将其手动注册到全局配置中",{"2":{"54":1}}],["你需要自己避免循环引用",{"2":{"105":1}}],["你需要使用",{"2":{"71":1}}],["你需要跳过前五位",{"2":{"67":1}}],["你需要向",{"2":{"65":1}}],["你需要在",{"2":{"257":1,"261":2}}],["你需要在自己的配置类中基于",{"2":{"178":1}}],["你需要在启动类或配置类添加",{"2":{"28":1}}],["你需要在创建",{"2":{"13":1}}],["你需要实现",{"2":{"16":1,"121":1}}],["你总是可以通过容器的",{"2":{"15":1}}],["你可能得到像是建议采用另一个更合适的工具的回复",{"2":{"196":1}}],["你可能需要考虑事务对管道操作的一些影响",{"2":{"179":1}}],["你可能需要手动的刷新缓存",{"2":{"15":1}}],["你可以参考",{"2":{"309":1}}],["你可以参照着理解一下",{"2":{"73":1}}],["你可以选择手动填充或自动填充",{"2":{"312":1,"320":1}}],["你可以选择阅读后续章节",{"2":{"306":1}}],["你可以选择直接通过缓存管理器移除这个缓存",{"2":{"15":1}}],["你可以尝试在源码中",{"2":{"289":1}}],["你可以根据参数对象查询出相关的数据",{"2":{"278":1}}],["你可以根据情况自行选择",{"2":{"149":1}}],["你可以根据情况选择",{"2":{"33":1,"287":1}}],["你可以结合一个填充起来比较麻烦的的订单列表查询的例子",{"2":{"269":1}}],["你可以为每个操作指定生效条件",{"2":{"253":1}}],["你可以为三个操作分别指定其所属的分组",{"2":{"252":1}}],["你可以令你的待填充对象实现",{"2":{"250":1}}],["你可以向很多商业公司寻求帮助",{"2":{"212":1}}],["你可以问与",{"2":{"210":1}}],["你可以要求给点提示",{"2":{"200":1}}],["你可以不必在",{"2":{"155":1}}],["你可以不配置",{"2":{"155":1}}],["你可以不指定",{"2":{"80":1}}],["你可以定义一个策略",{"2":{"145":1}}],["你可以手动指定期望值类型",{"2":{"117":1}}],["你可以指定条件的类型为",{"2":{"113":1}}],["你可以指定批量大小",{"2":{"6":1}}],["你可以同时为操作应用多个条件",{"2":{"113":1}}],["你可以额外的为其指定一个",{"2":{"89":1}}],["你可以绑定到一个",{"2":{"88":1}}],["你可以",{"2":{"86":1}}],["你可以快速的使用",{"2":{"79":1}}],["你可以只填写方法名",{"2":{"71":1}}],["你可以将",{"2":{"309":1}}],["你可以将注解的",{"2":{"112":1}}],["你可以将注解声明在接口或抽象类上",{"2":{"71":1}}],["你可以将条件绑定到指定的操作上",{"2":{"111":1}}],["你可以将你的容器直接交给",{"2":{"82":1}}],["你可以将任何输入collection集合并返回map集合的",{"2":{"68":1}}],["你可以基于选项式风格的配置",{"2":{"273":1}}],["你可以基于更多的配置项和不同的声明方式来配置基于方法的填充操作",{"2":{"261":1}}],["你可以基于更多的配置项和不同的声明方式来配置基于枚举的填充操作",{"2":{"257":1}}],["你可以基于配置文件对",{"2":{"237":1}}],["你可以基于代理来实现自动填充方法的参数和返回值",{"2":{"148":1}}],["你可以基于下面的示例感受一下",{"2":{"132":1}}],["你可以基于注解完成一些自定义的逻辑",{"2":{"67":1}}],["你可以基于任何类型的数据源创建容器",{"2":{"52":1}}],["你可以基于它实现支持装配操作的注解处理器",{"2":{"24":1}}],["你可以基于它实现支持装配或拆卸操作的注解处理器",{"2":{"24":1}}],["你可以使用引入",{"2":{"176":1}}],["你可以使用",{"2":{"51":1,"61":1,"79":1,"86":1}}],["你可以使用组合注解机制优化它",{"2":{"17":1}}],["你可以用它实现类似的效果",{"2":{"46":1}}],["你可以直接阅读",{"2":{"336":1}}],["你可以直接升级",{"2":{"304":1}}],["你可以直接通过常量来引用策略",{"2":{"97":1}}],["你可以直接将其注册到",{"2":{"98":1}}],["你可以直接将其交给",{"2":{"95":1}}],["你可以直接将带有容器方法的类交由",{"2":{"70":1}}],["你可以直接在原配置的基础上添加注解",{"2":{"110":1}}],["你可以直接在类或方法上添加",{"2":{"71":1}}],["你可以直接在操作者接口中定义一个抽象方法",{"2":{"33":1}}],["你可以直接在实现了",{"2":{"9":1}}],["你可以直接参见文档",{"2":{"27":1}}],["你可以更灵活的添加一些自定义的逻辑",{"2":{"21":1}}],["你可以感受一下上述回调接口的使用场景",{"2":{"21":1}}],["你可以在避免",{"2":{"335":1}}],["你可以在后文",{"2":{"282":1}}],["你可以在里面指定过滤器或执行器",{"2":{"147":1}}],["你可以在注解中使用",{"2":{"133":1}}],["你可以在注解中通过",{"2":{"90":1}}],["你可以在手动填充和自动填充的情况下使用分组功能",{"2":{"124":1}}],["你可以在表达式中通过",{"2":{"116":1}}],["你可以在同一个键上声明多次装配操作",{"2":{"89":1}}],["你可以在方法上添加",{"2":{"75":1}}],["你可以在子类中绑定父类方法作为方法容器",{"2":{"71":1}}],["你可以在自定义的容器类上直接添加",{"2":{"56":1}}],["你可以在类或者方法上添加",{"2":{"9":1}}],["你可以在",{"2":{"3":1,"5":1,"39":1,"50":1,"55":1,"60":1,"77":1,"93":1,"99":1,"122":1}}],["你可以通过依赖注入获得它",{"2":{"281":1}}],["你可以通过依赖注入来获得操作者接口",{"2":{"28":1}}],["你可以通过下述代码基于默认配置手动创建一个全局配置对象",{"2":{"281":1}}],["你可以通过下述方式来配置如何生成参数对象",{"2":{"74":1}}],["你可以通过下述方式来指定如何生成参数对象",{"2":{"42":1}}],["你可以通过下述方法进行替换",{"2":{"1":1}}],["你可以通过编码的方式更灵活地排除一些操作",{"2":{"254":1}}],["你可以通过其他渠道获得帮助",{"2":{"212":1}}],["你可以通过手动代理实现类似的效果",{"2":{"148":1}}],["你可以通过它使用",{"2":{"147":1}}],["你可以通过它去创建所有类型的容器实例",{"2":{"69":1}}],["你可以通过在手动或自动装配时指定使用异步执行器来实现多线程填充的效果",{"2":{"305":1}}],["你可以通过在",{"2":{"123":1}}],["你可以通过在配置文件中配置枚举包路径",{"2":{"60":1}}],["你可以通过在配置文件中配置常量包路径",{"2":{"50":1}}],["你可以通过实现",{"2":{"98":1,"145":1}}],["你可以通过指定的",{"2":{"282":1}}],["你可以通过指定",{"2":{"91":1}}],["你可以通过类似的方法指定从返回的包装类中获取实际数据",{"2":{"77":1}}],["你可以通过添加自己的",{"2":{"70":1}}],["你可以通过配置文件或者注解配置扫描路径",{"2":{"50":1,"60":1}}],["你可以通过配置类重新配置执行器",{"2":{"1":1}}],["你可以通过操作门面手动创建代理对象",{"2":{"28":1}}],["你可以通过直接在接口抽象方法上添加",{"2":{"25":1}}],["你可以通过各种注解去声明操作配置",{"2":{"22":1}}],["你可以通过",{"2":{"6":1,"13":1,"14":1,"33":1,"51":1,"61":1,"92":1,"161":1,"282":1}}],["你可以通过改变执行器支持异步填充",{"2":{"0":1}}],["02",{"0":{"228":1,"229":1}}],["01",{"0":{"227":1,"228":1}}],["0版本后",{"2":{"224":1}}],["06",{"0":{"222":1,"234":1,"235":1,"236":1}}],["08",{"0":{"220":1,"222":1,"223":1,"232":1}}],["07",{"0":{"220":1,"221":1,"233":1}}],["05",{"0":{"219":1,"233":1,"234":1}}],["09",{"0":{"218":1,"224":1}}],["04",{"0":{"218":1,"232":1}}],["03",{"0":{"216":1,"217":1,"230":1,"231":1}}],["0086",{"2":{"67":4}}],["0",{"0":{"216":2,"217":1,"218":1,"219":1,"220":2,"221":2,"222":2,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"232":1,"233":1,"236":1},"2":{"3":1,"9":1,"21":2,"42":1,"46":1,"50":2,"60":2,"61":1,"64":1,"65":1,"67":1,"74":1,"75":1,"77":1,"78":1,"79":1,"86":1,"91":1,"96":1,"97":1,"108":1,"112":2,"113":9,"126":1,"132":2,"133":1,"134":1,"135":1,"137":1,"138":1,"143":1,"155":1,"176":1,"219":1,"220":4,"221":2,"222":4,"249":1,"253":1,"256":1,"258":1,"304":2,"333":1}}],["0l",{"2":{"1":1}}],["7",{"0":{"77":1,"142":1,"155":1,"232":1,"287":1},"2":{"3":1,"42":1,"65":1,"67":1,"74":1,"91":1,"133":1,"134":1,"135":1,"137":1,"138":1,"155":1,"181":1}}],["n",{"2":{"285":1}}],["nasa",{"2":{"202":1}}],["name=",{"2":{"313":3,"321":3,"329":3}}],["namesapce",{"2":{"55":1,"274":1,"275":1,"287":1}}],["namespace",{"2":{"9":2,"10":4,"13":1,"14":1,"15":1,"20":1,"24":2,"31":2,"48":1,"49":2,"52":1,"55":1,"58":1,"59":2,"68":3,"71":4,"72":1,"73":6,"74":1,"75":1,"99":2,"120":1,"132":1,"179":2,"233":1,"274":5,"275":2,"277":2,"282":1,"283":1,"287":1,"310":1,"318":1,"327":1}}],["name3",{"2":{"46":1,"145":2,"251":2,"252":2,"253":1,"254":2}}],["name2",{"2":{"46":1,"145":2,"251":2,"252":2,"253":2,"254":2}}],["name1",{"2":{"46":1,"145":2,"161":2,"251":2,"252":2,"253":2,"254":2}}],["name",{"2":{"5":1,"6":2,"16":4,"17":4,"21":4,"25":1,"27":1,"30":1,"31":3,"39":1,"41":2,"42":1,"44":2,"46":3,"49":2,"52":2,"55":6,"59":1,"63":2,"74":1,"79":4,"80":2,"86":3,"87":3,"88":2,"89":3,"92":3,"93":2,"94":2,"99":2,"105":1,"110":8,"111":2,"112":1,"113":1,"114":1,"116":3,"117":2,"118":2,"123":7,"132":1,"134":8,"135":8,"138":5,"140":4,"141":4,"142":6,"145":6,"161":3,"169":1,"170":3,"171":1,"172":2,"173":4,"174":8,"175":1,"250":4,"253":1,"260":1,"261":1,"262":1,"264":3,"271":1,"273":8,"274":8,"275":8,"276":2,"277":4,"278":2,"279":2,"283":5,"287":4,"311":4,"315":3,"319":4,"323":3,"328":4,"330":3,"331":1,"334":2}}],["nulix",{"2":{"211":2}}],["nullable",{"2":{"16":1,"121":1,"145":1,"279":1}}],["null",{"0":{"249":1},"2":{"9":1,"34":2,"71":1,"72":1,"78":6,"86":5,"96":1,"97":4,"113":1,"117":4,"118":2,"143":1,"144":4,"223":1,"249":7,"253":1}}],["number",{"2":{"65":1,"66":1,"67":2}}],["num",{"2":{"58":3,"59":2}}],["negate",{"2":{"112":2,"117":1,"121":3}}],["nestedfoo",{"2":{"142":3}}],["nested",{"2":{"110":1,"123":2,"142":3,"283":2}}],["nestedbean",{"2":{"21":7}}],["needscanenum",{"2":{"60":1}}],["needscanconstant",{"2":{"50":1}}],["new",{"2":{"1":7,"6":1,"9":1,"11":2,"13":1,"14":1,"15":2,"16":3,"19":1,"20":1,"24":1,"25":1,"29":1,"33":6,"35":1,"36":2,"48":1,"52":1,"59":1,"69":1,"76":1,"94":1,"121":2,"128":2,"132":1,"148":1,"151":3,"160":8,"161":2,"178":2,"257":1,"265":2,"267":2,"268":1,"271":1,"277":1,"282":3,"285":1,"309":1,"313":3,"314":3,"315":6,"321":3,"322":3,"323":6,"329":3,"330":3}}],["none与",{"2":{"233":1}}],["none",{"2":{"228":1}}],["nonnull",{"2":{"16":1,"21":1,"24":1,"67":2,"121":1,"254":1,"272":3}}],["nodeid",{"2":{"132":1}}],["node>",{"2":{"132":2}}],["node",{"2":{"132":4}}],["nodeservice",{"2":{"132":1}}],["no",{"0":{"304":1},"2":{"73":4,"223":1,"228":2,"233":1,"278":1,"304":2}}],["noscanenum",{"2":{"60":1}}],["noscanconstant",{"2":{"50":1}}],["nothing",{"2":{"3":2,"124":2,"149":3,"150":1,"152":1,"153":1,"154":1}}],["nsetedbean",{"2":{"6":2}}],["50",{"2":{"187":1}}],["5",{"0":{"31":1,"75":1,"99":1,"114":1,"120":1,"140":1,"153":1,"175":1,"228":1,"249":1,"285":1,"312":1,"313":1,"314":1,"323":1,"329":1},"1":{"313":1,"314":1},"2":{"1":1,"6":1,"21":1,"67":1,"181":1,"249":1,"304":1,"317":3}}],["创建全局配置",{"0":{"326":1}}],["创建全局配置类",{"2":{"160":1}}],["创建",{"2":{"229":1}}],["创建自定义策略",{"2":{"145":1}}],["创建操作门面",{"2":{"54":1,"326":1,"330":1}}],["创建并注册数据源",{"2":{"310":1,"315":1,"318":1,"323":1,"327":1,"330":1}}],["创建并注册",{"0":{"54":1}}],["创建容器时可以指定",{"2":{"233":1}}],["创建容器",{"0":{"48":1,"58":1}}],["创建代理对象",{"0":{"28":1},"2":{"148":1}}],["创建一个基于",{"2":{"282":2}}],["创建一个默认配置类",{"2":{"281":1,"282":1,"283":1}}],["创建一个代理工厂",{"2":{"148":1}}],["创建一个全局配置类",{"2":{"148":1}}],["创建一个操作门面",{"2":{"65":1}}],["创建一个数据源容器",{"2":{"24":1}}],["创建一个缓存",{"2":{"15":2}}],["创建组合注解",{"2":{"17":1}}],["创建异步操作执行器",{"2":{"1":1,"6":1}}],["创建线程池",{"2":{"1":1}}],["bytebuddy",{"2":{"233":1}}],["bsd",{"2":{"210":1}}],["bigler",{"2":{"208":1}}],["bill比什么也不说要来的好",{"2":{"204":1}}],["bindmethodparamtypes",{"2":{"71":3,"72":1}}],["bindmethod",{"2":{"71":2,"72":1,"79":2,"273":2,"274":2,"278":1,"287":2}}],["bug",{"0":{"192":1},"2":{"183":2,"187":1,"190":2,"191":1,"192":5,"196":1,"199":2,"203":1,"221":1,"226":1,"230":1,"231":1,"234":1,"235":1}}],["builder",{"2":{"121":1,"229":1}}],["build",{"2":{"1":1,"24":1,"48":1,"58":1,"121":1,"310":1,"315":1,"318":1,"323":1,"327":1,"330":1}}],["bate",{"0":{"221":1}}],["bass",{"2":{"210":2}}],["base",{"2":{"123":2,"124":2,"153":2}}],["basemapper",{"2":{"53":1,"163":1,"165":1,"169":2}}],["baomidou",{"2":{"164":1}}],["boot",{"2":{"164":1,"219":1,"317":8}}],["boolean",{"2":{"21":1,"72":2,"79":1,"121":2,"254":1}}],["boundoperationids",{"2":{"121":1}}],["be",{"2":{"224":1}}],["beforeassembleoperation",{"2":{"21":1}}],["beanmethodcontainerregistrar",{"2":{"298":2}}],["beandefinition",{"2":{"28":1}}],["beanoperationparser",{"2":{"283":3,"284":1,"285":2,"289":1}}],["beanoperation",{"2":{"248":1,"331":1}}],["beanoperations",{"2":{"22":1,"24":2,"127":1,"283":2,"285":1,"289":1,"331":3}}],["beanoperationexecutor",{"2":{"0":1,"127":1,"146":1,"147":1,"285":3,"331":1}}],["beanname",{"2":{"13":1,"14":1,"79":2,"166":1,"179":1,"216":1,"262":1}}],["bean",{"2":{"6":9,"9":1,"21":1,"28":1,"35":1,"36":1,"55":1,"56":1,"79":1,"82":1,"94":5,"95":1,"169":2,"174":1,"178":2,"228":1,"245":1,"292":1,"293":1,"294":1,"298":1,"299":1,"309":2}}],["b",{"2":{"7":4,"37":2,"43":3,"71":1,"84":2,"90":2,"96":2,"97":3,"133":4,"134":1,"143":2,"144":3,"145":1,"211":1,"213":3,"283":2,"310":1,"313":1,"315":1,"318":1,"321":1,"323":1,"327":1,"329":1,"330":1,"333":2}}],["ds",{"2":{"277":4}}],["db",{"2":{"235":1,"236":1,"333":2,"335":1}}],["dtos",{"2":{"74":1,"278":1}}],["duplicatestrategy",{"2":{"59":3,"72":3}}],["dynamicsourceproxymethodfactory",{"2":{"35":1}}],["dynamiccontaineroperatorproxymethodfactory",{"2":{"31":1,"224":1}}],["disorderedbeanoperationexecutor",{"2":{"132":1,"285":1}}],["disorderedbeanoperationrecursiveexecutor",{"2":{"132":1}}],["disassembleoperationhandler",{"2":{"107":1}}],["disassembleoperation",{"2":{"23":1,"283":1,"284":1}}],["disassembleannotationhandler",{"2":{"23":1}}],["disassemble",{"2":{"6":1,"21":1,"22":1,"23":1,"102":2,"103":1,"104":2,"105":1,"106":1,"107":1,"110":1,"122":1,"123":3,"131":2,"132":1,"218":1,"273":1,"274":1,"275":1,"283":1,"290":1}}],["dictmapper",{"2":{"278":2}}],["dictquerydto>",{"2":{"278":1}}],["dictquerydto",{"2":{"278":4}}],["dictvo",{"2":{"277":2,"279":2}}],["dictvo>",{"2":{"277":2,"278":1}}],["dicts",{"2":{"277":5}}],["dictservice",{"2":{"20":3,"24":3,"277":6,"278":2,"279":3}}],["dictcontainerprovider",{"2":{"279":2}}],["dictcontainer",{"2":{"277":2}}],["dicttype",{"2":{"74":2,"278":2,"279":2}}],["dictitemqueryvo",{"2":{"74":1}}],["dictitemquerydto>",{"2":{"74":2}}],["dictitemquerydto",{"2":{"74":1}}],["dictitems",{"2":{"24":2}}],["dictids",{"2":{"24":2,"279":2}}],["dictid",{"2":{"24":1,"74":2,"278":2}}],["dict>>",{"2":{"277":2}}],["dict>builder",{"2":{"24":1}}],["dict>",{"2":{"24":4,"277":4}}],["dictannotationhandler",{"2":{"24":3}}],["dictname",{"2":{"24":2,"74":2}}],["dict",{"2":{"24":5,"74":1,"276":2,"277":17,"278":1,"279":4}}],["dictdo",{"2":{"20":1,"24":1}}],["dictdo>",{"2":{"20":1,"24":1}}],["debug",{"2":{"221":1,"222":1}}],["dependency>",{"2":{"157":6,"164":4,"177":4,"308":10,"317":12,"325":4}}],["dept>",{"2":{"265":3}}],["deptmapper",{"2":{"265":5}}],["deptservice",{"2":{"265":1}}],["deptnames",{"2":{"175":1}}],["deptempvo",{"2":{"175":2}}],["dept",{"2":{"131":3,"264":3,"265":11}}],["deptids",{"2":{"73":2}}],["deptid",{"2":{"73":2,"175":2}}],["departments",{"2":{"105":1}}],["department>",{"2":{"105":1}}],["department",{"2":{"102":3,"103":1,"104":1,"105":2,"106":1,"107":1}}],["demonstrating",{"2":{"199":1}}],["demo3application",{"2":{"50":2,"60":2}}],["demo",{"2":{"50":2,"60":2,"243":1,"244":1}}],["desensitization",{"2":{"65":1,"66":1,"67":2}}],["deserializer",{"2":{"38":1}}],["destroy",{"2":{"19":1,"20":2}}],["delegate",{"2":{"36":4}}],["decoratedpropertyoperator",{"2":{"36":3}}],["determinenamespace",{"2":{"24":1}}],["defaultcrane4jspringconfiguration",{"2":{"309":7,"315":1}}],["default",{"2":{"24":9,"121":4,"224":1}}],["def",{"2":{"11":2}}],["databind",{"2":{"157":1}}],["datas",{"2":{"82":1,"282":1}}],["dataprovider",{"2":{"31":3,"68":5}}],["data",{"2":{"6":1,"21":1,"42":2,"45":1,"46":1,"51":1,"61":1,"74":2,"77":7,"79":2,"80":1,"92":2,"93":1,"94":1,"132":1,"151":9,"161":1,"162":1,"177":3,"250":1,"256":1,"257":1,"258":1,"260":2,"261":1,"262":1,"267":7,"268":2,"271":2,"273":2,"274":2,"275":2,"276":1,"277":1,"278":2,"279":1,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1,"334":1}}],["doprocess",{"2":{"289":1}}],["domapping",{"2":{"145":1}}],["dosomething",{"2":{"33":2,"148":1}}],["doc",{"2":{"219":1,"220":1,"222":1,"223":1,"225":1,"232":1}}],["docs",{"2":{"216":1,"217":1}}],["documented",{"2":{"17":1,"24":1,"121":1}}],["docreatecache",{"2":{"16":2}}],["do",{"2":{"3":2,"71":2,"74":1,"75":1,"124":2,"129":1,"149":3,"150":1,"152":1,"153":1,"154":1,"179":1,"252":1,"260":2,"261":2,"264":1}}],["d",{"2":{"1":1,"71":2,"145":1,"194":1,"277":5}}],["persions",{"2":{"333":2}}],["personmapper",{"2":{"333":1,"334":1}}],["person",{"2":{"333":5,"334":1}}],["person>",{"2":{"333":1,"334":1}}],["p",{"2":{"207":1}}],["pc133",{"2":{"194":1}}],["plus",{"2":{"164":4,"167":1,"175":1,"177":1,"225":1}}],["post",{"2":{"183":1}}],["postmapping",{"2":{"151":3,"267":2,"268":1}}],["pool",{"2":{"1":1}}],["phone",{"2":{"65":4,"66":2,"67":8}}],["pa2007",{"2":{"194":1}}],["patch",{"2":{"189":1}}],["pathvariable",{"2":{"161":1}}],["pagebyids",{"2":{"151":1,"268":1}}],["pagedto",{"2":{"151":3,"268":3}}],["page",{"2":{"151":2,"268":2}}],["packages",{"2":{"50":1,"60":1,"243":2,"244":2,"248":2}}],["parse",{"2":{"283":1,"285":1}}],["parsertype",{"2":{"30":1}}],["parser",{"2":{"22":1,"283":2,"285":2}}],["parentdeptid",{"2":{"264":2}}],["partitioncontainerprovider",{"2":{"54":1}}],["parametersfillproxymethodfactory",{"2":{"35":1}}],["parameter",{"2":{"31":2}}],["printable",{"2":{"189":1}}],["println",{"2":{"161":1,"313":1,"314":1,"315":2,"321":1,"322":1,"323":2,"329":1,"330":1}}],["private",{"2":{"5":1,"6":8,"9":2,"16":1,"17":4,"20":3,"21":7,"24":3,"25":2,"27":1,"28":1,"30":1,"31":3,"33":3,"34":1,"39":2,"41":2,"42":4,"43":2,"44":4,"45":2,"46":2,"49":1,"51":4,"52":2,"55":4,"56":1,"58":3,"59":3,"61":8,"63":2,"66":1,"67":1,"74":4,"77":3,"79":8,"80":3,"86":2,"87":1,"88":2,"89":3,"90":2,"92":4,"93":2,"94":4,"97":2,"99":4,"102":2,"103":1,"104":2,"105":3,"106":2,"107":2,"110":3,"111":4,"112":1,"113":2,"114":2,"116":1,"117":4,"118":2,"120":1,"123":6,"126":4,"131":2,"132":3,"134":5,"135":4,"137":4,"138":2,"139":1,"140":4,"141":10,"142":5,"144":2,"145":5,"151":3,"159":3,"161":2,"162":2,"169":3,"170":2,"171":1,"172":1,"173":1,"174":6,"175":2,"179":1,"256":3,"258":3,"260":2,"261":1,"262":1,"267":3,"271":9,"273":9,"274":8,"275":9,"281":1,"283":3,"287":6,"310":1,"311":2,"314":1,"315":4,"318":1,"319":2,"322":1,"323":4,"328":2,"330":2,"334":2}}],["preson>",{"2":{"333":1}}],["preocessfoo",{"2":{"155":1}}],["prefix",{"2":{"145":3}}],["predicate",{"2":{"124":1}}],["projectconfiguration",{"2":{"309":2}}],["projectlombok",{"2":{"308":1,"317":1,"325":1}}],["proxy",{"2":{"148":2}}],["provider2",{"2":{"68":2}}],["provider1",{"2":{"68":2}}],["prop2",{"2":{"42":2,"92":2}}],["prop1",{"2":{"42":2,"92":2}}],["propertymapping",{"2":{"145":2}}],["propertymappingstrategymanager",{"2":{"24":3}}],["propertymappingstrategy",{"2":{"24":3,"46":1,"97":3,"98":2,"144":1,"145":4,"224":1}}],["property",{"2":{"117":7,"118":1,"224":1}}],["propertyoperatorholder",{"2":{"36":1}}],["propertyoperator",{"2":{"36":6,"142":1,"224":1}}],["proptemplates",{"2":{"24":2,"141":2}}],["prop",{"2":{"24":1,"79":1,"131":1,"132":1,"133":5,"134":2,"135":2,"137":2,"138":2,"251":3,"252":3,"253":2,"254":3,"273":2,"274":1,"289":1}}],["props",{"2":{"5":1,"6":3,"17":2,"21":2,"24":3,"25":1,"27":1,"30":1,"31":3,"41":1,"42":1,"44":2,"45":1,"46":1,"51":1,"52":1,"55":2,"61":2,"63":1,"74":1,"79":1,"80":1,"84":1,"86":1,"87":2,"88":1,"89":2,"90":1,"92":1,"93":1,"94":1,"97":1,"123":3,"126":3,"133":4,"134":2,"135":1,"137":1,"138":1,"140":2,"141":4,"142":1,"144":1,"145":2,"161":2,"162":1,"170":1,"175":1,"228":1,"273":1,"274":2,"275":3,"277":1,"278":1,"283":1,"287":2,"289":1,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1,"334":1}}],["protected",{"2":{"16":2,"24":3,"28":1,"121":2}}],["processnum",{"2":{"1":3}}],["processors",{"2":{"1":3}}],["public",{"2":{"3":2,"9":4,"13":1,"14":1,"16":6,"17":1,"20":4,"21":3,"24":3,"28":1,"33":4,"36":1,"42":2,"45":1,"46":1,"48":4,"49":4,"50":2,"51":2,"52":1,"56":3,"60":2,"67":1,"71":4,"73":6,"74":3,"75":1,"77":4,"80":1,"82":4,"87":2,"88":1,"90":1,"92":2,"93":1,"94":1,"103":1,"104":1,"110":2,"111":2,"114":1,"117":1,"118":1,"119":2,"120":1,"121":3,"124":2,"129":1,"131":2,"132":3,"142":2,"145":2,"149":2,"150":1,"151":5,"152":1,"153":1,"154":1,"155":2,"161":1,"169":1,"174":1,"178":4,"179":2,"250":2,"252":1,"254":1,"256":1,"257":3,"258":1,"260":4,"261":3,"262":1,"264":1,"265":1,"267":4,"268":1,"271":2,"273":3,"274":5,"275":5,"276":1,"277":3,"278":3,"279":3,"287":1,"309":3,"311":1,"314":2,"315":5,"319":1,"322":2,"323":5,"328":1,"330":2,"334":2}}],["putifabsent",{"2":{"16":2}}],["put",{"2":{"1":1,"16":2,"69":1,"265":7,"277":1,"310":3,"315":3,"318":3,"323":3,"327":3,"330":3}}],[">",{"2":{"1":1,"9":2,"11":1,"13":1,"14":1,"16":2,"20":2,"24":2,"25":1,"29":1,"31":3,"40":1,"48":1,"65":3,"67":2,"68":3,"69":2,"80":3,"90":1,"126":3,"134":3,"135":2,"137":2,"138":2,"139":1,"140":2,"151":5,"157":2,"164":2,"177":2,"178":4,"179":1,"254":1,"257":1,"265":6,"267":2,"268":3,"272":7,"273":5,"274":5,"275":5,"277":7,"279":3,"282":3,"285":1,"287":4,"308":3,"317":3,"325":2,"333":2}}],["27",{"0":{"231":1}}],["25",{"0":{"224":1}}],["256mb",{"2":{"194":1}}],["21",{"0":{"223":1}}],["23",{"0":{"216":1,"229":1}}],["233",{"2":{"194":1}}],["2600",{"2":{"211":1}}],["2022",{"2":{"332":1}}],["2024",{"0":{"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1,"235":1,"236":1}}],["2023",{"0":{"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1}}],["2001",{"2":{"211":1}}],["200",{"2":{"77":1,"151":1,"267":1}}],["20",{"2":{"6":6,"194":3,"195":1}}],["2",{"0":{"2":1,"3":1,"4":2,"5":1,"10":1,"12":1,"13":1,"14":2,"15":1,"20":1,"24":1,"28":1,"32":1,"33":1,"34":2,"40":1,"41":1,"42":2,"45":1,"49":1,"55":1,"59":1,"64":1,"65":1,"66":2,"67":1,"72":1,"83":1,"87":1,"90":1,"93":1,"98":1,"103":1,"106":1,"111":1,"115":1,"116":1,"117":2,"118":1,"119":1,"120":1,"124":1,"127":1,"128":1,"129":2,"132":1,"136":1,"137":1,"145":1,"148":1,"149":1,"150":2,"151":1,"152":1,"153":1,"154":1,"155":1,"158":1,"159":1,"160":2,"161":1,"165":1,"166":1,"167":2,"168":1,"171":1,"178":1,"218":1,"220":1,"221":1,"222":1,"223":1,"224":2,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":2,"232":1,"233":1,"234":1,"235":2,"236":1,"240":1,"242":1,"243":1,"244":2,"245":1,"246":1,"253":1,"257":1,"261":1,"265":1,"268":1,"272":1,"273":1,"278":1,"282":1,"309":1,"314":1,"318":1,"322":1,"326":1,"334":1},"1":{"3":1,"4":1,"5":1,"13":1,"14":1,"15":1,"33":1,"34":1,"41":1,"42":1,"65":1,"66":1,"67":1,"116":1,"117":1,"118":1,"119":1,"120":1,"128":1,"129":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"159":1,"160":1,"166":1,"167":1,"168":1,"243":1,"244":1,"245":1,"246":1},"2":{"1":2,"3":1,"9":1,"21":1,"31":1,"33":2,"42":1,"44":2,"46":2,"50":2,"51":1,"57":2,"58":2,"59":2,"60":2,"61":1,"64":1,"74":1,"75":1,"77":1,"78":1,"79":3,"86":1,"90":4,"91":1,"96":1,"97":1,"108":1,"112":3,"113":4,"126":1,"128":1,"131":1,"132":1,"133":1,"134":1,"135":1,"137":1,"138":1,"140":1,"143":1,"145":1,"155":1,"156":2,"176":1,"179":4,"181":1,"211":1,"220":2,"221":1,"222":3,"249":1,"253":1,"257":2,"264":1,"271":1,"272":1,"273":1,"274":1,"275":1,"282":1,"304":2,"308":2,"310":1,"313":1,"314":1,"315":3,"318":1,"321":1,"322":1,"323":3,"327":1,"329":1,"330":2,"333":2}}],["环境不同",{"2":{"312":1,"320":1}}],["环境默认启用",{"2":{"232":1}}],["环境使用",{"0":{"307":1,"316":1,"324":1},"1":{"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1},"2":{"219":1,"220":1,"222":1}}],["环境使用时",{"2":{"9":1}}],["环境和",{"2":{"219":1,"220":1,"222":1}}],["环境可以直接从",{"2":{"147":1}}],["环境下",{"2":{"95":1}}],["环境下使用自动填充",{"2":{"233":1}}],["环境下使用",{"2":{"37":1}}],["环境则可以直接从",{"2":{"83":1}}],["环境或者非",{"2":{"83":1}}],["环境也可以直接从",{"2":{"76":1}}],["环境需要手动注册到",{"2":{"56":1}}],["环境",{"0":{"159":1,"160":1},"2":{"1":1,"13":2,"14":1,"16":1,"17":1,"19":1,"28":3,"37":2,"54":1,"86":1,"121":1,"298":2,"299":2}}],["环境中也提供了很好的支持",{"2":{"306":1}}],["环境中通过",{"2":{"304":1}}],["环境中组件的初始化时机",{"2":{"233":1}}],["环境中你也可以直接从",{"2":{"65":1}}],["环境中使用",{"2":{"37":1,"306":3}}],["环境中",{"2":{"1":1,"17":1,"24":1,"28":1,"35":1,"50":1,"54":1,"56":1,"60":1,"65":1,"70":1,"71":1,"76":1,"82":1,"83":1,"98":2,"99":1,"116":2,"121":1,"126":1,"145":1,"148":2,"152":2,"159":1,"160":1,"166":1,"167":1,"237":1,"281":1,"306":1,"312":1,"320":1,"325":1}}],["它就是",{"2":{"332":1}}],["它默认提供了三种实现",{"2":{"285":1}}],["它默认使用的线程池配置如下",{"2":{"1":1}}],["它依然从全局配置中获取",{"2":{"285":1}}],["它还可以基于枚举",{"2":{"282":1}}],["它从一开始就支持通过下级部门",{"2":{"265":1}}],["它返回一个",{"2":{"260":1}}],["它包含下述字段",{"2":{"260":1}}],["它怎么这么烂",{"2":{"211":1}}],["它不是这样运作的",{"2":{"209":1}}],["它不能工作会让你完全被忽略",{"2":{"199":1}}],["它是有益健康且合理的",{"2":{"209":1}}],["它是直截了当",{"2":{"208":1}}],["它是我们在日常中最经常使用的容器之一",{"2":{"70":1}}],["它多半会被忽略",{"2":{"189":1}}],["它也支持基于",{"2":{"162":1}}],["它也是最常用的注解处理器",{"2":{"24":1}}],["它同样从全局配置类中获取",{"2":{"283":1}}],["它同样也可做到类似的效果",{"2":{"155":1}}],["它同样能够生效",{"2":{"9":1}}],["它只代表在遍历",{"2":{"127":1}}],["它将被忽略",{"2":{"123":1}}],["它将会被标记为",{"2":{"15":1}}],["它将会覆盖",{"2":{"1":1}}],["它已经实现好了大部分逻辑",{"2":{"121":1}}],["它主要是作为一个区分标识",{"2":{"89":1}}],["它对应一个在类或类属性上声明的",{"2":{"84":1}}],["它通常与",{"2":{"73":1}}],["它通常用于存放系统启动后加载的配置项或字典项",{"2":{"69":1}}],["它用于指定如何对结果集按",{"2":{"73":1}}],["它用于管理一些创建过程较为复杂的数据源容器",{"2":{"53":1}}],["它基于注解处理器",{"2":{"70":1}}],["它使用起来会更加灵活",{"2":{"68":1}}],["它实际上是基于键值的内省",{"2":{"64":1}}],["它实现了",{"2":{"20":1}}],["它支持通过",{"2":{"57":1}}],["它支持配置过期时间和并发等级等各种功能",{"2":{"12":1}}],["它会更直观一些",{"2":{"55":1}}],["它可以是类",{"2":{"67":1}}],["它可以用于在某些场景下仅针对键值进行转换",{"2":{"64":1}}],["它可以满足绝大部分的需求",{"2":{"54":1}}],["它可以处理某些无法直接在类上配置注解的业务场景",{"2":{"25":1}}],["它的作用有点类似于",{"2":{"47":1}}],["它的结构为",{"2":{"24":1}}],["它被用于支持包括装配操作执行器",{"2":{"36":1}}],["它类似于",{"2":{"36":1}}],["它们通过独一无二的命名空间",{"2":{"310":1,"318":1,"327":1}}],["它们通常不直接使用",{"2":{"283":1}}],["它们通常分为两类",{"2":{"283":1}}],["它们有所区别",{"2":{"286":1}}],["它们主要的区别在于填充的触发时机",{"2":{"286":1}}],["它们实际上是通过注册在操作配置解析器",{"2":{"284":1}}],["它们并不复杂",{"2":{"280":1}}],["它们依然会分开成两个步骤分别查库",{"2":{"265":1}}],["它们是通过参与者积极而公开地执行来维持的",{"2":{"209":1}}],["它们的操作逻辑非常类似于树的递归构件过程",{"2":{"132":1}}],["它们支持先执行装配操作",{"2":{"132":1}}],["它们按抽象程度从高到低分别为",{"2":{"24":1}}],["它们底层实际上依赖于解析器中对应的操作注解处理器",{"2":{"22":1}}],["它提个三个抽象方法",{"2":{"19":1}}],["它允许你使用基于",{"2":{"12":1}}],["scope>",{"2":{"308":2,"317":4}}],["scope>test",{"2":{"308":2,"317":4}}],["sd",{"2":{"265":4}}],["sdram",{"2":{"194":1}}],["shared",{"2":{"246":2}}],["shell",{"2":{"210":2}}],["s2464",{"2":{"211":2}}],["samba",{"2":{"210":1}}],["san",{"2":{"49":1}}],["slot",{"2":{"196":1}}],["slackware",{"2":{"190":1}}],["sql",{"0":{"174":1},"2":{"170":1,"171":3,"172":1,"173":1,"174":3,"210":2,"236":1}}],["system",{"2":{"161":1,"313":1,"314":1,"315":2,"321":1,"322":1,"323":2,"329":1,"330":1}}],["synthesizedannotation",{"2":{"17":1,"287":1}}],["swagger",{"2":{"149":1}}],["srpingutil",{"2":{"257":1}}],["sringutil",{"2":{"121":1,"145":1}}],["src3",{"2":{"44":1}}],["src2",{"2":{"44":1}}],["src1",{"2":{"44":1}}],["src",{"2":{"17":2,"41":1,"42":1,"44":1,"46":1,"55":2,"74":1,"86":1,"87":2,"88":1,"89":2,"90":1,"97":4,"123":3,"133":4,"134":3,"135":1,"137":1,"138":2,"139":1,"140":2,"141":7,"142":1,"144":4,"145":2,"170":1,"175":1,"261":3,"262":3,"273":1,"274":3,"275":3,"283":1,"287":4,"334":1}}],["spi",{"2":{"227":1}}],["space",{"2":{"202":1}}],["spel",{"2":{"99":1,"116":1,"152":2}}],["springrunner",{"2":{"323":1}}],["springjunit4classrunner",{"2":{"315":1}}],["spring环境下",{"2":{"222":1}}],["springframework",{"2":{"177":1,"308":2,"317":3}}],["springmvc",{"2":{"156":1,"161":1}}],["springaop",{"2":{"146":1,"286":3,"299":1}}],["springapplication",{"2":{"50":1,"60":1}}],["springboottest",{"2":{"323":1}}],["springboot3",{"0":{"301":1}}],["springboot",{"0":{"316":1},"1":{"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1},"2":{"59":1,"86":1,"221":1,"222":1,"228":2,"234":1,"236":1,"248":1,"306":2,"317":2}}],["springbootapplication",{"2":{"50":1,"60":1}}],["springconvertermanager",{"2":{"37":1}}],["springcache",{"2":{"9":1}}],["springutil",{"2":{"4":1,"16":1,"19":1,"24":1,"28":1,"35":1,"67":1,"128":1,"131":1,"147":1,"168":1,"254":1}}],["spring",{"0":{"159":1,"160":1,"307":1,"324":1},"1":{"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"325":1,"326":1,"327":1,"328":1,"329":1,"330":1},"2":{"1":2,"4":1,"9":1,"13":3,"14":3,"16":2,"17":3,"18":1,"19":3,"24":2,"28":6,"35":3,"36":1,"37":6,"47":1,"50":2,"53":2,"54":3,"55":1,"56":3,"60":2,"65":4,"70":2,"71":1,"76":5,"79":2,"82":3,"83":4,"95":4,"98":3,"99":2,"108":1,"116":2,"121":4,"126":1,"128":1,"145":3,"146":1,"147":3,"148":3,"152":2,"159":3,"160":1,"161":1,"166":2,"167":2,"169":1,"177":1,"178":1,"216":1,"219":4,"220":3,"222":3,"227":1,"229":3,"232":1,"233":2,"237":1,"245":1,"257":1,"281":3,"287":1,"292":1,"293":1,"294":1,"298":3,"299":4,"306":5,"308":4,"309":5,"312":2,"317":3,"320":2,"325":1,"331":1}}],["skipqueryifkeycollisempty",{"2":{"72":1,"78":1}}],["skip",{"2":{"67":6}}],["substring",{"2":{"65":2,"67":3}}],["supportoperation",{"2":{"21":1,"254":1}}],["superclass",{"2":{"71":2}}],["super",{"2":{"16":1,"24":1,"121":1,"124":1,"184":1}}],["smartoperationawarebean",{"2":{"21":1,"80":1,"113":1}}],["softconcurrentmap",{"2":{"233":1}}],["softconcurrentmapcachemanager",{"2":{"14":1}}],["sources",{"2":{"277":4}}],["sourcevalue",{"2":{"145":2}}],["source",{"2":{"145":1}}],["some",{"2":{"82":1}}],["something",{"2":{"15":1,"71":2,"74":1,"75":1,"129":1,"179":1,"252":1,"260":2,"261":2,"264":1}}],["sorted",{"2":{"220":1,"222":1}}],["sort",{"2":{"24":3,"66":1,"67":1,"112":1,"113":5,"121":3,"126":5}}],["size",{"2":{"265":1,"277":1}}],["sig11",{"2":{"194":2}}],["simon",{"2":{"190":1}}],["simplename",{"2":{"49":1,"59":1}}],["simpleconvertermanager",{"2":{"37":1,"160":1}}],["simplecrane4jglobalconfiguration",{"2":{"1":2,"13":1,"98":2,"148":1,"160":2,"281":1,"282":1,"283":1}}],["simpleannotationfinder",{"2":{"24":1,"48":1,"59":1,"160":2}}],["singletonmap",{"2":{"11":1}}],["seconddepts",{"2":{"265":2}}],["seconddeptids",{"2":{"265":3}}],["seconddeptid",{"2":{"264":2,"265":3}}],["seconddeptname",{"2":{"264":2,"265":3}}],["seconds",{"2":{"9":3,"10":1,"75":1,"79":1}}],["search",{"2":{"206":1}}],["sex",{"2":{"138":2}}],["servlet",{"2":{"233":1}}],["servletcontext",{"0":{"304":1},"2":{"223":1,"228":1,"304":2}}],["server",{"2":{"184":1}}],["serviceimpl",{"2":{"257":3}}],["service",{"2":{"132":1,"257":3,"314":5,"315":4,"322":5,"323":5}}],["serializable",{"2":{"121":2}}],["serializer",{"2":{"38":1}}],["selects",{"2":{"171":1,"173":1,"174":1}}],["select",{"2":{"170":1,"171":1,"172":1,"173":1,"174":1}}],["selectchildrennodesbyid",{"2":{"132":1}}],["selectlistbyids",{"2":{"272":2}}],["selectlist",{"2":{"53":2,"272":1,"273":1}}],["setname",{"2":{"272":1,"277":1}}],["setnameformat",{"2":{"1":1}}],["setcustomertype",{"2":{"272":1}}],["setcustomername",{"2":{"272":1}}],["setcorepoolsize",{"2":{"1":1}}],["setordertype",{"2":{"272":1}}],["setgendername",{"2":{"333":1}}],["setgendercode",{"2":{"257":1}}],["setglobalprefix",{"2":{"178":1,"179":1,"180":1}}],["setenableclearcache",{"2":{"180":1}}],["setfoolist",{"2":{"124":1}}],["setignorenullkey",{"2":{"86":1}}],["set",{"0":{"304":1},"2":{"43":1,"71":2,"75":1,"223":1,"228":1,"233":1,"272":2,"304":2}}],["setpropertyoperator",{"2":{"36":1}}],["settype",{"2":{"272":1}}],["setter",{"2":{"36":1,"37":1,"161":1,"221":1,"222":1,"271":2,"289":1,"308":1,"311":1,"315":1,"317":1,"319":1,"323":1,"325":1,"328":1,"330":1}}],["setthreadnameprefix",{"2":{"1":1}}],["setbatchsize",{"2":{"1":1,"6":2}}],["setrejectedexecutionhandler",{"2":{"1":1}}],["setqueuecapacity",{"2":{"1":1}}],["setallowcorethreadtimeout",{"2":{"1":1}}],["setmaxpoolsize",{"2":{"1":1}}],["stfw",{"0":{"206":1},"2":{"211":2}}],["station",{"2":{"202":1}}],["static",{"2":{"6":1,"9":1,"16":1,"21":1,"48":4,"49":4,"50":1,"51":3,"60":1,"61":1,"66":1,"67":1,"79":2,"132":1,"141":1,"161":1,"162":1,"277":2,"278":1,"311":1,"314":1,"315":2,"319":1,"322":1,"323":2,"328":1,"330":2}}],["stack",{"0":{"184":1},"2":{"184":6}}],["starter",{"2":{"164":1,"219":1,"317":4}}],["standardannotation",{"2":{"24":5}}],["standardassembleannotationadapter",{"2":{"24":1}}],["standardassembleannotation",{"2":{"24":3}}],["studentteacherage",{"2":{"141":1}}],["studentteachername",{"2":{"141":2}}],["studentmappingtemplate",{"2":{"141":3}}],["studentclassname映射到studentvo",{"2":{"134":1}}],["studentclassname",{"2":{"134":3,"141":2}}],["student>",{"2":{"129":1,"257":1,"264":1}}],["studentvo",{"2":{"44":3,"134":5,"135":4,"137":4,"138":6,"139":1,"140":4,"141":3,"145":2}}],["studentname映射到studentvo",{"2":{"134":1}}],["studentname",{"2":{"17":2,"86":2,"87":2,"88":1,"134":3,"141":2}}],["student",{"2":{"17":4,"52":1,"73":1,"86":3,"87":5,"88":2,"126":2,"128":3,"129":1,"134":5,"135":4,"137":15,"141":2,"250":1,"256":3,"257":3,"258":2,"264":1}}],["strategy",{"2":{"224":2}}],["strict",{"2":{"119":2}}],["stringkeyrediscachemanager",{"2":{"178":4,"179":4,"180":2}}],["stringredistemplate",{"2":{"178":2}}],["string>create",{"2":{"310":1,"315":1,"318":1,"323":1,"327":1,"330":1}}],["string>>",{"2":{"265":1}}],["string>",{"2":{"9":2,"11":2,"13":1,"14":1,"15":3,"20":2,"40":1,"41":1,"42":1,"44":1,"48":1,"58":1,"59":1,"68":1,"69":1,"71":2,"75":1,"118":1,"139":1,"140":1,"145":3,"175":1,"178":1,"179":4,"180":1,"277":3,"310":1,"315":1,"318":1,"323":1,"327":1,"330":1}}],["string",{"2":{"5":1,"6":3,"9":1,"16":2,"17":2,"20":3,"21":4,"24":9,"25":1,"30":1,"39":2,"42":3,"43":1,"44":3,"45":1,"46":3,"48":3,"49":3,"50":1,"51":4,"52":1,"55":2,"56":1,"58":1,"59":1,"60":1,"61":3,"63":2,"65":2,"66":1,"67":3,"69":1,"73":3,"74":4,"77":1,"79":4,"80":2,"82":1,"86":1,"87":1,"88":1,"89":2,"90":5,"92":4,"93":2,"94":4,"97":2,"99":4,"105":1,"110":2,"111":4,"114":2,"116":1,"117":2,"118":1,"121":1,"123":3,"124":3,"132":3,"134":3,"135":2,"138":2,"139":2,"140":4,"141":6,"142":2,"144":2,"145":5,"151":1,"161":1,"169":1,"170":1,"172":1,"173":1,"174":3,"178":2,"179":2,"227":1,"250":2,"251":3,"252":3,"253":3,"254":4,"256":2,"257":1,"258":2,"260":4,"261":2,"262":2,"264":3,"265":6,"267":1,"271":5,"272":2,"273":5,"274":5,"275":5,"276":2,"277":6,"278":3,"279":2,"283":1,"287":4,"311":1,"315":1,"319":1,"323":1,"328":1,"330":2,"334":1}}],["stream",{"2":{"9":1,"13":1,"14":1,"20":1,"24":1,"31":1,"40":1,"56":1,"68":1,"80":1,"90":1,"145":1,"257":1,"265":5,"272":6,"277":6,"279":1,"282":1,"333":1}}],["athlon",{"2":{"211":1}}],["acccessor",{"2":{"250":1,"256":1,"257":1,"258":1}}],["accept",{"2":{"145":1}}],["acmecorp",{"2":{"210":2}}],["amd",{"2":{"194":1}}],["amp",{"0":{"283":1},"2":{"117":4,"140":1,"292":1,"293":1,"294":1}}],["age",{"2":{"169":1,"171":1,"173":1,"174":6,"250":3,"260":1,"261":1,"262":1}}],["aop",{"2":{"148":1,"236":1,"257":2,"261":2,"264":1,"314":1,"317":1,"322":1}}],["and",{"2":{"113":2,"121":2}}],["annotated",{"2":{"60":1,"244":1}}],["annotatedenum",{"2":{"58":1,"59":1}}],["annotatedelement",{"2":{"22":2,"24":2,"67":1,"121":1,"331":1}}],["annotatedmethod",{"2":{"9":2,"13":2,"14":2}}],["annotationfinder",{"2":{"17":1,"24":3,"121":3}}],["annotation",{"2":{"17":1,"24":14,"121":7,"216":1}}],["address",{"2":{"260":1,"261":1,"262":1}}],["addpropertymappingstrategy",{"2":{"98":1}}],["admin",{"2":{"123":5}}],["adapterregister",{"2":{"31":1}}],["apollo",{"2":{"194":1}}],["applicationrunner",{"2":{"50":1,"60":1,"223":1}}],["api",{"2":{"49":1,"51":1,"59":1,"61":1,"72":1,"79":1,"83":1,"147":1,"179":1,"217":1,"220":1,"233":1,"236":1,"286":1,"335":1}}],["alpha",{"0":{"219":1,"220":1},"2":{"220":1}}],["allargsconstructor",{"2":{"77":1,"151":1,"267":1}}],["alldicts",{"2":{"20":4}}],["alldictcontainer",{"2":{"20":1}}],["alert",{"2":{"59":1,"72":1}}],["alias",{"2":{"39":1,"63":3,"99":2}}],["artifactid>aspectjweaver",{"2":{"317":1}}],["artifactid>lombok",{"2":{"308":1,"317":1,"325":1}}],["artifactid>junit",{"2":{"308":1}}],["artifactid>jackson",{"2":{"157":2}}],["artifactid>spring",{"2":{"177":1,"308":2,"317":3}}],["artifactid>mybatis",{"2":{"164":1}}],["artifactid>",{"2":{"157":3,"164":2,"177":2,"308":5,"317":6,"325":2}}],["artifactid>crane4j",{"2":{"157":1,"164":1,"177":1,"308":1,"317":1,"325":1}}],["arraylsit",{"2":{"265":1}}],["arraylist",{"2":{"25":1,"29":1,"285":1}}],["arrays",{"2":{"128":1,"179":4,"257":1,"282":1,"313":1,"314":1,"315":2,"321":1,"322":1,"323":2,"329":1,"330":1}}],["argument",{"2":{"247":1}}],["argautooperateproxymethodfactory",{"2":{"35":1}}],["argautooperate",{"2":{"34":1,"35":1,"124":1,"149":1}}],["args",{"2":{"9":2,"13":2,"14":2,"50":2,"60":2,"71":2,"75":1,"330":1}}],["autoconfigure",{"2":{"317":1}}],["auto",{"2":{"167":2,"225":1,"247":2}}],["autowried",{"2":{"25":1,"31":1,"159":2}}],["autowired",{"2":{"24":1,"28":1,"33":2,"281":1,"310":1,"314":1,"315":2,"318":1,"322":1,"323":2}}],["autooperateannotatedelementresolver",{"2":{"225":1}}],["autooperatemodule",{"2":{"160":2}}],["autooperateproxy",{"2":{"148":3}}],["autooperate",{"0":{"34":1,"299":1},"2":{"3":2,"30":1,"34":4,"35":1,"124":3,"129":2,"131":2,"132":2,"149":5,"150":1,"151":3,"152":1,"153":1,"154":2,"155":3,"161":2,"162":2,"221":1,"222":1,"224":1,"225":1,"227":1,"232":1,"233":2,"234":1,"236":1,"252":1,"257":1,"261":1,"264":2,"267":2,"268":1,"273":1,"286":2,"314":1,"315":1,"322":1,"323":1,"334":1}}],["abstractassembleoperationhandler",{"2":{"289":1}}],["abstractcondition",{"2":{"121":2}}],["abstractconditionparser",{"2":{"121":2}}],["abstractcacheablepropertyoperator",{"2":{"220":1,"222":1}}],["abstractcacheobject",{"2":{"16":3}}],["abstractcachemanager",{"2":{"16":4}}],["abstractinternalproviderassembleannotationhandler",{"2":{"24":1}}],["abstractstandardassembleannotationhandler",{"2":{"24":1}}],["abstractstandardoperationannotationhandler",{"2":{"24":1}}],["afteroperationscompletion",{"2":{"21":1,"250":1}}],["a",{"2":{"7":4,"17":2,"37":2,"43":3,"71":4,"84":2,"90":1,"96":2,"97":2,"133":4,"134":1,"143":2,"144":2,"145":1,"211":1,"213":3,"283":2,"310":1,"313":1,"315":1,"318":1,"321":1,"323":1,"327":1,"329":1,"330":1,"333":2}}],["aspectj",{"2":{"317":1}}],["asm",{"2":{"239":2}}],["asmreflectivepropertyoperator",{"2":{"36":1}}],["ascii",{"2":{"189":1}}],["aslist",{"2":{"128":1,"179":4,"257":1,"282":1,"313":1,"314":1,"315":2,"321":1,"322":1,"323":2,"329":1,"330":1}}],["assembling",{"2":{"86":1,"118":1,"249":1}}],["assembleitem",{"2":{"275":2}}],["assemblecustomer",{"2":{"275":2}}],["assembleconstant",{"2":{"23":1,"51":2,"229":1,"287":1}}],["assembleconstantannotationhandler",{"2":{"23":1}}],["assembleordertype",{"2":{"275":2}}],["assembleopeartionhandler",{"2":{"232":1}}],["assembleoperatehandler",{"2":{"38":2}}],["assembleoperationhandler",{"2":{"91":1,"140":1}}],["assembleoperation",{"2":{"23":6,"169":1,"254":1,"283":1,"284":1,"289":1}}],["assembledb",{"2":{"236":1}}],["assemble注解指定了数据源容器和字段映射",{"2":{"134":1}}],["assemble注解的sort属性优先于spring的",{"2":{"126":1}}],["assemblexxx",{"2":{"32":1,"289":1,"292":1,"293":1,"294":1}}],["assemblekey",{"2":{"23":1,"66":2,"67":2,"287":1}}],["assemblekeyannotationhandler",{"2":{"23":1,"65":3,"67":2}}],["assemblemethod",{"2":{"23":1,"79":7,"224":1,"262":1,"273":2,"278":1,"287":2}}],["assemblemethodannotationhandler",{"2":{"23":1}}],["assemblempannotationhandler",{"2":{"23":1,"169":1}}],["assemblemp",{"2":{"22":1,"23":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":2,"218":1,"287":1}}],["assembleannotationhandler",{"2":{"23":1}}],["assembleenumannotationhandler",{"2":{"23":1}}],["assembleenum",{"2":{"22":1,"23":1,"51":1,"57":1,"61":3,"219":1,"223":2,"227":1,"257":2,"258":1,"273":1,"287":1,"334":1}}],["assemblestudent",{"2":{"17":3}}],["assemble",{"2":{"5":1,"6":3,"17":2,"21":2,"22":1,"23":1,"25":2,"27":2,"30":1,"31":3,"39":2,"41":1,"42":1,"44":2,"45":1,"46":1,"52":2,"55":3,"63":1,"74":1,"80":2,"84":4,"85":1,"86":2,"87":2,"88":1,"89":4,"90":1,"92":1,"93":1,"94":1,"97":1,"99":3,"110":3,"111":4,"112":1,"113":1,"114":2,"116":1,"117":4,"118":2,"119":2,"120":1,"122":1,"123":4,"126":5,"131":1,"132":1,"133":1,"134":2,"135":2,"137":2,"138":2,"139":1,"140":2,"141":4,"142":1,"144":1,"145":2,"155":2,"161":1,"162":1,"218":1,"224":1,"229":1,"251":3,"252":3,"253":2,"254":3,"261":1,"264":3,"265":1,"274":4,"275":3,"277":1,"279":1,"283":1,"287":1,"311":1,"315":1,"319":1,"323":1,"328":1,"330":1}}],["as",{"2":{"46":1,"171":2,"173":2,"174":4}}],["asyncbeanoperationrecursiveexecutor",{"2":{"132":1}}],["asyncbeanoperationexecutor",{"2":{"0":1,"1":2,"3":1,"5":1,"6":2,"132":1,"154":2,"224":1,"232":1,"285":1,"295":1}}],["asyncautooperate",{"2":{"3":1}}],["async",{"2":{"1":1}}],["availableprocessors",{"2":{"1":2}}],["核心数",{"2":{"1":1}}],["ci",{"2":{"216":1}}],["chain",{"2":{"241":1,"250":1,"256":1,"257":1,"258":1}}],["chainaccessiblepropertyoperator",{"2":{"36":1,"142":2}}],["chore",{"2":{"216":1}}],["children",{"2":{"132":4}}],["childclass",{"2":{"71":1}}],["cnname",{"2":{"61":3}}],["cn",{"2":{"28":2,"50":1,"60":1,"216":1,"224":2,"243":1,"244":1,"248":1,"289":1}}],["clear",{"2":{"15":1,"16":2,"20":1,"180":2}}],["classes",{"2":{"323":1}}],["classbasedautooperateannotatedelementresolver",{"2":{"160":1}}],["classname",{"2":{"134":5,"141":4}}],["classid",{"2":{"73":1}}],["class",{"2":{"3":3,"4":1,"5":1,"6":2,"9":3,"13":1,"14":1,"16":3,"17":2,"19":1,"20":1,"21":2,"24":4,"28":6,"30":2,"31":1,"33":2,"34":2,"35":1,"39":2,"41":2,"42":4,"44":2,"45":2,"46":1,"48":3,"49":2,"50":4,"51":2,"52":1,"55":2,"56":1,"58":2,"59":2,"60":4,"61":2,"63":1,"65":1,"66":1,"67":3,"71":5,"73":2,"74":4,"75":1,"77":3,"79":6,"80":1,"82":2,"86":1,"87":1,"88":1,"89":1,"90":2,"92":3,"93":3,"94":2,"97":1,"99":2,"102":2,"103":2,"104":2,"105":2,"106":1,"107":3,"110":3,"111":2,"112":1,"113":2,"114":1,"116":1,"117":5,"118":1,"119":2,"121":3,"123":3,"124":2,"126":1,"128":1,"129":2,"131":6,"132":6,"134":2,"135":2,"137":2,"138":2,"139":1,"140":2,"141":4,"142":3,"144":1,"145":4,"147":1,"149":3,"151":3,"152":1,"153":1,"154":4,"161":3,"162":4,"168":1,"169":1,"170":1,"174":2,"175":2,"178":2,"179":1,"248":1,"250":1,"251":1,"252":2,"253":2,"254":2,"256":1,"257":5,"258":2,"260":3,"261":4,"262":1,"264":2,"265":2,"267":2,"268":1,"271":2,"273":9,"274":6,"275":4,"276":1,"277":3,"278":5,"279":2,"282":1,"283":4,"285":3,"287":3,"309":3,"311":1,"314":2,"315":6,"319":1,"322":2,"323":6,"328":1,"330":2,"334":2}}],["custommappingstrategy",{"2":{"145":3}}],["custommethodfactory",{"2":{"35":1}}],["custompropertymappingstrategy",{"2":{"98":1,"145":1}}],["custompropertyoperator",{"2":{"36":3}}],["customstrategy",{"2":{"98":2,"145":2}}],["customermap",{"2":{"272":1}}],["customers",{"2":{"272":2}}],["customerservice",{"2":{"40":1,"272":1,"273":3,"274":1,"287":6}}],["customer>",{"2":{"272":2,"274":1,"287":1}}],["customertype",{"2":{"271":1,"273":3,"274":3,"275":3,"287":8}}],["customername",{"2":{"271":1,"273":3,"274":3,"275":3,"287":8}}],["customernames",{"2":{"41":3,"42":2}}],["customerids",{"2":{"272":2}}],["customerid",{"2":{"271":2,"272":2,"273":1,"274":1,"275":1,"287":4}}],["customerquerydto",{"2":{"42":2,"74":1}}],["customervo",{"2":{"41":2,"42":1}}],["customerdo",{"2":{"40":1,"41":1}}],["customercontainer",{"2":{"40":1}}],["customer",{"2":{"40":2,"41":1,"42":1,"272":6,"273":3,"274":5,"275":3,"287":8}}],["customlifecycleprocessor",{"2":{"19":1}}],["customcachemanager",{"2":{"16":3}}],["customcacheobject",{"2":{"16":6}}],["customcontainer",{"2":{"9":1,"179":7}}],["custom",{"2":{"9":1,"99":2}}],["c",{"2":{"7":2,"43":3,"71":4,"145":1,"211":2,"213":2,"310":1,"313":1,"315":1,"318":1,"321":1,"323":1,"327":1,"329":1,"330":1}}],["cast",{"2":{"224":1}}],["case",{"2":{"199":1}}],["cannot",{"2":{"224":1}}],["category",{"2":{"24":5}}],["cachetest",{"2":{"179":1}}],["cachename",{"2":{"178":1}}],["cachemanger",{"2":{"178":3}}],["cachemanagermap",{"2":{"13":1}}],["cachemanager",{"2":{"7":2,"11":6,"13":2,"15":8,"16":1,"178":2,"179":2,"180":6,"246":1}}],["cacheablepropertyoperator",{"2":{"36":1,"220":1,"222":1}}],["cacheablecontainerprocessor",{"2":{"19":1}}],["cacheablecontainer",{"2":{"11":5}}],["cachedefinition",{"2":{"11":2}}],["caches",{"2":{"10":1}}],["cacheobject",{"2":{"7":2,"15":3,"180":2}}],["cache",{"2":{"7":1,"12":1,"14":1,"15":6,"79":2,"179":3,"180":3,"246":4,"300":1}}],["callerrunspolicy",{"2":{"1":2}}],["color",{"2":{"196":1}}],["coll",{"2":{"46":1}}],["collecttoentities",{"2":{"289":1}}],["collector",{"2":{"90":1,"265":2}}],["collectors",{"2":{"9":1,"13":1,"14":1,"20":1,"24":1,"31":1,"40":1,"56":1,"68":1,"80":1,"90":1,"145":1,"257":1,"265":3,"272":5,"277":6,"279":1,"333":1}}],["collect",{"2":{"9":1,"13":1,"14":1,"20":1,"24":1,"31":1,"40":1,"56":1,"68":1,"80":1,"145":1,"257":1,"265":5,"272":5,"277":6,"279":1,"282":1,"333":1}}],["collections",{"2":{"11":1,"68":1,"82":1,"277":1,"282":1}}],["collection",{"2":{"5":1,"9":1,"20":1,"25":1,"27":1,"30":1,"31":3,"56":1,"71":2,"82":1,"101":1,"118":1,"131":2,"149":1,"155":2,"179":1,"257":1,"272":1,"274":2,"277":2,"278":1,"287":1,"314":1,"322":1}}],["corsair",{"2":{"194":1}}],["core模块应该默认支持ognl表达式",{"2":{"217":1}}],["core",{"2":{"157":3,"190":1,"224":2,"289":1,"325":2}}],["com",{"2":{"50":1,"60":1}}],["completemapping",{"2":{"289":1}}],["comparator",{"2":{"24":1}}],["component",{"2":{"20":1,"24":1,"28":1,"33":2,"56":2,"82":1,"132":1,"257":1,"260":2,"261":2,"265":1,"277":1,"278":1,"279":1,"314":1,"315":1,"322":1,"323":1}}],["code",{"2":{"6":2,"51":1,"58":3,"61":2,"77":1,"80":2,"112":3,"113":11,"151":1,"256":2,"257":2,"258":3,"267":1,"273":1,"274":1,"334":1}}],["config",{"2":{"152":2,"248":1}}],["configuratiopn",{"2":{"178":2}}],["configurationutil",{"2":{"148":1}}],["configuration",{"2":{"1":3,"6":1,"9":2,"11":1,"24":2,"28":1,"36":1,"82":1,"98":2,"148":2,"160":2,"281":2,"282":2,"283":2,"285":2,"309":2,"315":1,"323":1}}],["configureoperationannotationhandler",{"2":{"65":1}}],["consumer",{"2":{"145":1}}],["constantcontainer",{"2":{"51":1,"220":1,"221":1,"222":2,"296":1}}],["constantcontainerbuilder",{"2":{"48":1}}],["constant",{"2":{"50":2,"51":3,"60":1,"243":2,"244":1}}],["context",{"2":{"308":1}}],["controller",{"2":{"77":1,"151":1,"161":2,"267":1,"269":1}}],["contstant",{"2":{"47":1}}],["containerdefinition",{"2":{"224":1}}],["containermhetod",{"2":{"261":1}}],["containermanager",{"2":{"179":1,"296":1}}],["containermethd",{"2":{"131":2}}],["containermethodannotationprocessor",{"2":{"298":1}}],["containermethod",{"0":{"298":1},"2":{"9":3,"13":1,"14":1,"71":4,"72":1,"73":7,"74":1,"75":1,"77":3,"78":1,"79":5,"132":1,"220":1,"222":1,"227":1,"228":1,"233":1,"245":1,"261":1,"262":1,"265":1,"273":2,"274":2,"278":1,"287":2}}],["containerenumscan",{"2":{"60":2,"233":1}}],["containerenum注解的枚举",{"2":{"60":1,"244":1}}],["containerenum",{"2":{"59":2,"61":7,"223":1,"227":1,"257":1,"258":1,"274":1}}],["containerprovider",{"2":{"53":2,"54":1,"55":2,"222":1,"279":2}}],["containerparam",{"2":{"31":3,"35":1}}],["containerconstantscan",{"2":{"50":2}}],["containerconstant",{"2":{"48":1,"49":8,"51":6,"217":1}}],["containercache",{"2":{"9":4,"13":2,"56":1,"75":2,"79":4,"179":1,"228":1,"229":1,"235":1,"236":1}}],["containeradapterregister",{"2":{"31":2}}],["containerinstancelifecycleprocessor",{"2":{"19":1}}],["containerregisterlogger",{"2":{"19":1}}],["containerlifecycleprocessor",{"2":{"19":1,"229":1}}],["containers",{"2":{"11":1,"24":1,"31":1,"48":4,"52":1,"58":4,"59":2,"68":3,"69":3,"80":1,"82":1,"90":1,"246":2,"282":6}}],["container2",{"2":{"6":4}}],["container1",{"2":{"6":9}}],["container",{"2":{"5":1,"6":3,"9":4,"10":1,"11":4,"17":2,"19":1,"20":5,"21":2,"24":1,"25":1,"27":1,"30":1,"31":6,"39":1,"40":1,"41":1,"42":1,"44":2,"45":1,"46":1,"48":3,"50":1,"52":5,"55":2,"56":3,"58":3,"59":2,"60":1,"68":3,"69":2,"74":1,"80":3,"82":2,"83":1,"84":1,"86":1,"87":2,"88":1,"89":1,"90":1,"92":1,"93":1,"94":1,"97":1,"99":3,"110":3,"111":4,"112":2,"113":2,"114":2,"116":1,"117":4,"118":2,"119":2,"120":1,"123":3,"126":3,"131":1,"132":1,"134":2,"135":2,"137":2,"138":2,"139":1,"140":2,"141":2,"142":1,"144":1,"145":2,"155":2,"161":2,"162":1,"179":2,"224":2,"243":2,"244":2,"245":1,"251":3,"252":3,"253":2,"254":3,"277":3,"279":2,"282":11,"283":2,"289":1,"302":1,"310":1,"311":1,"315":1,"318":1,"319":1,"323":1,"327":1,"328":1,"330":1}}],["conversionservice",{"2":{"37":1}}],["converterregistry",{"2":{"37":1}}],["convertermanager",{"2":{"37":4,"136":1}}],["convert",{"2":{"37":1,"300":1}}],["conditionaltypehierarchybeanoperationparser",{"2":{"121":1}}],["conditiondescriptor",{"2":{"121":2}}],["conditionparser",{"2":{"121":1}}],["conditiontype",{"2":{"113":3,"121":2}}],["conditionontargetserializable>",{"2":{"121":1}}],["conditionontargetserializableparser",{"2":{"121":2}}],["conditionontargetserializable",{"2":{"121":6}}],["conditionontargettype",{"2":{"119":3}}],["conditiononcontainer",{"2":{"120":2}}],["conditiononproperty",{"2":{"117":5,"253":1}}],["conditiononpropertynotempty",{"2":{"110":1,"118":3}}],["conditiononpropertynotnull",{"2":{"86":1,"113":1,"118":3,"253":1}}],["conditiononexpression",{"2":{"110":3,"111":2,"112":1,"113":5,"114":1,"116":2,"253":1}}],["condition",{"2":{"34":2,"152":2,"229":1}}],["concurrentreferencehashmap",{"2":{"14":1}}],["cross",{"2":{"183":1}}],["crane",{"2":{"332":3}}],["cranej4",{"2":{"86":1,"178":1}}],["crane4jinitializer",{"2":{"223":1}}],["crane4japplicationcontext",{"2":{"222":1}}],["crane4jconfig",{"2":{"178":2}}],["crane4jexampleconfiguration",{"2":{"82":1}}],["crane4jglobalsorter",{"2":{"24":1}}],["crane4jglobalconfiguration",{"2":{"24":1,"53":1,"56":1,"148":1,"179":2,"180":1,"225":1,"281":3,"282":1,"283":1,"296":1}}],["crane4j目前提供了七个内置的操作注解处理器",{"2":{"23":1}}],["crane4jtemplate",{"2":{"4":2,"16":3,"19":4,"24":4,"28":3,"35":3,"52":4,"54":4,"65":7,"68":4,"76":4,"83":4,"121":2,"128":2,"131":1,"145":2,"146":1,"147":4,"236":1,"310":3,"313":1,"315":4,"318":3,"321":1,"323":4,"326":3,"327":1,"329":1,"330":5}}],["crane4j",{"0":{"334":1,"335":1},"2":{"0":2,"1":4,"7":1,"9":1,"12":2,"13":1,"14":1,"17":2,"18":2,"19":2,"20":1,"21":1,"22":1,"24":2,"28":2,"32":2,"36":2,"37":1,"38":1,"52":2,"53":1,"54":1,"55":1,"63":1,"64":1,"65":1,"70":3,"71":1,"80":1,"82":1,"84":1,"86":1,"87":1,"89":1,"90":1,"92":2,"95":2,"98":1,"103":1,"108":1,"116":1,"117":2,"118":3,"119":1,"120":1,"121":2,"122":1,"125":1,"131":2,"142":1,"145":1,"146":1,"147":2,"148":2,"151":1,"155":1,"156":1,"157":3,"161":2,"163":1,"164":3,"165":1,"171":1,"174":1,"176":1,"177":3,"179":4,"180":2,"216":4,"219":3,"220":2,"222":2,"224":2,"225":1,"228":1,"237":1,"239":1,"240":1,"243":1,"244":1,"245":1,"247":1,"248":1,"249":2,"250":2,"251":1,"255":1,"257":1,"259":1,"261":1,"263":1,"266":1,"270":1,"273":1,"276":1,"277":1,"278":1,"280":1,"281":3,"282":3,"283":2,"284":1,"286":1,"287":2,"289":2,"300":1,"304":1,"306":3,"307":1,"308":3,"309":2,"310":1,"316":1,"317":4,"318":1,"324":1,"325":3,"327":1,"331":1,"332":2,"333":1,"334":2,"335":5}}],["createautooperateproxy",{"2":{"148":1}}],["createoperatorproxy",{"2":{"28":1}}],["createcondition",{"2":{"121":1}}],["createcontainer",{"2":{"24":1}}],["createcache",{"2":{"15":2}}],["create",{"2":{"1":1,"9":1,"98":1,"148":1,"160":1,"281":1,"282":1,"283":1}}],["cpu",{"2":{"1":1,"194":1}}],["td",{"2":{"265":2}}],["tyan",{"2":{"211":1}}],["typeresolver",{"2":{"106":1,"150":2}}],["typename",{"2":{"51":2,"61":2}}],["typehierarchybeanoperationparser",{"2":{"22":1,"30":1}}],["type",{"2":{"3":4,"6":1,"17":1,"21":1,"24":7,"34":2,"42":2,"51":3,"61":3,"71":1,"72":1,"73":7,"74":2,"79":4,"102":1,"103":1,"104":1,"105":1,"106":2,"107":1,"110":1,"113":3,"121":5,"123":1,"124":2,"129":1,"131":2,"132":1,"149":3,"150":2,"151":2,"152":3,"153":2,"154":3,"155":1,"161":1,"162":1,"252":1,"257":2,"258":1,"261":1,"262":1,"264":1,"267":1,"268":1,"271":1,"273":8,"274":9,"275":8,"276":2,"277":7,"278":3,"279":1,"283":1,"287":4,"314":1,"315":1,"322":1,"323":1,"334":1}}],["tact",{"2":{"208":1}}],["tatham",{"2":{"190":1}}],["tag",{"2":{"184":1}}],["table",{"2":{"196":2}}],["tableinfo",{"2":{"174":1}}],["tableid",{"2":{"169":1,"171":1,"174":1}}],["tablefield",{"2":{"169":2,"174":2}}],["tablename",{"2":{"169":1,"174":1}}],["targettype",{"2":{"79":4,"273":2,"287":1}}],["target",{"2":{"17":1,"24":1,"79":2,"110":3,"111":2,"112":1,"113":5,"114":1,"116":3,"119":1,"121":3,"124":4,"145":1,"253":1,"275":3}}],["targetserializableconditionparser",{"2":{"121":1}}],["targets",{"2":{"5":1,"25":1,"27":1,"29":1,"30":1,"31":4,"119":2,"155":2}}],["t>",{"2":{"77":1,"106":2,"150":1,"151":1,"267":1}}],["two",{"2":{"48":4,"49":2,"58":3,"59":3}}],["t",{"2":{"37":1,"65":1,"77":2,"151":2,"267":2}}],["tuple",{"2":{"33":4}}],["toset",{"2":{"265":2,"277":2}}],["to",{"2":{"72":1,"73":6,"175":1,"224":2,"261":1,"262":1}}],["tomap",{"2":{"20":1,"24":1,"31":1,"56":1,"68":1,"80":1,"90":1,"265":3,"272":3,"277":2,"279":1,"282":1,"333":1}}],["tolist",{"2":{"9":1,"13":1,"14":1,"257":1,"272":2}}],["thirddepts",{"2":{"265":3}}],["thirddept",{"2":{"265":2}}],["thirddeptids",{"2":{"265":2}}],["thirddeptid",{"2":{"264":1,"265":3}}],["thirddeptname",{"2":{"264":2,"265":3}}],["this",{"2":{"16":1,"21":5,"77":1,"151":1,"254":1,"267":1}}],["the",{"2":{"206":2}}],["three",{"2":{"48":4,"49":3}}],["threadlocal",{"2":{"219":1}}],["thread",{"2":{"1":1,"187":1}}],["threadfactorybuilder",{"2":{"1":1}}],["threadpoolexecutor",{"2":{"1":6,"6":1}}],["threadpooltaskexecutor",{"2":{"1":1}}],["tex",{"2":{"210":2}}],["teacherage",{"2":{"141":2}}],["teachername",{"2":{"141":4}}],["teachernames",{"2":{"44":3,"46":2,"140":4,"145":7}}],["teacher>",{"2":{"44":1,"45":1,"140":1}}],["teachers",{"2":{"44":2,"45":2,"140":2}}],["teacherids",{"2":{"44":3,"45":1,"46":1,"140":3,"145":2}}],["teacher",{"2":{"44":4,"140":8,"145":5}}],["test3",{"2":{"251":1,"252":1,"254":1}}],["test2",{"2":{"10":1,"251":1,"252":1,"253":1,"254":1}}],["test1",{"2":{"10":1,"251":1,"252":1,"253":1,"254":1}}],["testcontainer",{"2":{"9":1,"31":2,"82":1,"246":2}}],["test",{"2":{"5":1,"9":1,"11":1,"15":8,"30":1,"48":1,"58":1,"82":1,"121":1,"161":1,"162":1,"179":8,"180":2,"199":1,"216":1,"219":1,"283":1,"308":1,"310":2,"311":1,"315":3,"317":1,"318":2,"319":1,"323":3,"327":2,"328":1,"330":2}}],["template",{"2":{"4":2,"121":2,"128":2,"131":1,"145":2,"147":4,"178":4,"254":2}}],["time",{"2":{"10":4}}],["timeunit",{"2":{"1":1,"9":6,"11":1,"15":2,"16":2,"75":2,"79":2,"179":2}}],["tip",{"2":{"0":1,"6":1,"9":1,"33":1,"59":1,"69":1,"71":1,"77":1,"80":1,"86":1,"88":1,"89":1,"90":1,"92":1,"93":1,"110":1,"113":1,"117":1,"118":1,"126":1,"129":1,"131":1,"132":1,"151":1,"152":1,"153":1,"154":1,"155":1,"171":1,"173":1,"257":1,"261":1,"264":1,"265":1,"278":1,"285":1,"309":1,"310":1,"318":1,"327":1}}],["true",{"2":{"1":1,"15":1,"48":1,"49":3,"51":2,"60":1,"61":2,"72":2,"78":2,"79":1,"112":2,"117":3,"118":1,"119":2,"152":2,"155":2,"167":2,"180":1,"239":1,"240":2,"241":2,"244":1,"245":2,"249":2,"250":1,"256":1,"257":1,"258":1}}],["==",{"2":{"112":1,"113":8,"117":1,"253":1}}],["==========",{"2":{"73":8}}],["=",{"2":{"1":6,"3":3,"4":2,"5":5,"6":8,"9":9,"11":4,"13":3,"14":2,"15":6,"16":2,"17":10,"19":1,"20":3,"21":7,"24":8,"25":4,"27":3,"28":5,"29":1,"30":6,"31":11,"33":4,"34":6,"35":1,"36":3,"39":2,"40":1,"41":5,"42":7,"44":9,"45":5,"46":6,"48":8,"49":6,"50":3,"51":6,"52":5,"54":1,"55":9,"56":1,"58":4,"59":6,"60":3,"61":7,"63":2,"65":3,"66":2,"67":6,"68":4,"69":2,"71":8,"73":16,"74":9,"75":5,"76":2,"77":6,"79":16,"80":4,"83":1,"86":4,"87":8,"88":5,"89":10,"90":5,"92":4,"93":5,"94":8,"97":5,"98":2,"99":2,"102":1,"103":1,"104":2,"105":1,"107":2,"110":12,"111":15,"112":5,"113":13,"114":9,"116":3,"117":15,"118":6,"119":5,"120":2,"121":1,"123":17,"124":5,"126":12,"128":1,"129":2,"131":10,"132":6,"133":10,"134":8,"135":4,"137":5,"138":5,"139":3,"140":9,"141":19,"142":4,"144":5,"145":16,"147":2,"148":4,"149":4,"151":7,"152":3,"153":2,"154":4,"155":6,"160":3,"161":7,"162":7,"168":1,"170":4,"171":2,"172":2,"173":3,"174":2,"175":7,"178":1,"179":7,"180":2,"225":1,"250":6,"251":6,"252":11,"253":9,"254":7,"256":1,"257":10,"258":6,"261":13,"262":13,"264":11,"265":14,"267":5,"268":2,"272":14,"273":16,"274":21,"275":14,"277":14,"278":7,"279":4,"281":1,"282":7,"283":8,"285":4,"287":18,"310":1,"311":3,"313":1,"314":2,"315":7,"318":1,"319":3,"321":1,"322":2,"323":8,"326":1,"327":1,"328":3,"329":1,"330":6,"333":8,"334":5}}],["16",{"0":{"235":1}}],["13",{"0":{"230":1}}],["15",{"0":{"227":1}}],["12",{"0":{"226":1},"2":{"308":1}}],["123",{"2":{"117":3,"271":2}}],["18",{"0":{"225":1},"2":{"250":3}}],["1899",{"2":{"194":1}}],["1等",{"2":{"190":1}}],["1l",{"2":{"15":2}}],["10086",{"2":{"253":2}}],["10012341234",{"2":{"67":1}}],["100l",{"2":{"11":1}}],["1000l",{"2":{"9":3,"75":1,"79":1,"179":1}}],["10",{"0":{"219":1,"225":1,"226":1},"2":{"1":1,"6":3,"250":3,"308":2}}],["1",{"0":{"1":1,"3":1,"8":1,"9":2,"10":1,"13":1,"19":1,"23":1,"26":1,"27":2,"28":1,"29":1,"30":1,"31":1,"33":1,"39":1,"41":1,"44":1,"48":1,"54":1,"58":1,"63":1,"65":1,"71":1,"82":1,"85":1,"86":2,"87":1,"88":1,"89":1,"92":1,"97":1,"101":1,"102":2,"103":1,"104":1,"105":1,"109":1,"110":2,"111":1,"112":1,"113":1,"114":1,"116":1,"123":1,"126":1,"128":1,"131":1,"134":1,"135":2,"136":1,"144":1,"147":1,"149":1,"157":1,"159":1,"164":1,"166":1,"170":1,"177":1,"216":1,"217":2,"218":1,"219":1,"223":1,"226":1,"230":1,"234":1,"238":1,"239":2,"240":1,"241":1,"243":1,"252":1,"256":1,"260":1,"264":1,"267":1,"270":1,"271":2,"272":1,"277":1,"281":1,"308":1,"313":1,"317":1,"321":1,"325":1,"333":1},"1":{"9":1,"10":1,"11":1,"27":1,"28":1,"29":1,"30":1,"31":1,"86":1,"87":1,"88":1,"89":1,"102":1,"103":1,"104":1,"105":1,"110":1,"111":1,"112":1,"113":1,"114":1,"135":1,"136":1,"239":1,"240":1,"241":1,"271":1,"272":1},"2":{"1":1,"6":2,"11":1,"31":1,"33":2,"44":2,"46":1,"50":1,"58":2,"59":2,"60":1,"61":2,"66":1,"67":1,"78":2,"96":1,"113":1,"126":1,"128":1,"131":1,"140":1,"143":1,"145":1,"152":2,"161":4,"179":4,"181":1,"187":3,"219":1,"220":1,"222":1,"224":1,"256":1,"257":1,"258":1,"264":1,"271":1,"272":1,"282":1,"285":2,"310":1,"313":1,"314":1,"315":3,"318":1,"321":1,"322":1,"323":3,"327":1,"329":1,"330":2,"333":2}}],["中查到的数据一般不直接具备所有字段",{"2":{"333":1}}],["中异步执行器一节",{"2":{"295":1}}],["中多对多装配一节",{"2":{"293":1,"294":1}}],["中一对多装配一节",{"2":{"292":1}}],["中即为",{"2":{"292":1,"293":1,"294":1}}],["中或者相关交流群中反馈",{"2":{"289":1}}],["中不必再进行数据源配置",{"2":{"258":1}}],["中带有",{"2":{"245":1}}],["中适配器部分代码",{"2":{"224":1}}],["中反馈",{"2":{"216":1}}],["中寻求与该项目相关的协助",{"2":{"185":1}}],["中汲取教训",{"2":{"181":1}}],["中搜过下列句子但没有找到什么有用的东西",{"2":{"181":1}}],["中配置的主键",{"2":{"171":1}}],["中配置一些附加信息来调整键值的解析策略",{"2":{"91":1}}],["中并没有",{"2":{"161":1}}],["中自动填充这一节",{"2":{"131":1,"132":1}}],["中操作执行器部分",{"2":{"131":1,"132":1}}],["中根据部门",{"2":{"175":1}}],["中根据",{"2":{"131":1}}],["中通过",{"2":{"122":1}}],["中指定如何进行属性映射",{"2":{"92":1}}],["中拿到的所有",{"2":{"90":1}}],["中显式的使用通用响应体包装返回值",{"2":{"77":1,"151":1,"267":1}}],["中获取对应的值",{"2":{"69":1}}],["中获取缓存",{"2":{"11":1}}],["中的注解处理器",{"2":{"284":1}}],["中的快速开始",{"2":{"223":1}}],["中的缓存",{"2":{"180":1}}],["中的缓存配置将不会生效",{"2":{"79":1}}],["中的映射配置移到模板类中",{"2":{"141":1}}],["中的装配操作时的顺序",{"2":{"127":1}}],["中的分组校验",{"2":{"122":1}}],["中的所有",{"2":{"102":1}}],["中的",{"2":{"53":1,"289":1}}],["中的各种数据源容器",{"2":{"52":1}}],["中的序列化器",{"2":{"38":1}}],["中的默认配置",{"2":{"1":1}}],["中有不少需要通过反射调用有参方法的场景",{"2":{"37":1}}],["中基于该数据源配置一个填充操作",{"2":{"261":1}}],["中基于",{"2":{"35":1}}],["中分别基于",{"2":{"6":1}}],["中",{"2":{"0":1,"7":1,"36":1,"42":1,"45":1,"52":1,"56":1,"59":1,"74":1,"79":1,"84":1,"98":1,"121":1,"125":1,"148":1,"161":1,"222":1,"282":1,"283":1,"287":1,"310":1,"318":1,"327":1}}],["在数据源需要通过频繁的网络",{"2":{"335":1}}],["在数据源层面处理级联关系",{"0":{"265":1}}],["在日常开发中",{"2":{"333":1}}],["在后续通过命名空间",{"2":{"310":1,"318":1,"327":1}}],["在后续的内容中",{"2":{"280":1}}],["在需要嵌套填充的属性上添加",{"2":{"290":1}}],["在创建完容器后",{"2":{"282":1}}],["在创建对象时只填充一部分属性",{"2":{"122":1}}],["在将原本的注解封装为一个新组合注解后",{"2":{"275":1}}],["在将常量属性注册到容器后",{"2":{"49":1}}],["在本文的例子中",{"2":{"269":1}}],["在自动填充时",{"2":{"252":1}}],["在自动填充时使用",{"0":{"3":1}}],["在应用启动后自动注册为容器",{"2":{"243":1,"244":1}}],["在依赖中排除",{"2":{"234":1,"236":1}}],["在序列化和反序列化过程中填充",{"2":{"224":1}}],["在启动类添加",{"2":{"223":1,"304":1}}],["在启动后将会自动注册",{"2":{"65":1}}],["在启动后",{"2":{"19":1}}],["在不同的情况下可能有些字段要填充",{"2":{"335":1}}],["在不同类的同名方法上添加",{"2":{"224":1}}],["在不指定",{"2":{"223":1}}],["在不影响连贯性之下",{"2":{"187":1}}],["在没有找到",{"2":{"221":1,"222":1}}],["在各个组件中由于参数",{"2":{"221":1,"222":1}}],["在最后一个问题中",{"2":{"211":1}}],["在它的邮件列表",{"2":{"210":1}}],["在黑客社区的论坛中",{"2":{"209":1}}],["在黑客中",{"2":{"204":1}}],["在下一节",{"2":{"208":1}}],["在行事之前一定要非常非常的有根据",{"2":{"208":1}}],["在此之前",{"2":{"210":1}}],["在此之后才指明可以避免的盲点",{"2":{"204":1}}],["在此处",{"2":{"34":1}}],["在人来人往的邮件列表里",{"2":{"204":1}}],["在项目的用户邮件列表或论坛中提问",{"2":{"200":1}}],["在项目启动后依然会自动注册",{"2":{"225":1}}],["在项目启动后它会自动注册",{"2":{"54":1}}],["在项目启动后",{"2":{"28":1,"159":1,"246":1}}],["在信的开头就要说出来",{"2":{"199":1}}],["在第七行以后",{"2":{"199":1}}],["在命令行处理的情况下",{"2":{"195":1}}],["在编译内核时",{"2":{"194":1}}],["在精炼你的",{"2":{"191":1}}],["在英语论坛中",{"2":{"189":1}}],["在论坛",{"2":{"188":1,"189":1,"206":1}}],["在网页论坛上",{"2":{"187":1}}],["在差异部分则描述与期望的行为不一致的地方",{"2":{"187":1}}],["在目标部分指出是哪一个或哪一组东西有问题",{"2":{"187":1}}],["在邮件列表",{"2":{"187":1}}],["在邮件列表或新闻组寻求帮助时加上一句",{"2":{"181":1}}],["在任何论坛发文以前",{"2":{"185":1}}],["在任意时刻自动回收",{"2":{"14":1}}],["在看到这类问题的时候",{"2":{"210":1}}],["在看",{"2":{"184":1}}],["在仔细挑选的公共论坛中提问",{"2":{"183":1}}],["在选择论坛",{"2":{"183":1}}],["在选项式配置中",{"2":{"79":1}}],["在太多的不同新闻群组上重复转贴同样的问题",{"2":{"183":1}}],["在探讨进阶技术问题的论坛张贴非常初级的问题",{"2":{"183":1}}],["在与主题不合的论坛上贴出你的问题",{"2":{"183":1}}],["在向专家求助之前",{"2":{"181":1}}],["在你提问之前预先将黑客们可能提出的问题回答一遍",{"2":{"190":1}}],["在你的电子邮件中",{"2":{"186":1}}],["在你准备要通过电子邮件",{"2":{"181":1}}],["在你要转换的字段",{"2":{"66":1}}],["在提问之前",{"0":{"181":1}}],["在引入依赖后",{"2":{"178":1}}],["在开头就描述你的目标",{"2":{"196":1}}],["在开头简述问题",{"2":{"195":1}}],["在开启自动注册的情况下",{"2":{"167":1}}],["在开始填充对象之前",{"2":{"310":1,"318":1,"327":1}}],["在开始前",{"2":{"157":1,"164":1,"177":1}}],["在开始装配前",{"2":{"105":1}}],["在开始解析配置前",{"2":{"22":1}}],["在默认使用",{"2":{"156":1}}],["在默认情况",{"2":{"89":1}}],["在默认情况下",{"2":{"15":1,"80":1,"93":1,"96":1,"143":1,"180":1,"249":1}}],["在运行时自动推断类型",{"2":{"151":1}}],["在特定情况下",{"2":{"151":1,"268":1}}],["在方法上添加注解",{"2":{"314":1,"322":1}}],["在方法上声明",{"0":{"87":1,"103":1}}],["在方法上声明装配操作时",{"2":{"27":1}}],["在方法参数添加",{"2":{"286":1}}],["在方法添加",{"2":{"221":1,"222":1,"286":1}}],["在方法调用前后自动完成",{"2":{"146":1}}],["在代码时排除",{"2":{"254":1}}],["在代码中完成",{"2":{"146":1}}],["在代码上",{"2":{"84":1}}],["在注解中通过",{"2":{"145":1}}],["在注解中通过命名空间引用容器",{"2":{"52":1}}],["在实际执行时",{"2":{"131":1}}],["在示例中",{"2":{"123":1}}],["在某牌显卡",{"2":{"187":1}}],["在某些情况下",{"2":{"100":1,"106":1,"150":1,"179":1}}],["在某个",{"2":{"86":1}}],["在执行器进行预解析",{"2":{"248":1}}],["在执行填充之前",{"2":{"152":1}}],["在执行自动填充操作时",{"2":{"150":1}}],["在执行拆卸操作时",{"2":{"106":1}}],["在执行的过程中涉及到大量的逻辑判断",{"2":{"95":1}}],["在执行装配操作前和完成装配操作后",{"2":{"21":1}}],["在无法直接从",{"2":{"95":1}}],["在无法直接修改父类的情况下",{"2":{"88":1}}],["在父类或父类的属性上声明的操作",{"2":{"88":1}}],["在类上声明",{"0":{"88":1,"104":1}}],["在有返回值的无参方法上声明也是允许的",{"2":{"87":1,"103":1}}],["在属性上声明",{"0":{"86":1,"102":1}}],["在回调方法中实现你想要的效果",{"2":{"80":1}}],["在配置解析过程中",{"2":{"107":1}}],["在配置填充操作时",{"2":{"80":1}}],["在配置中引用",{"0":{"55":1}}],["在设计上参考了",{"2":{"70":1}}],["在批量映射的情况下",{"2":{"44":1,"140":1}}],["在多对多的情况下",{"2":{"43":1}}],["在上一个示例中",{"2":{"250":1}}],["在上一个版本的基础上修复了一些",{"2":{"221":1}}],["在上面这个写法中",{"2":{"155":1}}],["在上面的示例中",{"2":{"41":1,"44":1,"102":1}}],["在上述两种风格的基础上",{"2":{"275":1}}],["在上述配置中",{"2":{"46":1}}],["在上述代码中",{"2":{"31":1,"90":1,"132":1,"252":1,"254":1}}],["在上述示例中",{"2":{"20":1,"56":1,"63":1,"123":1,"126":1,"153":1,"154":1}}],["在整个装配过程中负责实际的属性读写操作",{"2":{"38":1}}],["在一些非英语国家",{"2":{"185":1}}],["在一些情况下",{"2":{"90":1,"94":1,"140":1}}],["在一些场景中",{"2":{"38":1}}],["在一对多的情况下",{"2":{"40":1,"42":1}}],["在一个接口上添加",{"2":{"27":1}}],["在字段映射时调用的",{"2":{"37":1}}],["在原有功能的基础上支持通过链式操作符读写嵌套对象属性",{"2":{"36":1}}],["在原有功能的基础上支持读写",{"2":{"36":1}}],["在原有功能的基础上支持",{"2":{"36":1}}],["在这一步",{"2":{"289":4}}],["在这之前",{"2":{"250":1,"251":1,"255":1,"259":1,"263":1,"266":1,"276":1}}],["在这种模式下",{"2":{"33":1}}],["在这种情况下",{"2":{"32":1,"33":1,"79":1,"140":1,"180":1,"202":1,"209":1,"276":1}}],["在这部分功能使用了非常典型的责任链模式",{"2":{"22":1}}],["在调用代理对象的",{"2":{"29":1}}],["在抽象方法上使用",{"2":{"27":1}}],["在定义了对应注解后",{"2":{"24":1}}],["在crane4j中",{"2":{"22":1}}],["在完成填充后",{"2":{"21":1}}],["在填充开始前",{"2":{"21":1}}],["在容器被销毁时",{"2":{"20":1}}],["在容器被使用时",{"2":{"20":1}}],["在容器生命周期的三个关键节点输出相关信息",{"2":{"19":1}}],["在用户的容器注册前",{"2":{"19":1}}],["在非",{"0":{"160":1,"324":1},"1":{"325":1,"326":1,"327":1,"328":1,"329":1,"330":1},"2":{"13":1,"17":1,"28":2,"37":1,"56":1,"306":1,"325":1}}],["在使用时",{"2":{"169":1}}],["在使用前",{"2":{"65":1,"165":1}}],["在使用",{"2":{"13":1,"185":1}}],["在操作者接口中",{"2":{"5":1}}],["在操作者接口中使用",{"0":{"5":1}}],["在手动填充时使用",{"0":{"4":1}}],["在进行自动填充时",{"2":{"3":1}}],["在",{"0":{"159":1,"307":1,"316":1},"1":{"308":1,"309":1,"310":1,"311":1,"312":1,"313":1,"314":1,"315":1,"317":1,"318":1,"319":1,"320":1,"321":1,"322":1,"323":1},"2":{"0":1,"1":1,"3":1,"7":1,"9":1,"13":1,"14":1,"17":1,"24":1,"28":2,"35":1,"36":1,"37":2,"50":3,"51":1,"52":1,"56":1,"57":1,"59":1,"60":3,"61":1,"64":1,"65":2,"71":1,"72":1,"74":1,"75":1,"76":1,"77":1,"79":2,"82":1,"84":1,"86":2,"90":1,"91":1,"95":1,"96":1,"97":1,"98":1,"99":1,"108":1,"116":1,"121":1,"124":1,"125":1,"126":1,"132":1,"133":1,"134":1,"135":1,"137":1,"138":1,"141":1,"143":1,"145":1,"148":2,"152":2,"155":1,"156":1,"159":1,"161":1,"166":1,"167":1,"176":1,"194":1,"232":1,"237":1,"249":1,"269":1,"278":1,"282":1,"283":1,"292":1,"293":1,"294":1,"304":1,"306":2,"309":1,"310":1,"312":1,"318":1,"320":1,"327":1,"331":1,"332":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/docs/assets/chunks/VPLocalSearchBox.CRKyBVAH.js b/docs/assets/chunks/VPLocalSearchBox.C9W83JJD.js similarity index 99% rename from docs/assets/chunks/VPLocalSearchBox.CRKyBVAH.js rename to docs/assets/chunks/VPLocalSearchBox.C9W83JJD.js index d5700f86..fa7ab0f8 100644 --- a/docs/assets/chunks/VPLocalSearchBox.CRKyBVAH.js +++ b/docs/assets/chunks/VPLocalSearchBox.C9W83JJD.js @@ -1,4 +1,4 @@ -var It=Object.defineProperty;var Dt=(o,e,t)=>e in o?It(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>(Dt(o,typeof e!="symbol"?e+"":e,t),t);import{Y as yt,h as oe,y as $e,aj as kt,ak as Ot,d as _t,H as xe,al as tt,k as Fe,am as Rt,an as Mt,z as Lt,ao as Pt,l as _e,U as de,S as Ee,ap as zt,aq as Vt,Z as Bt,j as $t,ar as Wt,o as ee,b as Kt,m as k,a2 as Jt,p as j,as as Ut,at as jt,au as Gt,c as re,n as rt,e as Se,G as at,F as nt,a as ve,t as pe,av as qt,q as Ht,s as Qt,aw as it,ax as Yt,a8 as Zt,ae as Xt,ay as er,_ as tr}from"./framework.4aTu-Nia.js";import{u as rr,c as ar}from"./theme.t6V-Z8HN.js";const nr={root:()=>yt(()=>import("./@localSearchIndexroot.B8Cr8_z5.js"),[])};/*! +var It=Object.defineProperty;var Dt=(o,e,t)=>e in o?It(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>(Dt(o,typeof e!="symbol"?e+"":e,t),t);import{Y as yt,h as oe,y as $e,aj as kt,ak as Ot,d as _t,H as xe,al as tt,k as Fe,am as Rt,an as Mt,z as Lt,ao as Pt,l as _e,U as de,S as Ee,ap as zt,aq as Vt,Z as Bt,j as $t,ar as Wt,o as ee,b as Kt,m as k,a2 as Jt,p as j,as as Ut,at as jt,au as Gt,c as re,n as rt,e as Se,G as at,F as nt,a as ve,t as pe,av as qt,q as Ht,s as Qt,aw as it,ax as Yt,a8 as Zt,ae as Xt,ay as er,_ as tr}from"./framework.4aTu-Nia.js";import{u as rr,c as ar}from"./theme.Bg6LE-Bp.js";const nr={root:()=>yt(()=>import("./@localSearchIndexroot.DLuqSLTp.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var mt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=mt.join(","),gt=typeof Element>"u",ue=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ce=!gt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ie=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},ir=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},bt=function(e,t,r){if(Ie(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ue.call(e,Ne)&&n.unshift(e),n=n.filter(r),n},wt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ie(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=ue.call(i,Ne);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ie(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},xt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ir(e))&&!xt(e)?0:e.tabIndex},or=function(e,t){var r=se(e);return r<0&&t&&!xt(e)?0:r},sr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Ft=function(e){return e.tagName==="INPUT"},ur=function(e){return Ft(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},cr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(ue.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Ce(e);if(u&&!u.shadowRoot&&n(u)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(vr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return ot(e);return!1},yr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},gr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=or(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(sr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=wt([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:mr}):r=bt(e,t.includeContainer,We.bind(null,t)),gr(r)},wr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=wt([e],t.includeContainer,{filter:De.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=bt(e,t.includeContainer,De.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,Ne)===!1?!1:We(t,e)},xr=mt.concat("iframe").join(","),Re=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,xr)===!1?!1:De(t,e)};/*! diff --git a/docs/assets/chunks/theme.t6V-Z8HN.js b/docs/assets/chunks/theme.Bg6LE-Bp.js similarity index 99% rename from docs/assets/chunks/theme.t6V-Z8HN.js rename to docs/assets/chunks/theme.Bg6LE-Bp.js index 3ad57a29..535df5d8 100644 --- a/docs/assets/chunks/theme.t6V-Z8HN.js +++ b/docs/assets/chunks/theme.Bg6LE-Bp.js @@ -1,7 +1,7 @@ function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["assets/chunks/VPLocalSearchBox.CRKyBVAH.js","assets/chunks/framework.4aTu-Nia.js"] + __vite__mapDeps.viteFileDeps = ["assets/chunks/VPLocalSearchBox.C9W83JJD.js","assets/chunks/framework.4aTu-Nia.js"] } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } -import{d as _,o as a,c,r as l,n as N,a as D,t as w,b,w as d,T as ve,e as f,_ as k,u as Ue,i as Ge,f as je,g as pe,h as I,j as J,k as g,l as z,m as v,p as i,q as B,s as H,v as j,x as ie,y as q,z as x,A as he,B as Pe,C as ze,D as qe,E as K,F as M,G as E,H as Le,I as ee,J as m,K as R,L as Ve,M as te,N as Q,O as oe,P as Ke,Q as Se,R as We,S as le,U as Re,V as Te,W as Je,X as Ye,Y as Qe,Z as we,$ as Ie,a0 as Xe,a1 as Ze,a2 as xe,a3 as et}from"./framework.4aTu-Nia.js";const tt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:N(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[D(w(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},st=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),b(ve,{name:"fade"},{default:d(()=>[e.show?(a(),c("div",ot)):f("",!0)]),_:1}))}}),nt=k(st,[["__scopeId","data-v-c79a1216"]]),L=Ue;function at(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function fe(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!n.startsWith("http")||!je(e))return o;const{site:r}=L(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${s}`);return pe(u)}const _e=I(J?location.hash:"");J&&window.addEventListener("hashchange",()=>{_e.value=location.hash});function Y({removeCurrent:o=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:s,page:n,theme:r}=L(),u=g(()=>{var p,$;return{label:(p=t.value.locales[s.value])==null?void 0:p.label,link:(($=t.value.locales[s.value])==null?void 0:$.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:g(()=>Object.entries(t.value.locales).flatMap(([p,$])=>o&&u.value.label===$.label?[]:{text:$.label,link:rt($.link||(p==="root"?"/":`/${p}/`),r.value.i18nRouting!==!1&&e,n.value.relativePath.slice(u.value.link.length-1),!t.value.cleanUrls)+_e.value})),currentLang:u}}function rt(o,e,t,s){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const it=o=>(B("data-v-f87ff6e4"),o=o(),H(),o),lt={class:"NotFound"},ct={class:"code"},ut={class:"title"},dt=it(()=>v("div",{class:"divider"},null,-1)),vt={class:"quote"},pt={class:"action"},ht=["href","aria-label"],ft=_({__name:"NotFound",setup(o){const{site:e,theme:t}=L(),{localeLinks:s}=Y({removeCurrent:!1}),n=I("/");return z(()=>{var u;const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");s.value.length&&(n.value=((u=s.value.find(({link:h})=>h.startsWith(r)))==null?void 0:u.link)||s.value[0].link)}),(r,u)=>{var h,p,$,P,y;return a(),c("div",lt,[v("p",ct,w(((h=i(t).notFound)==null?void 0:h.code)??"404"),1),v("h1",ut,w(((p=i(t).notFound)==null?void 0:p.title)??"PAGE NOT FOUND"),1),dt,v("blockquote",vt,w((($=i(t).notFound)==null?void 0:$.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",pt,[v("a",{class:"link",href:i(pe)(n.value),"aria-label":((P=i(t).notFound)==null?void 0:P.linkLabel)??"go to home"},w(((y=i(t).notFound)==null?void 0:y.linkText)??"Take me home"),9,ht)])])}}}),_t=k(ft,[["__scopeId","data-v-f87ff6e4"]]);function Ne(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(ce(n))),s=t?o[t]:[];return Array.isArray(s)?X(s):X(s.items,s.base)}function mt(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function kt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):j(o,e.link)?!0:e.items?ue(o,e.items):!1}function X(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=X(s.items,n)),s})}function O(){const{frontmatter:o,page:e,theme:t}=L(),s=ie("(min-width: 960px)"),n=I(!1),r=g(()=>{const C=t.value.sidebar,S=e.value.relativePath;return C?Ne(C,S):[]}),u=I(r.value);q(r,(C,S)=>{JSON.stringify(C)!==JSON.stringify(S)&&(u.value=r.value)});const h=g(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),p=g(()=>$?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),$=g(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),P=g(()=>h.value&&s.value),y=g(()=>h.value?mt(u.value):[]);function V(){n.value=!0}function T(){n.value=!1}function A(){n.value?T():V()}return{isOpen:n,sidebar:u,sidebarGroups:y,hasSidebar:h,hasAside:$,leftAside:p,isSidebarEnabled:P,open:V,close:T,toggle:A}}function $t(o,e){let t;x(()=>{t=o.value?document.activeElement:void 0}),z(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e}=L(),t=I(!1),s=g(()=>o.value.collapsed!=null),n=g(()=>!!o.value.link),r=I(!1),u=()=>{r.value=j(e.value.relativePath,o.value.link)};q([e,o,_e],u),z(u);const h=g(()=>r.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),p=g(()=>!!(o.value.items&&o.value.items.length));x(()=>{t.value=!!(s.value&&o.value.collapsed)}),Pe(()=>{(r.value||h.value)&&(t.value=!1)});function $(){s.value&&(t.value=!t.value)}return{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:h,hasChildren:p,toggle:$}}function gt(){const{hasSidebar:o}=O(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:g(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Me(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function me(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=s&&u.level<=n),de.length=0;for(const{element:u,link:h}of o)de.push({element:u,link:h});const r=[];e:for(let u=0;u=0;p--){const $=o[p];if($.level{requestAnimationFrame(r),window.addEventListener("scroll",s)}),ze(()=>{u(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,$=document.body.offsetHeight,P=Math.abs(h+p-$)<1,y=de.map(({element:T,link:A})=>({link:A,top:Vt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,A)=>T.top-A.top);if(!y.length){u(null);return}if(h<1){u(null);return}if(P){u(y[y.length-1].link);return}let V=null;for(const{link:T,top:A}of y){if(A>h+qe()+4)break;V=T}u(V)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Vt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const St=["href","title"],Tt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=K("VPDocOutlineItem",!0);return a(),c("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:r,link:u,title:h})=>(a(),c("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:h},w(h),9,St),r!=null&&r.length?(a(),b(n,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Ae=k(Tt,[["__scopeId","data-v-b933a997"]]),wt=o=>(B("data-v-935f8a84"),o=o(),H(),o),It={class:"content"},Nt={class:"outline-title",role:"heading","aria-level":"2"},Mt={"aria-labelledby":"doc-outline-aria-label"},At=wt(()=>v("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Ct=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),s=Le([]);ee(()=>{s.value=me(e.value.outline??t.value.outline)});const n=I(),r=I();return Lt(n,r),(u,h)=>(a(),c("div",{class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n,role:"navigation"},[v("div",It,[v("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),v("div",Nt,w(i(Me)(i(t))),1),v("nav",Mt,[At,m(Ae,{headers:s.value,root:!0},null,8,["headers"])])])],2))}}),Bt=k(Ct,[["__scopeId","data-v-935f8a84"]]),Ht={class:"VPDocAsideCarbonAds"},Et=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),c("div",Ht,[m(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ft=o=>(B("data-v-3f215769"),o=o(),H(),o),Dt={class:"VPDocAside"},Ot=Ft(()=>v("div",{class:"spacer"},null,-1)),Ut=_({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,s)=>(a(),c("div",Dt,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(Bt),l(t.$slots,"aside-outline-after",{},void 0,!0),Ot,l(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),b(Et,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Gt=k(Ut,[["__scopeId","data-v-3f215769"]]);function jt(){const{theme:o,page:e}=L();return g(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function zt(){const{page:o,theme:e,frontmatter:t}=L();return g(()=>{var $,P,y,V,T,A,C,S;const s=Ne(e.value.sidebar,o.value.relativePath),n=kt(s),r=qt(n,U=>U.link.replace(/[?#].*$/,"")),u=r.findIndex(U=>j(o.value.relativePath,U.link)),h=(($=e.value.docFooter)==null?void 0:$.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((P=e.value.docFooter)==null?void 0:P.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=r[u-1])==null?void 0:y.docFooterText)??((V=r[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((T=r[u-1])==null?void 0:T.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=r[u+1])==null?void 0:A.docFooterText)??((C=r[u+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=r[u+1])==null?void 0:S.link)}}})}function qt(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=g(()=>e.tag??(e.href?"a":"span")),s=g(()=>e.href&&Ve.test(e.href));return(n,r)=>(a(),b(R(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?i(fe)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:d(()=>[l(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Kt={class:"VPLastUpdated"},Wt=["datetime"],Rt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,frontmatter:s,lang:n}=L(),r=g(()=>new Date(s.value.lastUpdated??t.value.lastUpdated)),u=g(()=>r.value.toISOString()),h=I("");return z(()=>{x(()=>{var p,$,P;h.value=new Intl.DateTimeFormat(($=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&$.forceLocale?n.value:void 0,((P=e.value.lastUpdated)==null?void 0:P.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(p,$)=>{var P;return a(),c("p",Kt,[D(w(((P=i(e).lastUpdated)==null?void 0:P.text)||i(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:u.value},w(h.value),9,Wt)])}}}),Jt=k(Rt,[["__scopeId","data-v-7e05ebdb"]]),Yt=o=>(B("data-v-09de1c0f"),o=o(),H(),o),Qt={key:0,class:"VPDocFooter"},Xt={key:0,class:"edit-info"},Zt={key:0,class:"edit-link"},xt=Yt(()=>v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),eo={key:1,class:"last-updated"},to={key:1,class:"prev-next"},oo={class:"pager"},so=["innerHTML"],no=["innerHTML"],ao={class:"pager"},ro=["innerHTML"],io=["innerHTML"],lo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=L(),n=jt(),r=zt(),u=g(()=>e.value.editLink&&s.value.editLink!==!1),h=g(()=>t.value.lastUpdated&&s.value.lastUpdated!==!1),p=g(()=>u.value||h.value||r.value.prev||r.value.next);return($,P)=>{var y,V,T,A;return p.value?(a(),c("footer",Qt,[l($.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Xt,[u.value?(a(),c("div",Zt,[m(F,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:d(()=>[xt,D(" "+w(i(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",eo,[m(Jt)])):f("",!0)])):f("",!0),(y=i(r).prev)!=null&&y.link||(V=i(r).next)!=null&&V.link?(a(),c("nav",to,[v("div",oo,[(T=i(r).prev)!=null&&T.link?(a(),b(F,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,so),v("span",{class:"title",innerHTML:i(r).prev.text},null,8,no)]}),_:1},8,["href"])):f("",!0)]),v("div",ao,[(A=i(r).next)!=null&&A.link?(a(),b(F,{key:0,class:"pager-link next",href:i(r).next.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,ro),v("span",{class:"title",innerHTML:i(r).next.text},null,8,io)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),co=k(lo,[["__scopeId","data-v-09de1c0f"]]),uo=o=>(B("data-v-39a288b8"),o=o(),H(),o),vo={class:"container"},po=uo(()=>v("div",{class:"aside-curtain"},null,-1)),ho={class:"aside-container"},fo={class:"aside-content"},_o={class:"content"},mo={class:"content-container"},ko={class:"main"},$o=_({__name:"VPDoc",setup(o){const{theme:e}=L(),t=te(),{hasSidebar:s,hasAside:n,leftAside:r}=O(),u=g(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const $=K("Content");return a(),c("div",{class:N(["VPDoc",{"has-sidebar":i(s),"has-aside":i(n)}])},[l(h.$slots,"doc-top",{},void 0,!0),v("div",vo,[i(n)?(a(),c("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[po,v("div",ho,[v("div",fo,[m(Gt,null,{"aside-top":d(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),v("div",_o,[v("div",mo,[l(h.$slots,"doc-before",{},void 0,!0),v("main",ko,[m($,{class:N(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(co,null,{"doc-footer-before":d(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),bo=k($o,[["__scopeId","data-v-39a288b8"]]),go=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=g(()=>e.href&&Ve.test(e.href)),s=g(()=>e.tag||e.href?"a":"button");return(n,r)=>(a(),b(R(s.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?i(fe)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:d(()=>[D(w(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),yo=k(go,[["__scopeId","data-v-cad61b99"]]),Po=["src","alt"],Lo=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=K("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",Q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Po)):(a(),c(M,{key:1},[m(s,Q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(s,Q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Z=k(Lo,[["__scopeId","data-v-8426fc1a"]]),Vo=o=>(B("data-v-303bb580"),o=o(),H(),o),So={class:"container"},To={class:"main"},wo={key:0,class:"name"},Io=["innerHTML"],No=["innerHTML"],Mo=["innerHTML"],Ao={key:0,class:"actions"},Co={key:0,class:"image"},Bo={class:"image-container"},Ho=Vo(()=>v("div",{class:"image-bg"},null,-1)),Eo=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=oe("hero-image-slot-exists");return(t,s)=>(a(),c("div",{class:N(["VPHero",{"has-image":t.image||i(e)}])},[v("div",So,[v("div",To,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",wo,[v("span",{innerHTML:t.name,class:"clip"},null,8,Io)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,No)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Mo)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",Ao,[(a(!0),c(M,null,E(t.actions,n=>(a(),c("div",{key:n.link,class:"action"},[m(yo,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),c("div",Co,[v("div",Bo,[Ho,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),b(Z,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Fo=k(Eo,[["__scopeId","data-v-303bb580"]]),Do=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).hero?(a(),b(Fo,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Oo=o=>(B("data-v-a3976bdc"),o=o(),H(),o),Uo={class:"box"},Go={key:0,class:"icon"},jo=["innerHTML"],zo=["innerHTML"],qo=["innerHTML"],Ko={key:4,class:"link-text"},Wo={class:"link-text-value"},Ro=Oo(()=>v("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),Jo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),b(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:d(()=>[v("article",Uo,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Go,[m(Z,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),b(Z,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,jo)):f("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,zo),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,qo)):f("",!0),e.linkText?(a(),c("div",Ko,[v("p",Wo,[D(w(e.linkText)+" ",1),Ro])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Yo=k(Jo,[["__scopeId","data-v-a3976bdc"]]),Qo={key:0,class:"VPFeatures"},Xo={class:"container"},Zo={class:"items"},xo=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=g(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),c("div",Qo,[v("div",Xo,[v("div",Zo,[(a(!0),c(M,null,E(s.features,r=>(a(),c("div",{key:r.title,class:N(["item",[t.value]])},[m(Yo,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),es=k(xo,[["__scopeId","data-v-a6181336"]]),ts=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).features?(a(),b(es,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):f("",!0)}}),os=_({__name:"VPHomeContent",setup(o){const{width:e}=Ke({includeScrollbar:!1});return(t,s)=>(a(),c("div",{class:"vp-doc container",style:Se(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),ss=k(os,[["__scopeId","data-v-82d4af08"]]),ns={class:"VPHome"},as=_({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,s)=>{const n=K("Content");return a(),c("div",ns,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Do,null,{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(ts),l(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),b(ss,{key:0},{default:d(()=>[m(n)]),_:1})):(a(),b(n,{key:1}))])}}}),rs=k(as,[["__scopeId","data-v-686f80a6"]]),is={},ls={class:"VPPage"};function cs(o,e){const t=K("Content");return a(),c("div",ls,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const us=k(is,[["render",cs]]),ds=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:s}=O();return(n,r)=>(a(),c("div",{class:N(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?l(n.$slots,"not-found",{key:0},()=>[m(_t)],!0):i(t).layout==="page"?(a(),b(us,{key:1},{"page-top":d(()=>[l(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),b(rs,{key:2},{"home-hero-before":d(()=>[l(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),b(R(i(t).layout),{key:3})):(a(),b(bo,{key:4},{"doc-top":d(()=>[l(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":d(()=>[l(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":d(()=>[l(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":d(()=>[l(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":d(()=>[l(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),vs=k(ds,[["__scopeId","data-v-1428d186"]]),ps={class:"container"},hs=["innerHTML"],fs=["innerHTML"],_s=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=O();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),c("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(s)}])},[v("div",ps,[i(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,hs)):f("",!0),i(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,fs)):f("",!0)])],2)):f("",!0)}}),ms=k(_s,[["__scopeId","data-v-e315a0ad"]]);function ks(){const{theme:o,frontmatter:e}=L(),t=Le([]),s=g(()=>t.value.length>0);return ee(()=>{t.value=me(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const $s=o=>(B("data-v-d2ecc192"),o=o(),H(),o),bs=$s(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),gs={class:"header"},ys={class:"outline"},Ps=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),s=I(!1),n=I(0),r=I(),u=I();We(r,()=>{s.value=!1}),le("Escape",()=>{s.value=!1}),ee(()=>{s.value=!1});function h(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(P){P.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Re(()=>{s.value=!1}))}function $(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(P,y)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Se({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[P.headers.length>0?(a(),c("button",{key:0,onClick:h,class:N({open:s.value})},[D(w(i(Me)(i(t)))+" ",1),bs],2)):(a(),c("button",{key:1,onClick:$},w(i(t).returnToTopLabel||"Return to top"),1)),m(ve,{name:"flyout"},{default:d(()=>[s.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:p},[v("div",gs,[v("a",{class:"top-link",href:"#",onClick:$},w(i(t).returnToTopLabel||"Return to top"),1)]),v("div",ys,[m(Ae,{headers:P.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Ls=k(Ps,[["__scopeId","data-v-d2ecc192"]]),Vs=o=>(B("data-v-a6f0e41e"),o=o(),H(),o),Ss={class:"container"},Ts=["aria-expanded"],ws=Vs(()=>v("span",{class:"vpi-align-left menu-icon"},null,-1)),Is={class:"menu-text"},Ns=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=O(),{headers:n}=ks(),{y:r}=Te(),u=I(0);z(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{n.value=me(t.value.outline??e.value.outline)});const h=g(()=>n.value.length===0),p=g(()=>h.value&&!s.value),$=g(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:h.value,fixed:p.value}));return(P,y)=>i(t).layout!=="home"&&(!p.value||i(r)>=u.value)?(a(),c("div",{key:0,class:N($.value)},[v("div",Ss,[i(s)?(a(),c("button",{key:0,class:"menu","aria-expanded":P.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=V=>P.$emit("open-menu"))},[ws,v("span",Is,w(i(e).sidebarMenuLabel||"Menu"),1)],8,Ts)):f("",!0),m(Ls,{headers:i(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Ms=k(Ns,[["__scopeId","data-v-a6f0e41e"]]);function As(){const o=I(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=te();return q(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const Cs={},Bs={class:"VPSwitch",type:"button",role:"switch"},Hs={class:"check"},Es={key:0,class:"icon"};function Fs(o,e){return a(),c("button",Bs,[v("span",Hs,[o.$slots.default?(a(),c("span",Es,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Ds=k(Cs,[["render",Fs],["__scopeId","data-v-1d5665e3"]]),Ce=o=>(B("data-v-d1f28634"),o=o(),H(),o),Os=Ce(()=>v("span",{class:"vpi-sun sun"},null,-1)),Us=Ce(()=>v("span",{class:"vpi-moon moon"},null,-1)),Gs=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),s=oe("toggle-appearance",()=>{e.value=!e.value}),n=g(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,u)=>(a(),b(Ds,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(s)},{default:d(()=>[Os,Us]),_:1},8,["title","aria-checked","onClick"]))}}),ke=k(Gs,[["__scopeId","data-v-d1f28634"]]),js={key:0,class:"VPNavBarAppearance"},zs=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,s)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),c("div",js,[m(ke)])):f("",!0)}}),qs=k(zs,[["__scopeId","data-v-e6aabb21"]]),$e=I();let Be=!1,re=0;function Ks(o){const e=I(!1);if(J){!Be&&Ws(),re++;const t=q($e,s=>{var n,r,u;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});he(()=>{t(),re--,re||Rs()})}return Je(e)}function Ws(){document.addEventListener("focusin",He),Be=!0,$e.value=document.activeElement}function Rs(){document.removeEventListener("focusin",He)}function He(){$e.value=document.activeElement}const Js={class:"VPMenuLink"},Ys=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),c("div",Js,[m(F,{class:N({active:i(j)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:d(()=>[D(w(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=k(Ys,[["__scopeId","data-v-43f1e123"]]),Qs={class:"VPMenuGroup"},Xs={key:0,class:"title"},Zs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Qs,[e.text?(a(),c("p",Xs,w(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),c(M,null,["link"in s?(a(),b(se,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}}),xs=k(Zs,[["__scopeId","data-v-69e747b5"]]),en={class:"VPMenu"},tn={key:0,class:"items"},on=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",en,[e.items?(a(),c("div",tn,[(a(!0),c(M,null,E(e.items,s=>(a(),c(M,{key:s.text},["link"in s?(a(),b(se,{key:0,item:s},null,8,["item"])):(a(),b(xs,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),sn=k(on,[["__scopeId","data-v-e7ea1737"]]),nn=o=>(B("data-v-b6c34ac9"),o=o(),H(),o),an=["aria-expanded","aria-label"],rn={key:0,class:"text"},ln=["innerHTML"],cn=nn(()=>v("span",{class:"vpi-chevron-down text-icon"},null,-1)),un={key:1,class:"vpi-more-horizontal icon"},dn={class:"menu"},vn=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=I(!1),t=I();Ks({el:t,onBlur:s});function s(){e.value=!1}return(n,r)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[n.button||n.icon?(a(),c("span",rn,[n.icon?(a(),c("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,ln)):f("",!0),cn])):(a(),c("span",un))],8,an),v("div",dn,[m(sn,{items:n.items},{default:d(()=>[l(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=k(vn,[["__scopeId","data-v-b6c34ac9"]]),pn=["href","aria-label","innerHTML"],hn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=g(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,n)=>(a(),c("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,pn))}}),fn=k(hn,[["__scopeId","data-v-eee4e7cb"]]),_n={class:"VPSocialLinks"},mn=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",_n,[(a(!0),c(M,null,E(e.links,({link:s,icon:n,ariaLabel:r})=>(a(),b(fn,{key:s,icon:n,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ge=k(mn,[["__scopeId","data-v-7bc22406"]]),kn={key:0,class:"group translations"},$n={class:"trans-title"},bn={key:1,class:"group"},gn={class:"item appearance"},yn={class:"label"},Pn={class:"appearance-action"},Ln={key:2,class:"group"},Vn={class:"item social-links"},Sn=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),r=g(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>r.value?(a(),b(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:d(()=>[i(s).length&&i(n).label?(a(),c("div",kn,[v("p",$n,w(i(n).label),1),(a(!0),c(M,null,E(i(s),p=>(a(),b(se,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(a(),c("div",bn,[v("div",gn,[v("p",yn,w(i(t).darkModeSwitchLabel||"Appearance"),1),v("div",Pn,[m(ke)])])])):f("",!0),i(t).socialLinks?(a(),c("div",Ln,[v("div",Vn,[m(ge,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Tn=k(Sn,[["__scopeId","data-v-d0bd9dde"]]),wn=o=>(B("data-v-e5dd9c1c"),o=o(),H(),o),In=["aria-expanded"],Nn=wn(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),Mn=[Nn],An=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Mn,10,In))}}),Cn=k(An,[["__scopeId","data-v-e5dd9c1c"]]),Bn=["innerHTML"],Hn=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),b(F,{class:N({VPNavBarMenuLink:!0,active:i(j)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:d(()=>[v("span",{innerHTML:t.item.text},null,8,Bn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),En=k(Hn,[["__scopeId","data-v-9c663999"]]),Fn=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),s=r=>"link"in r?j(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(s),n=g(()=>s(e.item));return(r,u)=>(a(),b(be,{class:N({VPNavBarMenuGroup:!0,active:i(j)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Dn=o=>(B("data-v-7f418b0f"),o=o(),H(),o),On={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Un=Dn(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Gn=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",On,[Un,(a(!0),c(M,null,E(i(e).nav,n=>(a(),c(M,{key:n.text},["link"in n?(a(),b(En,{key:0,item:n},null,8,["item"])):(a(),b(Fn,{key:1,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),jn=k(Gn,[["__scopeId","data-v-7f418b0f"]]);function zn(o){const{localeIndex:e,theme:t}=L();function s(n){var A,C,S;const r=n.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((S=(C=u.locales)==null?void 0:C[e.value])==null?void 0:S.translations)||null,$=h&&u.translations||null;let P=p,y=$,V=o;const T=r.pop();for(const U of r){let G=null;const W=V==null?void 0:V[U];W&&(G=V=W);const ne=y==null?void 0:y[U];ne&&(G=y=ne);const ae=P==null?void 0:P[U];ae&&(G=P=ae),W||(V=G),ne||(y=G),ae||(P=G)}return(P==null?void 0:P[T])??(y==null?void 0:y[T])??(V==null?void 0:V[T])??""}return s}const qn=["aria-label"],Kn={class:"DocSearch-Button-Container"},Wn=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Rn={class:"DocSearch-Button-Placeholder"},Jn=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ye=_({__name:"VPNavBarSearchButton",setup(o){const t=zn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[v("span",Kn,[Wn,v("span",Rn,w(i(t)("button.buttonText")),1)]),Jn],8,qn))}}),Yn={class:"VPNavBarSearch"},Qn={id:"local-search"},Xn={key:1,id:"docsearch"},Zn=_({__name:"VPNavBarSearch",setup(o){const e=Ye(()=>Qe(()=>import("./VPLocalSearchBox.CRKyBVAH.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=L(),n=I(!1),r=I(!1);z(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p(y){const V=y.target,T=V.tagName;return V.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const $=I(!1);le("k",y=>{(y.ctrlKey||y.metaKey)&&(y.preventDefault(),$.value=!0)}),le("/",y=>{p(y)||(y.preventDefault(),$.value=!0)});const P="local";return(y,V)=>{var T;return a(),c("div",Yn,[i(P)==="local"?(a(),c(M,{key:0},[$.value?(a(),b(i(e),{key:0,onClose:V[0]||(V[0]=A=>$.value=!1)})):f("",!0),v("div",Qn,[m(ye,{onClick:V[1]||(V[1]=A=>$.value=!0)})])],64)):i(P)==="algolia"?(a(),c(M,{key:1},[n.value?(a(),b(i(t),{key:0,algolia:((T=i(s).search)==null?void 0:T.options)??i(s).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(a(),c("div",Xn,[m(ye,{onClick:u})]))],64)):f("",!0)])}}}),xn=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ge,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),ea=k(xn,[["__scopeId","data-v-0394ad82"]]),ta=["href","rel","target"],oa={key:1},sa={key:2},na=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:s}=O(),{currentLang:n}=Y(),r=g(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=g(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=g(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,$)=>(a(),c("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(s)}])},[v("a",{class:"title",href:r.value??i(fe)(i(n).link),rel:u.value,target:h.value},[l(p.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),b(Z,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):f("",!0),i(t).siteTitle?(a(),c("span",oa,w(i(t).siteTitle),1)):i(t).siteTitle===void 0?(a(),c("span",sa,w(i(e).title),1)):f("",!0),l(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,ta)],2))}}),aa=k(na,[["__scopeId","data-v-ab179fa1"]]),ra={class:"items"},ia={class:"title"},la=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(s).label?(a(),b(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:d(()=>[v("div",ra,[v("p",ia,w(i(s).label),1),(a(!0),c(M,null,E(i(t),u=>(a(),b(se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ca=k(la,[["__scopeId","data-v-88af2de4"]]),ua=o=>(B("data-v-ccf7ddec"),o=o(),H(),o),da={class:"wrapper"},va={class:"container"},pa={class:"title"},ha={class:"content"},fa={class:"content-body"},_a=ua(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),ma=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const{y:e}=Te(),{hasSidebar:t}=O(),{frontmatter:s}=L(),n=I({});return Pe(()=>{n.value={"has-sidebar":t.value,home:s.value.layout==="home",top:e.value===0}}),(r,u)=>(a(),c("div",{class:N(["VPNavBar",n.value])},[v("div",da,[v("div",va,[v("div",pa,[m(aa,null,{"nav-bar-title-before":d(()=>[l(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",ha,[v("div",fa,[l(r.$slots,"nav-bar-content-before",{},void 0,!0),m(Zn,{class:"search"}),m(jn,{class:"menu"}),m(ca,{class:"translations"}),m(qs,{class:"appearance"}),m(ea,{class:"social-links"}),m(Tn,{class:"extra"}),l(r.$slots,"nav-bar-content-after",{},void 0,!0),m(Cn,{class:"hamburger",active:r.isScreenOpen,onClick:u[0]||(u[0]=h=>r.$emit("toggle-screen"))},null,8,["active"])])])])]),_a],2))}}),ka=k(ma,[["__scopeId","data-v-ccf7ddec"]]),$a={key:0,class:"VPNavScreenAppearance"},ba={class:"text"},ga=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(s,n)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),c("div",$a,[v("p",ba,w(i(t).darkModeSwitchLabel||"Appearance"),1),m(ke)])):f("",!0)}}),ya=k(ga,[["__scopeId","data-v-2d7af913"]]),Pa=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=oe("close-screen");return(t,s)=>(a(),b(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),La=k(Pa,[["__scopeId","data-v-7f31e1f6"]]),Va=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=oe("close-screen");return(t,s)=>(a(),b(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:d(()=>[D(w(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=k(Va,[["__scopeId","data-v-19976ae1"]]),Sa={class:"VPNavScreenMenuGroupSection"},Ta={key:0,class:"title"},wa=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Sa,[e.text?(a(),c("p",Ta,w(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),b(Ee,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ia=k(wa,[["__scopeId","data-v-8133b170"]]),Na=o=>(B("data-v-ff6087d4"),o=o(),H(),o),Ma=["aria-controls","aria-expanded"],Aa=["innerHTML"],Ca=Na(()=>v("span",{class:"vpi-plus button-icon"},null,-1)),Ba=["id"],Ha={key:1,class:"group"},Ea=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=I(!1),s=g(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,u)=>(a(),c("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:r.text},null,8,Aa),Ca],8,Ma),v("div",{id:s.value,class:"items"},[(a(!0),c(M,null,E(r.items,h=>(a(),c(M,{key:h.text},["link"in h?(a(),c("div",{key:h.text,class:"item"},[m(Ee,{item:h},null,8,["item"])])):(a(),c("div",Ha,[m(Ia,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ba)],2))}}),Fa=k(Ea,[["__scopeId","data-v-ff6087d4"]]),Da={key:0,class:"VPNavScreenMenu"},Oa=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",Da,[(a(!0),c(M,null,E(i(e).nav,n=>(a(),c(M,{key:n.text},["link"in n?(a(),b(La,{key:0,item:n},null,8,["item"])):(a(),b(Fa,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ua=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ge,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=o=>(B("data-v-858fe1a4"),o=o(),H(),o),Ga=Fe(()=>v("span",{class:"vpi-languages icon lang"},null,-1)),ja=Fe(()=>v("span",{class:"vpi-chevron-down icon chevron"},null,-1)),za={class:"list"},qa=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=I(!1);function n(){s.value=!s.value}return(r,u)=>i(e).length&&i(t).label?(a(),c("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[Ga,D(" "+w(i(t).label)+" ",1),ja]),v("ul",za,[(a(!0),c(M,null,E(i(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(F,{class:"link",href:h.link},{default:d(()=>[D(w(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Ka=k(qa,[["__scopeId","data-v-858fe1a4"]]),Wa={class:"container"},Ra=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=I(null),t=we(J?document.body:null);return(s,n)=>(a(),b(ve,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:d(()=>[s.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",Wa,[l(s.$slots,"nav-screen-content-before",{},void 0,!0),m(Oa,{class:"menu"}),m(Ka,{class:"translations"}),m(ya,{class:"appearance"}),m(Ua,{class:"social-links"}),l(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ja=k(Ra,[["__scopeId","data-v-cc5739dd"]]),Ya={key:0,class:"VPNav"},Qa=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=As(),{frontmatter:n}=L(),r=g(()=>n.value.navbar!==!1);return Ie("close-screen",t),x(()=>{J&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,h)=>r.value?(a(),c("header",Ya,[m(ka,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Ja,{open:i(e)},{"nav-screen-content-before":d(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Xa=k(Qa,[["__scopeId","data-v-ae24b3ad"]]),De=o=>(B("data-v-b8d55f3b"),o=o(),H(),o),Za=["role","tabindex"],xa=De(()=>v("div",{class:"indicator"},null,-1)),er=De(()=>v("span",{class:"vpi-chevron-right caret-icon"},null,-1)),tr=[er],or={key:1,class:"items"},sr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:u,hasChildren:h,toggle:p}=bt(g(()=>e.item)),$=g(()=>h.value?"section":"div"),P=g(()=>n.value?"a":"div"),y=g(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=g(()=>n.value?void 0:"button"),T=g(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(S,U)=>{const G=K("VPSidebarItem",!0);return a(),b(R($.value),{class:N(["VPSidebarItem",T.value])},{default:d(()=>[S.item.text?(a(),c("div",Q({key:0,class:"item",role:V.value},Ze(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[xa,S.item.link?(a(),b(F,{key:0,tag:P.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:d(()=>[(a(),b(R(y.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),b(R(y.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},tr,32)):f("",!0)],16,Za)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",or,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,W=>(a(),b(G,{key:W.text,item:W,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),nr=k(sr,[["__scopeId","data-v-b8d55f3b"]]),Oe=o=>(B("data-v-575e6a36"),o=o(),H(),o),ar=Oe(()=>v("div",{class:"curtain"},null,-1)),rr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ir=Oe(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),lr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=O(),s=o,n=I(null),r=we(J?document.body:null);return q([s,n],()=>{var u;s.open?(r.value=!0,(u=n.value)==null||u.focus()):r.value=!1},{immediate:!0,flush:"post"}),(u,h)=>i(t)?(a(),c("aside",{key:0,class:N(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:n,onClick:h[0]||(h[0]=xe(()=>{},["stop"]))},[ar,v("nav",rr,[ir,l(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),c(M,null,E(i(e),p=>(a(),c("div",{key:p.text,class:"group"},[m(nr,{item:p,depth:0},null,8,["item"])]))),128)),l(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),cr=k(lr,[["__scopeId","data-v-575e6a36"]]),ur=_({__name:"VPSkipLink",setup(o){const e=te(),t=I();q(()=>e.path,()=>t.value.focus());function s({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),c(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),dr=k(ur,[["__scopeId","data-v-0f60ec36"]]),vr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=O(),n=te();q(()=>n.path,s),$t(e,s);const{frontmatter:r}=L(),u=et(),h=g(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(p,$)=>{const P=K("Content");return i(r).layout!==!1?(a(),c("div",{key:0,class:N(["Layout",i(r).pageClass])},[l(p.$slots,"layout-top",{},void 0,!0),m(dr),m(nt,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),m(Xa,null,{"nav-bar-title-before":d(()=>[l(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":d(()=>[l(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Ms,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),m(cr,{open:i(e)},{"sidebar-nav-before":d(()=>[l(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":d(()=>[l(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(vs,null,{"page-top":d(()=>[l(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":d(()=>[l(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":d(()=>[l(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":d(()=>[l(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":d(()=>[l(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":d(()=>[l(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(ms),l(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(P,{key:1}))}}}),pr=k(vr,[["__scopeId","data-v-5d98c3a5"]]),fr={Layout:pr,enhanceApp:({app:o})=>{o.component("Badge",tt)}};export{zn as c,fr as t,L as u}; +import{d as _,o as a,c,r as l,n as N,a as D,t as w,b,w as d,T as ve,e as f,_ as k,u as Ue,i as Ge,f as je,g as pe,h as I,j as J,k as g,l as z,m as v,p as i,q as B,s as H,v as j,x as ie,y as q,z as x,A as he,B as Pe,C as ze,D as qe,E as K,F as M,G as E,H as Le,I as ee,J as m,K as R,L as Ve,M as te,N as Q,O as oe,P as Ke,Q as Se,R as We,S as le,U as Re,V as Te,W as Je,X as Ye,Y as Qe,Z as we,$ as Ie,a0 as Xe,a1 as Ze,a2 as xe,a3 as et}from"./framework.4aTu-Nia.js";const tt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:N(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[D(w(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},st=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),b(ve,{name:"fade"},{default:d(()=>[e.show?(a(),c("div",ot)):f("",!0)]),_:1}))}}),nt=k(st,[["__scopeId","data-v-c79a1216"]]),L=Ue;function at(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function fe(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!n.startsWith("http")||!je(e))return o;const{site:r}=L(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${s}`);return pe(u)}const _e=I(J?location.hash:"");J&&window.addEventListener("hashchange",()=>{_e.value=location.hash});function Y({removeCurrent:o=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:s,page:n,theme:r}=L(),u=g(()=>{var p,$;return{label:(p=t.value.locales[s.value])==null?void 0:p.label,link:(($=t.value.locales[s.value])==null?void 0:$.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:g(()=>Object.entries(t.value.locales).flatMap(([p,$])=>o&&u.value.label===$.label?[]:{text:$.label,link:rt($.link||(p==="root"?"/":`/${p}/`),r.value.i18nRouting!==!1&&e,n.value.relativePath.slice(u.value.link.length-1),!t.value.cleanUrls)+_e.value})),currentLang:u}}function rt(o,e,t,s){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const it=o=>(B("data-v-f87ff6e4"),o=o(),H(),o),lt={class:"NotFound"},ct={class:"code"},ut={class:"title"},dt=it(()=>v("div",{class:"divider"},null,-1)),vt={class:"quote"},pt={class:"action"},ht=["href","aria-label"],ft=_({__name:"NotFound",setup(o){const{site:e,theme:t}=L(),{localeLinks:s}=Y({removeCurrent:!1}),n=I("/");return z(()=>{var u;const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");s.value.length&&(n.value=((u=s.value.find(({link:h})=>h.startsWith(r)))==null?void 0:u.link)||s.value[0].link)}),(r,u)=>{var h,p,$,P,y;return a(),c("div",lt,[v("p",ct,w(((h=i(t).notFound)==null?void 0:h.code)??"404"),1),v("h1",ut,w(((p=i(t).notFound)==null?void 0:p.title)??"PAGE NOT FOUND"),1),dt,v("blockquote",vt,w((($=i(t).notFound)==null?void 0:$.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",pt,[v("a",{class:"link",href:i(pe)(n.value),"aria-label":((P=i(t).notFound)==null?void 0:P.linkLabel)??"go to home"},w(((y=i(t).notFound)==null?void 0:y.linkText)??"Take me home"),9,ht)])])}}}),_t=k(ft,[["__scopeId","data-v-f87ff6e4"]]);function Ne(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(ce(n))),s=t?o[t]:[];return Array.isArray(s)?X(s):X(s.items,s.base)}function mt(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function kt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):j(o,e.link)?!0:e.items?ue(o,e.items):!1}function X(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=X(s.items,n)),s})}function O(){const{frontmatter:o,page:e,theme:t}=L(),s=ie("(min-width: 960px)"),n=I(!1),r=g(()=>{const C=t.value.sidebar,S=e.value.relativePath;return C?Ne(C,S):[]}),u=I(r.value);q(r,(C,S)=>{JSON.stringify(C)!==JSON.stringify(S)&&(u.value=r.value)});const h=g(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),p=g(()=>$?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),$=g(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),P=g(()=>h.value&&s.value),y=g(()=>h.value?mt(u.value):[]);function V(){n.value=!0}function T(){n.value=!1}function A(){n.value?T():V()}return{isOpen:n,sidebar:u,sidebarGroups:y,hasSidebar:h,hasAside:$,leftAside:p,isSidebarEnabled:P,open:V,close:T,toggle:A}}function $t(o,e){let t;x(()=>{t=o.value?document.activeElement:void 0}),z(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e}=L(),t=I(!1),s=g(()=>o.value.collapsed!=null),n=g(()=>!!o.value.link),r=I(!1),u=()=>{r.value=j(e.value.relativePath,o.value.link)};q([e,o,_e],u),z(u);const h=g(()=>r.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),p=g(()=>!!(o.value.items&&o.value.items.length));x(()=>{t.value=!!(s.value&&o.value.collapsed)}),Pe(()=>{(r.value||h.value)&&(t.value=!1)});function $(){s.value&&(t.value=!t.value)}return{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:h,hasChildren:p,toggle:$}}function gt(){const{hasSidebar:o}=O(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:g(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Me(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function me(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=s&&u.level<=n),de.length=0;for(const{element:u,link:h}of o)de.push({element:u,link:h});const r=[];e:for(let u=0;u=0;p--){const $=o[p];if($.level{requestAnimationFrame(r),window.addEventListener("scroll",s)}),ze(()=>{u(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,$=document.body.offsetHeight,P=Math.abs(h+p-$)<1,y=de.map(({element:T,link:A})=>({link:A,top:Vt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,A)=>T.top-A.top);if(!y.length){u(null);return}if(h<1){u(null);return}if(P){u(y[y.length-1].link);return}let V=null;for(const{link:T,top:A}of y){if(A>h+qe()+4)break;V=T}u(V)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Vt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const St=["href","title"],Tt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=K("VPDocOutlineItem",!0);return a(),c("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:r,link:u,title:h})=>(a(),c("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:h},w(h),9,St),r!=null&&r.length?(a(),b(n,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Ae=k(Tt,[["__scopeId","data-v-b933a997"]]),wt=o=>(B("data-v-935f8a84"),o=o(),H(),o),It={class:"content"},Nt={class:"outline-title",role:"heading","aria-level":"2"},Mt={"aria-labelledby":"doc-outline-aria-label"},At=wt(()=>v("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Ct=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),s=Le([]);ee(()=>{s.value=me(e.value.outline??t.value.outline)});const n=I(),r=I();return Lt(n,r),(u,h)=>(a(),c("div",{class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n,role:"navigation"},[v("div",It,[v("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),v("div",Nt,w(i(Me)(i(t))),1),v("nav",Mt,[At,m(Ae,{headers:s.value,root:!0},null,8,["headers"])])])],2))}}),Bt=k(Ct,[["__scopeId","data-v-935f8a84"]]),Ht={class:"VPDocAsideCarbonAds"},Et=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),c("div",Ht,[m(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ft=o=>(B("data-v-3f215769"),o=o(),H(),o),Dt={class:"VPDocAside"},Ot=Ft(()=>v("div",{class:"spacer"},null,-1)),Ut=_({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,s)=>(a(),c("div",Dt,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(Bt),l(t.$slots,"aside-outline-after",{},void 0,!0),Ot,l(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),b(Et,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Gt=k(Ut,[["__scopeId","data-v-3f215769"]]);function jt(){const{theme:o,page:e}=L();return g(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function zt(){const{page:o,theme:e,frontmatter:t}=L();return g(()=>{var $,P,y,V,T,A,C,S;const s=Ne(e.value.sidebar,o.value.relativePath),n=kt(s),r=qt(n,U=>U.link.replace(/[?#].*$/,"")),u=r.findIndex(U=>j(o.value.relativePath,U.link)),h=(($=e.value.docFooter)==null?void 0:$.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((P=e.value.docFooter)==null?void 0:P.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=r[u-1])==null?void 0:y.docFooterText)??((V=r[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((T=r[u-1])==null?void 0:T.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=r[u+1])==null?void 0:A.docFooterText)??((C=r[u+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=r[u+1])==null?void 0:S.link)}}})}function qt(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=g(()=>e.tag??(e.href?"a":"span")),s=g(()=>e.href&&Ve.test(e.href));return(n,r)=>(a(),b(R(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?i(fe)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:d(()=>[l(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Kt={class:"VPLastUpdated"},Wt=["datetime"],Rt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,frontmatter:s,lang:n}=L(),r=g(()=>new Date(s.value.lastUpdated??t.value.lastUpdated)),u=g(()=>r.value.toISOString()),h=I("");return z(()=>{x(()=>{var p,$,P;h.value=new Intl.DateTimeFormat(($=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&$.forceLocale?n.value:void 0,((P=e.value.lastUpdated)==null?void 0:P.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(p,$)=>{var P;return a(),c("p",Kt,[D(w(((P=i(e).lastUpdated)==null?void 0:P.text)||i(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:u.value},w(h.value),9,Wt)])}}}),Jt=k(Rt,[["__scopeId","data-v-7e05ebdb"]]),Yt=o=>(B("data-v-09de1c0f"),o=o(),H(),o),Qt={key:0,class:"VPDocFooter"},Xt={key:0,class:"edit-info"},Zt={key:0,class:"edit-link"},xt=Yt(()=>v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),eo={key:1,class:"last-updated"},to={key:1,class:"prev-next"},oo={class:"pager"},so=["innerHTML"],no=["innerHTML"],ao={class:"pager"},ro=["innerHTML"],io=["innerHTML"],lo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=L(),n=jt(),r=zt(),u=g(()=>e.value.editLink&&s.value.editLink!==!1),h=g(()=>t.value.lastUpdated&&s.value.lastUpdated!==!1),p=g(()=>u.value||h.value||r.value.prev||r.value.next);return($,P)=>{var y,V,T,A;return p.value?(a(),c("footer",Qt,[l($.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Xt,[u.value?(a(),c("div",Zt,[m(F,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:d(()=>[xt,D(" "+w(i(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",eo,[m(Jt)])):f("",!0)])):f("",!0),(y=i(r).prev)!=null&&y.link||(V=i(r).next)!=null&&V.link?(a(),c("nav",to,[v("div",oo,[(T=i(r).prev)!=null&&T.link?(a(),b(F,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,so),v("span",{class:"title",innerHTML:i(r).prev.text},null,8,no)]}),_:1},8,["href"])):f("",!0)]),v("div",ao,[(A=i(r).next)!=null&&A.link?(a(),b(F,{key:0,class:"pager-link next",href:i(r).next.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,ro),v("span",{class:"title",innerHTML:i(r).next.text},null,8,io)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),co=k(lo,[["__scopeId","data-v-09de1c0f"]]),uo=o=>(B("data-v-39a288b8"),o=o(),H(),o),vo={class:"container"},po=uo(()=>v("div",{class:"aside-curtain"},null,-1)),ho={class:"aside-container"},fo={class:"aside-content"},_o={class:"content"},mo={class:"content-container"},ko={class:"main"},$o=_({__name:"VPDoc",setup(o){const{theme:e}=L(),t=te(),{hasSidebar:s,hasAside:n,leftAside:r}=O(),u=g(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const $=K("Content");return a(),c("div",{class:N(["VPDoc",{"has-sidebar":i(s),"has-aside":i(n)}])},[l(h.$slots,"doc-top",{},void 0,!0),v("div",vo,[i(n)?(a(),c("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[po,v("div",ho,[v("div",fo,[m(Gt,null,{"aside-top":d(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),v("div",_o,[v("div",mo,[l(h.$slots,"doc-before",{},void 0,!0),v("main",ko,[m($,{class:N(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(co,null,{"doc-footer-before":d(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),bo=k($o,[["__scopeId","data-v-39a288b8"]]),go=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=g(()=>e.href&&Ve.test(e.href)),s=g(()=>e.tag||e.href?"a":"button");return(n,r)=>(a(),b(R(s.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?i(fe)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:d(()=>[D(w(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),yo=k(go,[["__scopeId","data-v-cad61b99"]]),Po=["src","alt"],Lo=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=K("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",Q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Po)):(a(),c(M,{key:1},[m(s,Q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(s,Q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Z=k(Lo,[["__scopeId","data-v-8426fc1a"]]),Vo=o=>(B("data-v-303bb580"),o=o(),H(),o),So={class:"container"},To={class:"main"},wo={key:0,class:"name"},Io=["innerHTML"],No=["innerHTML"],Mo=["innerHTML"],Ao={key:0,class:"actions"},Co={key:0,class:"image"},Bo={class:"image-container"},Ho=Vo(()=>v("div",{class:"image-bg"},null,-1)),Eo=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=oe("hero-image-slot-exists");return(t,s)=>(a(),c("div",{class:N(["VPHero",{"has-image":t.image||i(e)}])},[v("div",So,[v("div",To,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",wo,[v("span",{innerHTML:t.name,class:"clip"},null,8,Io)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,No)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Mo)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",Ao,[(a(!0),c(M,null,E(t.actions,n=>(a(),c("div",{key:n.link,class:"action"},[m(yo,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),c("div",Co,[v("div",Bo,[Ho,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),b(Z,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Fo=k(Eo,[["__scopeId","data-v-303bb580"]]),Do=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).hero?(a(),b(Fo,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Oo=o=>(B("data-v-a3976bdc"),o=o(),H(),o),Uo={class:"box"},Go={key:0,class:"icon"},jo=["innerHTML"],zo=["innerHTML"],qo=["innerHTML"],Ko={key:4,class:"link-text"},Wo={class:"link-text-value"},Ro=Oo(()=>v("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),Jo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),b(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:d(()=>[v("article",Uo,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Go,[m(Z,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),b(Z,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,jo)):f("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,zo),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,qo)):f("",!0),e.linkText?(a(),c("div",Ko,[v("p",Wo,[D(w(e.linkText)+" ",1),Ro])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Yo=k(Jo,[["__scopeId","data-v-a3976bdc"]]),Qo={key:0,class:"VPFeatures"},Xo={class:"container"},Zo={class:"items"},xo=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=g(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),c("div",Qo,[v("div",Xo,[v("div",Zo,[(a(!0),c(M,null,E(s.features,r=>(a(),c("div",{key:r.title,class:N(["item",[t.value]])},[m(Yo,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),es=k(xo,[["__scopeId","data-v-a6181336"]]),ts=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).features?(a(),b(es,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):f("",!0)}}),os=_({__name:"VPHomeContent",setup(o){const{width:e}=Ke({includeScrollbar:!1});return(t,s)=>(a(),c("div",{class:"vp-doc container",style:Se(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),ss=k(os,[["__scopeId","data-v-82d4af08"]]),ns={class:"VPHome"},as=_({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,s)=>{const n=K("Content");return a(),c("div",ns,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Do,null,{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(ts),l(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),b(ss,{key:0},{default:d(()=>[m(n)]),_:1})):(a(),b(n,{key:1}))])}}}),rs=k(as,[["__scopeId","data-v-686f80a6"]]),is={},ls={class:"VPPage"};function cs(o,e){const t=K("Content");return a(),c("div",ls,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const us=k(is,[["render",cs]]),ds=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:s}=O();return(n,r)=>(a(),c("div",{class:N(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?l(n.$slots,"not-found",{key:0},()=>[m(_t)],!0):i(t).layout==="page"?(a(),b(us,{key:1},{"page-top":d(()=>[l(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),b(rs,{key:2},{"home-hero-before":d(()=>[l(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),b(R(i(t).layout),{key:3})):(a(),b(bo,{key:4},{"doc-top":d(()=>[l(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":d(()=>[l(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":d(()=>[l(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":d(()=>[l(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":d(()=>[l(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),vs=k(ds,[["__scopeId","data-v-1428d186"]]),ps={class:"container"},hs=["innerHTML"],fs=["innerHTML"],_s=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=O();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),c("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(s)}])},[v("div",ps,[i(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,hs)):f("",!0),i(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,fs)):f("",!0)])],2)):f("",!0)}}),ms=k(_s,[["__scopeId","data-v-e315a0ad"]]);function ks(){const{theme:o,frontmatter:e}=L(),t=Le([]),s=g(()=>t.value.length>0);return ee(()=>{t.value=me(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const $s=o=>(B("data-v-d2ecc192"),o=o(),H(),o),bs=$s(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),gs={class:"header"},ys={class:"outline"},Ps=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),s=I(!1),n=I(0),r=I(),u=I();We(r,()=>{s.value=!1}),le("Escape",()=>{s.value=!1}),ee(()=>{s.value=!1});function h(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(P){P.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Re(()=>{s.value=!1}))}function $(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(P,y)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Se({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[P.headers.length>0?(a(),c("button",{key:0,onClick:h,class:N({open:s.value})},[D(w(i(Me)(i(t)))+" ",1),bs],2)):(a(),c("button",{key:1,onClick:$},w(i(t).returnToTopLabel||"Return to top"),1)),m(ve,{name:"flyout"},{default:d(()=>[s.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:p},[v("div",gs,[v("a",{class:"top-link",href:"#",onClick:$},w(i(t).returnToTopLabel||"Return to top"),1)]),v("div",ys,[m(Ae,{headers:P.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Ls=k(Ps,[["__scopeId","data-v-d2ecc192"]]),Vs=o=>(B("data-v-a6f0e41e"),o=o(),H(),o),Ss={class:"container"},Ts=["aria-expanded"],ws=Vs(()=>v("span",{class:"vpi-align-left menu-icon"},null,-1)),Is={class:"menu-text"},Ns=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=O(),{headers:n}=ks(),{y:r}=Te(),u=I(0);z(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{n.value=me(t.value.outline??e.value.outline)});const h=g(()=>n.value.length===0),p=g(()=>h.value&&!s.value),$=g(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:h.value,fixed:p.value}));return(P,y)=>i(t).layout!=="home"&&(!p.value||i(r)>=u.value)?(a(),c("div",{key:0,class:N($.value)},[v("div",Ss,[i(s)?(a(),c("button",{key:0,class:"menu","aria-expanded":P.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=V=>P.$emit("open-menu"))},[ws,v("span",Is,w(i(e).sidebarMenuLabel||"Menu"),1)],8,Ts)):f("",!0),m(Ls,{headers:i(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Ms=k(Ns,[["__scopeId","data-v-a6f0e41e"]]);function As(){const o=I(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=te();return q(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const Cs={},Bs={class:"VPSwitch",type:"button",role:"switch"},Hs={class:"check"},Es={key:0,class:"icon"};function Fs(o,e){return a(),c("button",Bs,[v("span",Hs,[o.$slots.default?(a(),c("span",Es,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Ds=k(Cs,[["render",Fs],["__scopeId","data-v-1d5665e3"]]),Ce=o=>(B("data-v-d1f28634"),o=o(),H(),o),Os=Ce(()=>v("span",{class:"vpi-sun sun"},null,-1)),Us=Ce(()=>v("span",{class:"vpi-moon moon"},null,-1)),Gs=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),s=oe("toggle-appearance",()=>{e.value=!e.value}),n=g(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,u)=>(a(),b(Ds,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(s)},{default:d(()=>[Os,Us]),_:1},8,["title","aria-checked","onClick"]))}}),ke=k(Gs,[["__scopeId","data-v-d1f28634"]]),js={key:0,class:"VPNavBarAppearance"},zs=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,s)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),c("div",js,[m(ke)])):f("",!0)}}),qs=k(zs,[["__scopeId","data-v-e6aabb21"]]),$e=I();let Be=!1,re=0;function Ks(o){const e=I(!1);if(J){!Be&&Ws(),re++;const t=q($e,s=>{var n,r,u;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});he(()=>{t(),re--,re||Rs()})}return Je(e)}function Ws(){document.addEventListener("focusin",He),Be=!0,$e.value=document.activeElement}function Rs(){document.removeEventListener("focusin",He)}function He(){$e.value=document.activeElement}const Js={class:"VPMenuLink"},Ys=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),c("div",Js,[m(F,{class:N({active:i(j)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:d(()=>[D(w(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=k(Ys,[["__scopeId","data-v-43f1e123"]]),Qs={class:"VPMenuGroup"},Xs={key:0,class:"title"},Zs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Qs,[e.text?(a(),c("p",Xs,w(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),c(M,null,["link"in s?(a(),b(se,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}}),xs=k(Zs,[["__scopeId","data-v-69e747b5"]]),en={class:"VPMenu"},tn={key:0,class:"items"},on=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",en,[e.items?(a(),c("div",tn,[(a(!0),c(M,null,E(e.items,s=>(a(),c(M,{key:s.text},["link"in s?(a(),b(se,{key:0,item:s},null,8,["item"])):(a(),b(xs,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),sn=k(on,[["__scopeId","data-v-e7ea1737"]]),nn=o=>(B("data-v-b6c34ac9"),o=o(),H(),o),an=["aria-expanded","aria-label"],rn={key:0,class:"text"},ln=["innerHTML"],cn=nn(()=>v("span",{class:"vpi-chevron-down text-icon"},null,-1)),un={key:1,class:"vpi-more-horizontal icon"},dn={class:"menu"},vn=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=I(!1),t=I();Ks({el:t,onBlur:s});function s(){e.value=!1}return(n,r)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[n.button||n.icon?(a(),c("span",rn,[n.icon?(a(),c("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,ln)):f("",!0),cn])):(a(),c("span",un))],8,an),v("div",dn,[m(sn,{items:n.items},{default:d(()=>[l(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=k(vn,[["__scopeId","data-v-b6c34ac9"]]),pn=["href","aria-label","innerHTML"],hn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=g(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,n)=>(a(),c("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,pn))}}),fn=k(hn,[["__scopeId","data-v-eee4e7cb"]]),_n={class:"VPSocialLinks"},mn=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",_n,[(a(!0),c(M,null,E(e.links,({link:s,icon:n,ariaLabel:r})=>(a(),b(fn,{key:s,icon:n,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ge=k(mn,[["__scopeId","data-v-7bc22406"]]),kn={key:0,class:"group translations"},$n={class:"trans-title"},bn={key:1,class:"group"},gn={class:"item appearance"},yn={class:"label"},Pn={class:"appearance-action"},Ln={key:2,class:"group"},Vn={class:"item social-links"},Sn=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),r=g(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>r.value?(a(),b(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:d(()=>[i(s).length&&i(n).label?(a(),c("div",kn,[v("p",$n,w(i(n).label),1),(a(!0),c(M,null,E(i(s),p=>(a(),b(se,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(a(),c("div",bn,[v("div",gn,[v("p",yn,w(i(t).darkModeSwitchLabel||"Appearance"),1),v("div",Pn,[m(ke)])])])):f("",!0),i(t).socialLinks?(a(),c("div",Ln,[v("div",Vn,[m(ge,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Tn=k(Sn,[["__scopeId","data-v-d0bd9dde"]]),wn=o=>(B("data-v-e5dd9c1c"),o=o(),H(),o),In=["aria-expanded"],Nn=wn(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),Mn=[Nn],An=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Mn,10,In))}}),Cn=k(An,[["__scopeId","data-v-e5dd9c1c"]]),Bn=["innerHTML"],Hn=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),b(F,{class:N({VPNavBarMenuLink:!0,active:i(j)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:d(()=>[v("span",{innerHTML:t.item.text},null,8,Bn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),En=k(Hn,[["__scopeId","data-v-9c663999"]]),Fn=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),s=r=>"link"in r?j(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(s),n=g(()=>s(e.item));return(r,u)=>(a(),b(be,{class:N({VPNavBarMenuGroup:!0,active:i(j)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Dn=o=>(B("data-v-7f418b0f"),o=o(),H(),o),On={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Un=Dn(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Gn=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",On,[Un,(a(!0),c(M,null,E(i(e).nav,n=>(a(),c(M,{key:n.text},["link"in n?(a(),b(En,{key:0,item:n},null,8,["item"])):(a(),b(Fn,{key:1,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),jn=k(Gn,[["__scopeId","data-v-7f418b0f"]]);function zn(o){const{localeIndex:e,theme:t}=L();function s(n){var A,C,S;const r=n.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((S=(C=u.locales)==null?void 0:C[e.value])==null?void 0:S.translations)||null,$=h&&u.translations||null;let P=p,y=$,V=o;const T=r.pop();for(const U of r){let G=null;const W=V==null?void 0:V[U];W&&(G=V=W);const ne=y==null?void 0:y[U];ne&&(G=y=ne);const ae=P==null?void 0:P[U];ae&&(G=P=ae),W||(V=G),ne||(y=G),ae||(P=G)}return(P==null?void 0:P[T])??(y==null?void 0:y[T])??(V==null?void 0:V[T])??""}return s}const qn=["aria-label"],Kn={class:"DocSearch-Button-Container"},Wn=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Rn={class:"DocSearch-Button-Placeholder"},Jn=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ye=_({__name:"VPNavBarSearchButton",setup(o){const t=zn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[v("span",Kn,[Wn,v("span",Rn,w(i(t)("button.buttonText")),1)]),Jn],8,qn))}}),Yn={class:"VPNavBarSearch"},Qn={id:"local-search"},Xn={key:1,id:"docsearch"},Zn=_({__name:"VPNavBarSearch",setup(o){const e=Ye(()=>Qe(()=>import("./VPLocalSearchBox.C9W83JJD.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=L(),n=I(!1),r=I(!1);z(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p(y){const V=y.target,T=V.tagName;return V.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const $=I(!1);le("k",y=>{(y.ctrlKey||y.metaKey)&&(y.preventDefault(),$.value=!0)}),le("/",y=>{p(y)||(y.preventDefault(),$.value=!0)});const P="local";return(y,V)=>{var T;return a(),c("div",Yn,[i(P)==="local"?(a(),c(M,{key:0},[$.value?(a(),b(i(e),{key:0,onClose:V[0]||(V[0]=A=>$.value=!1)})):f("",!0),v("div",Qn,[m(ye,{onClick:V[1]||(V[1]=A=>$.value=!0)})])],64)):i(P)==="algolia"?(a(),c(M,{key:1},[n.value?(a(),b(i(t),{key:0,algolia:((T=i(s).search)==null?void 0:T.options)??i(s).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(a(),c("div",Xn,[m(ye,{onClick:u})]))],64)):f("",!0)])}}}),xn=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ge,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),ea=k(xn,[["__scopeId","data-v-0394ad82"]]),ta=["href","rel","target"],oa={key:1},sa={key:2},na=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:s}=O(),{currentLang:n}=Y(),r=g(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=g(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=g(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,$)=>(a(),c("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(s)}])},[v("a",{class:"title",href:r.value??i(fe)(i(n).link),rel:u.value,target:h.value},[l(p.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),b(Z,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):f("",!0),i(t).siteTitle?(a(),c("span",oa,w(i(t).siteTitle),1)):i(t).siteTitle===void 0?(a(),c("span",sa,w(i(e).title),1)):f("",!0),l(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,ta)],2))}}),aa=k(na,[["__scopeId","data-v-ab179fa1"]]),ra={class:"items"},ia={class:"title"},la=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(s).label?(a(),b(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:d(()=>[v("div",ra,[v("p",ia,w(i(s).label),1),(a(!0),c(M,null,E(i(t),u=>(a(),b(se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ca=k(la,[["__scopeId","data-v-88af2de4"]]),ua=o=>(B("data-v-ccf7ddec"),o=o(),H(),o),da={class:"wrapper"},va={class:"container"},pa={class:"title"},ha={class:"content"},fa={class:"content-body"},_a=ua(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),ma=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const{y:e}=Te(),{hasSidebar:t}=O(),{frontmatter:s}=L(),n=I({});return Pe(()=>{n.value={"has-sidebar":t.value,home:s.value.layout==="home",top:e.value===0}}),(r,u)=>(a(),c("div",{class:N(["VPNavBar",n.value])},[v("div",da,[v("div",va,[v("div",pa,[m(aa,null,{"nav-bar-title-before":d(()=>[l(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",ha,[v("div",fa,[l(r.$slots,"nav-bar-content-before",{},void 0,!0),m(Zn,{class:"search"}),m(jn,{class:"menu"}),m(ca,{class:"translations"}),m(qs,{class:"appearance"}),m(ea,{class:"social-links"}),m(Tn,{class:"extra"}),l(r.$slots,"nav-bar-content-after",{},void 0,!0),m(Cn,{class:"hamburger",active:r.isScreenOpen,onClick:u[0]||(u[0]=h=>r.$emit("toggle-screen"))},null,8,["active"])])])])]),_a],2))}}),ka=k(ma,[["__scopeId","data-v-ccf7ddec"]]),$a={key:0,class:"VPNavScreenAppearance"},ba={class:"text"},ga=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(s,n)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),c("div",$a,[v("p",ba,w(i(t).darkModeSwitchLabel||"Appearance"),1),m(ke)])):f("",!0)}}),ya=k(ga,[["__scopeId","data-v-2d7af913"]]),Pa=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=oe("close-screen");return(t,s)=>(a(),b(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),La=k(Pa,[["__scopeId","data-v-7f31e1f6"]]),Va=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=oe("close-screen");return(t,s)=>(a(),b(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:d(()=>[D(w(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=k(Va,[["__scopeId","data-v-19976ae1"]]),Sa={class:"VPNavScreenMenuGroupSection"},Ta={key:0,class:"title"},wa=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Sa,[e.text?(a(),c("p",Ta,w(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),b(Ee,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ia=k(wa,[["__scopeId","data-v-8133b170"]]),Na=o=>(B("data-v-ff6087d4"),o=o(),H(),o),Ma=["aria-controls","aria-expanded"],Aa=["innerHTML"],Ca=Na(()=>v("span",{class:"vpi-plus button-icon"},null,-1)),Ba=["id"],Ha={key:1,class:"group"},Ea=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=I(!1),s=g(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,u)=>(a(),c("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:r.text},null,8,Aa),Ca],8,Ma),v("div",{id:s.value,class:"items"},[(a(!0),c(M,null,E(r.items,h=>(a(),c(M,{key:h.text},["link"in h?(a(),c("div",{key:h.text,class:"item"},[m(Ee,{item:h},null,8,["item"])])):(a(),c("div",Ha,[m(Ia,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ba)],2))}}),Fa=k(Ea,[["__scopeId","data-v-ff6087d4"]]),Da={key:0,class:"VPNavScreenMenu"},Oa=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",Da,[(a(!0),c(M,null,E(i(e).nav,n=>(a(),c(M,{key:n.text},["link"in n?(a(),b(La,{key:0,item:n},null,8,["item"])):(a(),b(Fa,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ua=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ge,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=o=>(B("data-v-858fe1a4"),o=o(),H(),o),Ga=Fe(()=>v("span",{class:"vpi-languages icon lang"},null,-1)),ja=Fe(()=>v("span",{class:"vpi-chevron-down icon chevron"},null,-1)),za={class:"list"},qa=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=I(!1);function n(){s.value=!s.value}return(r,u)=>i(e).length&&i(t).label?(a(),c("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[Ga,D(" "+w(i(t).label)+" ",1),ja]),v("ul",za,[(a(!0),c(M,null,E(i(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(F,{class:"link",href:h.link},{default:d(()=>[D(w(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Ka=k(qa,[["__scopeId","data-v-858fe1a4"]]),Wa={class:"container"},Ra=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=I(null),t=we(J?document.body:null);return(s,n)=>(a(),b(ve,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:d(()=>[s.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",Wa,[l(s.$slots,"nav-screen-content-before",{},void 0,!0),m(Oa,{class:"menu"}),m(Ka,{class:"translations"}),m(ya,{class:"appearance"}),m(Ua,{class:"social-links"}),l(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ja=k(Ra,[["__scopeId","data-v-cc5739dd"]]),Ya={key:0,class:"VPNav"},Qa=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=As(),{frontmatter:n}=L(),r=g(()=>n.value.navbar!==!1);return Ie("close-screen",t),x(()=>{J&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,h)=>r.value?(a(),c("header",Ya,[m(ka,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Ja,{open:i(e)},{"nav-screen-content-before":d(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Xa=k(Qa,[["__scopeId","data-v-ae24b3ad"]]),De=o=>(B("data-v-b8d55f3b"),o=o(),H(),o),Za=["role","tabindex"],xa=De(()=>v("div",{class:"indicator"},null,-1)),er=De(()=>v("span",{class:"vpi-chevron-right caret-icon"},null,-1)),tr=[er],or={key:1,class:"items"},sr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:u,hasChildren:h,toggle:p}=bt(g(()=>e.item)),$=g(()=>h.value?"section":"div"),P=g(()=>n.value?"a":"div"),y=g(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=g(()=>n.value?void 0:"button"),T=g(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(S,U)=>{const G=K("VPSidebarItem",!0);return a(),b(R($.value),{class:N(["VPSidebarItem",T.value])},{default:d(()=>[S.item.text?(a(),c("div",Q({key:0,class:"item",role:V.value},Ze(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[xa,S.item.link?(a(),b(F,{key:0,tag:P.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:d(()=>[(a(),b(R(y.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),b(R(y.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},tr,32)):f("",!0)],16,Za)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",or,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,W=>(a(),b(G,{key:W.text,item:W,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),nr=k(sr,[["__scopeId","data-v-b8d55f3b"]]),Oe=o=>(B("data-v-575e6a36"),o=o(),H(),o),ar=Oe(()=>v("div",{class:"curtain"},null,-1)),rr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ir=Oe(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),lr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=O(),s=o,n=I(null),r=we(J?document.body:null);return q([s,n],()=>{var u;s.open?(r.value=!0,(u=n.value)==null||u.focus()):r.value=!1},{immediate:!0,flush:"post"}),(u,h)=>i(t)?(a(),c("aside",{key:0,class:N(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:n,onClick:h[0]||(h[0]=xe(()=>{},["stop"]))},[ar,v("nav",rr,[ir,l(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),c(M,null,E(i(e),p=>(a(),c("div",{key:p.text,class:"group"},[m(nr,{item:p,depth:0},null,8,["item"])]))),128)),l(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),cr=k(lr,[["__scopeId","data-v-575e6a36"]]),ur=_({__name:"VPSkipLink",setup(o){const e=te(),t=I();q(()=>e.path,()=>t.value.focus());function s({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),c(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),dr=k(ur,[["__scopeId","data-v-0f60ec36"]]),vr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=O(),n=te();q(()=>n.path,s),$t(e,s);const{frontmatter:r}=L(),u=et(),h=g(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(p,$)=>{const P=K("Content");return i(r).layout!==!1?(a(),c("div",{key:0,class:N(["Layout",i(r).pageClass])},[l(p.$slots,"layout-top",{},void 0,!0),m(dr),m(nt,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),m(Xa,null,{"nav-bar-title-before":d(()=>[l(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":d(()=>[l(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Ms,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),m(cr,{open:i(e)},{"sidebar-nav-before":d(()=>[l(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":d(()=>[l(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(vs,null,{"page-top":d(()=>[l(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":d(()=>[l(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":d(()=>[l(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":d(()=>[l(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":d(()=>[l(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":d(()=>[l(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(ms),l(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(P,{key:1}))}}}),pr=k(vr,[["__scopeId","data-v-5d98c3a5"]]),fr={Layout:pr,enhanceApp:({app:o})=>{o.component("Badge",tt)}};export{zn as c,fr as t,L as u}; diff --git a/docs/basic/assemble_operation_handler.html b/docs/basic/assemble_operation_handler.html index 7e8b2bc1..1483e678 100644 --- a/docs/basic/assemble_operation_handler.html +++ b/docs/basic/assemble_operation_handler.html @@ -8,10 +8,10 @@ - + - + @@ -93,7 +93,7 @@ private String teacherIds; // "1, 2, 3" private String teacherNames; // "name1,name2,name3" }

在上述配置中,当进行填充时,name 集合将会被拼接位字符串再进行填充,字符串的分隔符与上文 keyDesc 指定的分隔符一致(默认为 ,)。

- + \ No newline at end of file diff --git a/docs/basic/container/constant_container.html b/docs/basic/container/constant_container.html index f9737742..b54b13f9 100644 --- a/docs/basic/container/constant_container.html +++ b/docs/basic/container/constant_container.html @@ -8,10 +8,10 @@ - + - + @@ -72,7 +72,7 @@ public static final String FEMALE = "女"; public static final String MALE = "男"; }

你可以通过 constant 设置一个 @ContainerConstant,其配置效果与在常量类似添加 @ContainerConstant 完全一样。

此外,如果你的常量类已经有 @ContainerConstant 注解了,那么你可以通过 followTypeConfig 选项决定是否要优先遵循常量类上的注解配置。

@AssembleEnum 注解共提供下述可选项:

API作用类型默认值
type指定常量类型常量类无,与 typeName 二选一必填
typeName指定常量类型常量类的全限定名
一般在常量类与实体类不在同一包中时使用
无,与 type 二选一必填
constant常量容器配置@ContainerConstant 注解
followTypeConfig是否遵循常量类上的 @ContainerConstant 注解为 true 时,若常量类上存在 @ContainerConstant 注解,则优先使该注解的配置true
ref指定填充字段等效于 props = @Mapping(ref = "xxx")
- + \ No newline at end of file diff --git a/docs/basic/container/container_abstract.html b/docs/basic/container/container_abstract.html index 2890fd55..2825b562 100644 --- a/docs/basic/container/container_abstract.html +++ b/docs/basic/container/container_abstract.html @@ -8,10 +8,10 @@ - + - + @@ -29,7 +29,7 @@ private Integer id; private String name; }

数据源容器是填充中最重要的一环,阅读后续内容,进一步了解该如何使用 crane4j 中的各种数据源容器。

- + \ No newline at end of file diff --git a/docs/basic/container/container_provider.html b/docs/basic/container/container_provider.html index 486bda82..9fac1719 100644 --- a/docs/basic/container/container_provider.html +++ b/docs/basic/container/container_provider.html @@ -8,10 +8,10 @@ - + - + @@ -36,7 +36,7 @@ private Integer id; private String name; }

两种方式效果一致,不过通常还是更推荐使用第一种方式,它会更直观一些。

- + \ No newline at end of file diff --git a/docs/basic/container/custom_container.html b/docs/basic/container/custom_container.html index 9d912c0a..d34f3858 100644 --- a/docs/basic/container/custom_container.html +++ b/docs/basic/container/custom_container.html @@ -8,10 +8,10 @@ - + - + @@ -32,7 +32,7 @@ return users.stream().collect(Collectors.toMap(UserDO::getId, Function.identity())); } }

在上述示例中,我们实现了 Container 接口,并创建了一个根据用户ID返回UserDO集合的数据源容器。

在 Spring 环境中,你只需要将 UserContainer 交给 Spring 管理(比如在类上添加 @Component 注解)即可在项目启动后自动注册,在非 Spring 环境需要手动注册到 Crane4jGlobalConfiguration 中。

此外,你可以在自定义的容器类上直接添加 @ContainerCache 注解即可为其应用缓存,具体可参见后文 缓存 一节。

- + \ No newline at end of file diff --git a/docs/basic/container/enum_container.html b/docs/basic/container/enum_container.html index e986b855..0e58ae05 100644 --- a/docs/basic/container/enum_container.html +++ b/docs/basic/container/enum_container.html @@ -8,10 +8,10 @@ - + - + @@ -80,7 +80,7 @@ private final String cnName; private final String enName; }

你可以通过 enums 设置一个 @ContainerEnum,其配置效果与在枚举类似添加 @ContainerEnum 完全一样。

此外,如果你的枚举类已经有 @ContainerEnum 注解了,那么你可以通过 followTypeConfig 选项决定是否要优先遵循枚举类上的注解配置。

@AssembleEnum 注解共提供下述可选项:

API作用类型默认值
type指定枚举类型枚举类无,与 typeName 二选一必填
typeName指定枚举类型枚举类的全限定名
一般在枚举类与实体类不在同一包中时使用
无,与 type 二选一必填
enums枚举容器配置@ContainerEnum 注解
followTypeConfig是否遵循枚举类上的 @ContainerEnum 注解为 true 时,若枚举类上存在 @ContainerEnum 注解,则优先使该注解的配置true
ref指定填充字段等效于 props = @Mapping(ref = "xxx")
- + \ No newline at end of file diff --git a/docs/basic/container/introspection_container.html b/docs/basic/container/introspection_container.html index d633dd8c..c4e7b703 100644 --- a/docs/basic/container/introspection_container.html +++ b/docs/basic/container/introspection_container.html @@ -8,10 +8,10 @@ - + - + @@ -61,7 +61,7 @@ return phone.substring(0, 3) + "****" + phone.substring(7); // 将手机号中间四位替换为 * } }); - + \ No newline at end of file diff --git a/docs/basic/container/lambda_container.html b/docs/basic/container/lambda_container.html index 758a3000..9b8694e8 100644 --- a/docs/basic/container/lambda_container.html +++ b/docs/basic/container/lambda_container.html @@ -8,10 +8,10 @@ - + - + @@ -32,7 +32,7 @@ // 总是返回空集合 DataProvider<Integer, ?> provider2 = DataProvider.empty(); Containers.forLambda(namespace, provider2); - + \ No newline at end of file diff --git a/docs/basic/container/map_container.html b/docs/basic/container/map_container.html index 82e0088d..139935c7 100644 --- a/docs/basic/container/map_container.html +++ b/docs/basic/container/map_container.html @@ -8,10 +8,10 @@ - + - + @@ -21,7 +21,7 @@
Skip to content

集合容器

集合缓存指以 Map 集合作为数据源的容器。它通常用于存放系统启动后加载的配置项或字典项。

通过 ContainersforMap 工厂方法,我们可以快速配置一个数据源容器:

java
Map<String, ?> map = new HashMap<>();
 map.put(key, value);
 Container<String> container = Containers.forMap("example", map);

当输入一个键值作为 key 时,该容器将从 map 中获取对应的值,并将其作为数据源对象返回。

TIP

Containers 是一个用于创建容器的静态工厂,你可以通过它去创建所有类型的容器实例

- + \ No newline at end of file diff --git a/docs/basic/container/method_container.html b/docs/basic/container/method_container.html index f94086ef..6fa5778c 100644 --- a/docs/basic/container/method_container.html +++ b/docs/basic/container/method_container.html @@ -8,11 +8,11 @@ - + - - + + @@ -150,8 +150,8 @@ private id; private String name; private String type; -}

需要注意的是,如果目标方法上已经通过 @ContainerCache 或配置文件的方式配置缓存时,你在 @AssembleMethod 中的缓存配置将不会生效,因为前者的优先级更高。

- +}

需要注意的是,如果目标方法上已经通过 @ContainerCache 或配置文件的方式配置缓存时,你在 @AssembleMethod 中的缓存配置将不会生效,因为前者的优先级更高。

+ \ No newline at end of file diff --git a/docs/basic/container/object_container.html b/docs/basic/container/object_container.html index 32c6a579..4a725358 100644 --- a/docs/basic/container/object_container.html +++ b/docs/basic/container/object_container.html @@ -8,10 +8,10 @@ - + - + @@ -29,7 +29,7 @@ foo -> foo, foo -> foo.getId() + "#" + foo.getCode() )) );

WARNING

Container 返回的数据必须按入参的对象实例本身分组,如果重写了 equals 或者 hashCode 需要格外注意。

TIP

如果你的目的仅仅是为了对目标对象做一些处理,而不是真的需要以目标对象本身为数据源进行填充,那么你可以直接让目标类实现 OperationAwareBeanSmartOperationAwareBean 接口,在回调方法中实现你想要的效果。

具体可以参见 组件的回调接口 一节中的 “对象的回调接口” 这一小节。

- + \ No newline at end of file diff --git a/docs/basic/container/register_container.html b/docs/basic/container/register_container.html index f52c1b96..fd9747e2 100644 --- a/docs/basic/container/register_container.html +++ b/docs/basic/container/register_container.html @@ -8,10 +8,10 @@ - + - + @@ -35,7 +35,7 @@ }

WARNING

注意,容器的命名空间必须是一个非空字符串

2.手动注册

此外,无论是在 Spring 环境或者非 Spring 环境中,你都快通过操作门面后手动注册容器:

java
// 获取操作门面,如果是在 Spring 环境则可以直接从 Spring 容器获取
 Crane4jTemplate crane4jTemplate = Crane4jTemplate.withDefaultConfiguration();
 crane4jTemplate.opsForContainer().registerContainer(container);

此外,操作门面也针对某些数据结构提供了一些便捷的 API。

- + \ No newline at end of file diff --git a/docs/basic/declare_assemble_operation.html b/docs/basic/declare_assemble_operation.html index 83d7415b..1422b5de 100644 --- a/docs/basic/declare_assemble_operation.html +++ b/docs/basic/declare_assemble_operation.html @@ -8,10 +8,10 @@ - + - + @@ -135,7 +135,7 @@ private String name; private String alias; }

用法与 Spring 提供的 @Value 一致。

- + \ No newline at end of file diff --git a/docs/basic/declare_disassemble_operation.html b/docs/basic/declare_disassemble_operation.html index 78893545..e65fa607 100644 --- a/docs/basic/declare_disassemble_operation.html +++ b/docs/basic/declare_disassemble_operation.html @@ -8,10 +8,10 @@ - + - + @@ -50,7 +50,7 @@ ) private List<Employee> employees; }

在配置解析过程中,会根据指定的类型和处理器类型获取对应的操作处理器。

用户可以根据自己的需求,实现自定义的拆卸操作处理器,并通过 handlerhandlerType 属性进行指定。目前默认的,也是唯一的拆卸操作处理就是 ReflectiveDisassembleOperationHandler

- + \ No newline at end of file diff --git a/docs/basic/operation_condition.html b/docs/basic/operation_condition.html index 16e426c0..c4d35713 100644 --- a/docs/basic/operation_condition.html +++ b/docs/basic/operation_condition.html @@ -8,10 +8,10 @@ - + - + @@ -194,7 +194,7 @@ Crane4jTemplate template = SringUtil.getBean(Crane4jTemplate.class); template.opsForComponent() .registerConditionParser(new ConditionOnTargetSerializableParser()); - + \ No newline at end of file diff --git a/docs/basic/operation_group.html b/docs/basic/operation_group.html index e2541eb6..f4bcefe2 100644 --- a/docs/basic/operation_group.html +++ b/docs/basic/operation_group.html @@ -8,10 +8,10 @@ - + - + @@ -53,7 +53,7 @@ public void setFooList(List<Foo> foos) { // do nothing } - + \ No newline at end of file diff --git a/docs/basic/operation_sort.html b/docs/basic/operation_sort.html index d1145a46..33e16c5e 100644 --- a/docs/basic/operation_sort.html +++ b/docs/basic/operation_sort.html @@ -8,11 +8,11 @@ - + - - + + @@ -40,7 +40,7 @@ @AutoOperate(type = Student.class, executorType = OrderedBeanOperationExecutor.class) public List<Student> listStudent(List<Integer> ids) { // do something -}

TIP

3.与嵌套填充配合使用

出于批量操作的性能考虑,拆卸操作(即使用 @Disassemble 声明的嵌套填充操作)总是先于装配操作执行,因此你无法通过类似下面这种方式来指定两者的执行顺序

java
public class Dept {
+}

TIP

3.与嵌套填充配合使用

3.1.平铺操作执行器

出于批量操作的性能考虑,当使用默认的操作执行器时,拆卸操作(即使用 @Disassemble 声明的嵌套填充操作)总是先于装配操作执行,因此你无法通过类似下面这种方式来指定两者的执行顺序

java
public class Dept {
     
   	// 根据部门管理查询员工,然后填充到 emps 属性
     @Assemble(container = "emp", prop = ":emps", order = 1)
@@ -59,8 +59,35 @@
   	Crane4jTemplate template = SpringUtil.getBean(Crane4jTemplate.class); // 获取操作门面进行手动填充
   	template.execute(emps);
   	return emps;
-}

TIP

- +}

TIP

3.2.递归操作执行器

在 2.9.0 及以上版本,新增了三个支持递归填充的操作执行器,它们支持先执行装配操作,再执行拆卸操作,然后再对提取出来的嵌套对象执行装配操作……直到递归完成整个填充过程:

它们的操作逻辑非常类似于树的递归构件过程,你可以基于下面的示例感受一下:

java
@Component
+public class NodeService {
+  	@ContainerMethod(namespace = "children", resultType = Node.class)
+  	public List<Node> selectChildrenNodesById(String nodeId) {
+      	// 根据节点ID查询子节点
+    }
+}
+
+@Data
+@RequiredArgsConstructor
+public static class Node {
+  	// 根据 ID 填充子节点,然后再递归子节点重复该填充过程
+    @Assemble(container = "children", prop = ":children")
+    private final Integer id;
+    private String name;
+    @Disassemble(type = Foo.class)
+    private List<Node> children;
+}
+
+@Service
+public class ExampleService {
+  
+  	// 指定执行器为无序的递归执行器
+  	@AutoOperate(executorType = OrderedBeanOperationRecursiveExecutor.class)
+  	public Node getTree(String id) {
+      	return new Node(0);
+    }
+}

在上述代码中,你只需返回一个根节点,执行器将根据你的配置为你完成树的构建。

TIP

WARNING

当前版本的递归执行器实际上是基于栈实现的,因此一般情况下不必担心栈溢出。

不过由于在每一层级都要进行查询,因此当层级过多的时候会比较影响性能,为了保证性能,请不要在非必要的场景使用该类型的执行器。

+ \ No newline at end of file diff --git a/docs/basic/property_mapping.html b/docs/basic/property_mapping.html index 863f95ea..2bb6da9a 100644 --- a/docs/basic/property_mapping.html +++ b/docs/basic/property_mapping.html @@ -8,10 +8,10 @@ - + - + @@ -184,7 +184,7 @@ private String teacherIds; // 以逗号分隔的字符串,例如:1, 2, 3 private String teacherNames; // 映射为 "teacher_name_prefix:a, b, c, d....." } - + \ No newline at end of file diff --git a/docs/basic/trigger_operation.html b/docs/basic/trigger_operation.html index adffa661..484fd378 100644 --- a/docs/basic/trigger_operation.html +++ b/docs/basic/trigger_operation.html @@ -8,10 +8,10 @@ - + - + @@ -90,7 +90,7 @@ @AutoOperate(resolveOperationsFromCurrentElement = true) // 从 targets 方法参数上解析操作配置 Collection<Foo> targets );

在上面这个写法中,你可以不必在 Foo 类中配置任何注解,当执行时,crane4j 将根据你在方法上的操作配置对返回值进行填充,或根据你在参数上的操作配置对入参进行填充。

TIP

如果你希望基于一个独立的方法进行填充,那么可以参考 基于方法填充 一节,它同样也可做到类似的效果,并且更加灵活。

- + \ No newline at end of file diff --git a/docs/extension/jackson_extension.html b/docs/extension/jackson_extension.html index 6291f2e0..dbc38528 100644 --- a/docs/extension/jackson_extension.html +++ b/docs/extension/jackson_extension.html @@ -8,10 +8,10 @@ - + - + @@ -88,7 +88,7 @@ ) private Integer userId; }

具体配置可以参见“自动填充”一节。

- + \ No newline at end of file diff --git a/docs/extension/mybatis_plus_extension.html b/docs/extension/mybatis_plus_extension.html index 228f4ee5..a2425f0e 100644 --- a/docs/extension/mybatis_plus_extension.html +++ b/docs/extension/mybatis_plus_extension.html @@ -8,10 +8,10 @@ - + - + @@ -89,7 +89,7 @@ private Integer deptId; private List<String> empNames; }

上述示例中,使用 @AssembleMp 注解指定在 empMapper 中根据部门 id 查询员工集合,然后按部门 id 进行一对多映射。最后,将员工集合中的员工名称映射到 DeptEmpVO 对象的 empNames 集合中。

这样,我们可以实现多对一的映射关系。

- + \ No newline at end of file diff --git a/docs/extension/redis_extension.html b/docs/extension/redis_extension.html index a952245f..14fb9f14 100644 --- a/docs/extension/redis_extension.html +++ b/docs/extension/redis_extension.html @@ -8,10 +8,10 @@ - + - + @@ -76,7 +76,7 @@ cacheManager.setEnableClearCache(true); // 允许从 Redis 删除数据 CacheObject<String> cache = cacheManager.removeCache("test"); // 删除数据 // redisTemplate.remove(redisTemplate.keys("crane4j:cache:test:*"))

如果你确实需要这个功能(尤其是在没有设置缓存过期时间时),那么你最好确保每一个缓存对象都对应一个独一无二的前缀,避免误删。

- + \ No newline at end of file diff --git a/docs/hashmap.json b/docs/hashmap.json index 6ac59195..ac3cb8ed 100644 --- a/docs/hashmap.json +++ b/docs/hashmap.json @@ -1 +1 @@ -{"advanced_type_converter.md":"BIoWhgEP","advanced_callback_of_component.md":"DEDofQhQ","advanced_async_executor.md":"CF1q_yAs","advanced_combination_annotation.md":"BnSOeiXm","advanced_cache.md":"OC9S5Tk6","advanced_operation_annotation_handler.md":"DjqeCpUh","advanced_reflection_factory.md":"D03lNgJj","advanced_operator_interface.md":"adk_QsZo","basic_container_container_abstract.md":"w2Vr3VXU","basic_container_constant_container.md":"Cdz4_X9t","basic_container_container_provider.md":"Czh4SKAo","basic_assemble_operation_handler.md":"DvnqsKDf","basic_container_enum_container.md":"DFa58eg0","basic_container_custom_container.md":"C-nicLId","basic_container_lambda_container.md":"CBbUpCNt","basic_container_map_container.md":"DdCzpAY4","basic_container_introspection_container.md":"CIfW0t-k","basic_container_object_container.md":"DwiX9AW5","basic_container_method_container.md":"CjLNZMuu","basic_declare_disassemble_operation.md":"SsJepHdo","basic_container_register_container.md":"fl8qVF81","basic_declare_assemble_operation.md":"c6YOMLqv","basic_operation_sort.md":"DA87PCXN","basic_operation_group.md":"pGFz3YtI","basic_operation_condition.md":"BjiQDyOx","basic_trigger_operation.md":"BiIc4OXf","extension_jackson_extension.md":"Eb54uESs","basic_property_mapping.md":"DLY4znjz","other_community.md":"imDWKr6X","extension_mybatis_plus_extension.md":"RpwhJIYw","extension_redis_extension.md":"asBS3E0r","other_changelog.md":"DhaxlaFk","index.md":"0zJM9BqW","other_configuration_properties.md":"C4n-Aj_J","other_how-to-ask-questions-the-smart-way.md":"ddv4OXpn","use_case_example_additional_action.md":"CR4puVpb","use_case_example_fill_enum.md":"C99dTAis","use_case_example_exclude_operation.md":"CBsau6lq","use_case_example_fill_wrapped_return_value.md":"Dmca6prj","use_case_example_fill_relations.md":"CGFG3pdI","user_guide_faq.md":"CEVtBxTp","use_case_example_fill_method.md":"DfaCH-Ri","user_guide_getting_started_getting_started_abstract.md":"CwuXppre","user_guide_getting_started_getting_started_with_spring.md":"BAKnJ58I","use_case_example_multi_datasource.md":"JLYrA8Kt","user_guide_operational_principle.md":"D_wPDyoB","user_guide_basic_concept.md":"CT0Cdae3","user_guide_getting_started_getting_started_with_springboot.md":"BICW4PSU","use_case_example_multi_key.md":"BIAE3j5Q","user_guide_what_is_crane4j.md":"3Idl6-2L","user_guide_getting_started_getting_started_without_spring.md":"DVyOJjzn"} +{"advanced_async_executor.md":"CF1q_yAs","advanced_callback_of_component.md":"DEDofQhQ","advanced_combination_annotation.md":"BnSOeiXm","advanced_cache.md":"OC9S5Tk6","advanced_operation_annotation_handler.md":"DjqeCpUh","advanced_reflection_factory.md":"D03lNgJj","advanced_type_converter.md":"BIoWhgEP","advanced_operator_interface.md":"adk_QsZo","basic_container_constant_container.md":"Cdz4_X9t","basic_assemble_operation_handler.md":"DvnqsKDf","basic_container_container_provider.md":"Czh4SKAo","basic_container_enum_container.md":"DFa58eg0","basic_container_container_abstract.md":"w2Vr3VXU","basic_container_custom_container.md":"C-nicLId","basic_container_lambda_container.md":"CBbUpCNt","basic_container_introspection_container.md":"CIfW0t-k","basic_container_map_container.md":"DdCzpAY4","basic_container_method_container.md":"DO6Zq6fD","basic_container_object_container.md":"DwiX9AW5","basic_container_register_container.md":"fl8qVF81","basic_declare_disassemble_operation.md":"SsJepHdo","basic_declare_assemble_operation.md":"c6YOMLqv","basic_operation_group.md":"pGFz3YtI","basic_operation_sort.md":"9FdGdiak","basic_property_mapping.md":"DLY4znjz","basic_operation_condition.md":"BjiQDyOx","basic_trigger_operation.md":"BiIc4OXf","extension_jackson_extension.md":"Eb54uESs","index.md":"0zJM9BqW","extension_mybatis_plus_extension.md":"RpwhJIYw","extension_redis_extension.md":"asBS3E0r","other_community.md":"imDWKr6X","other_configuration_properties.md":"C4n-Aj_J","use_case_example_additional_action.md":"CR4puVpb","other_how-to-ask-questions-the-smart-way.md":"ddv4OXpn","other_changelog.md":"DhaxlaFk","use_case_example_exclude_operation.md":"CBsau6lq","use_case_example_fill_enum.md":"C99dTAis","use_case_example_fill_method.md":"DfaCH-Ri","use_case_example_fill_wrapped_return_value.md":"Dmca6prj","use_case_example_fill_relations.md":"CGFG3pdI","use_case_example_multi_key.md":"BIAE3j5Q","use_case_example_multi_datasource.md":"JLYrA8Kt","user_guide_getting_started_getting_started_abstract.md":"CwuXppre","user_guide_basic_concept.md":"CT0Cdae3","user_guide_faq.md":"CEVtBxTp","user_guide_getting_started_getting_started_with_spring.md":"BAKnJ58I","user_guide_operational_principle.md":"D_wPDyoB","user_guide_getting_started_getting_started_without_spring.md":"DVyOJjzn","user_guide_what_is_crane4j.md":"3Idl6-2L","user_guide_getting_started_getting_started_with_springboot.md":"BICW4PSU"} diff --git a/docs/index.html b/docs/index.html index e4017c8e..730c089f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

Crane4j

强大又好用的关联字段填充框架

- + \ No newline at end of file diff --git a/docs/other/How-To-Ask-Questions-The-Smart-Way.html b/docs/other/How-To-Ask-Questions-The-Smart-Way.html index ad00d69f..364ced78 100644 --- a/docs/other/How-To-Ask-Questions-The-Smart-Way.html +++ b/docs/other/How-To-Ask-Questions-The-Smart-Way.html @@ -8,10 +8,10 @@ - + - + @@ -26,7 +26,7 @@ 6. 向你身边的强者朋友打听以找到答案。 7. 如果你是程序开发者,请尝试阅读源代码以找到答案。

当你提出问题的时候,请先表明你已经做了上述的努力;这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者。如果你能一并表达在做了上述努力的过程中所学到的东西会更好,因为我们更乐于回答那些表现出能从答案中学习的人的问题。

运用某些策略,比如先用 Google 搜索你所遇到的各种错误信息(搜索 Google 论坛和网页),这样很可能直接就找到了能解决问题的文件或邮件列表线索。即使没有结果,在邮件列表或新闻组寻求帮助时加上一句 我在 Google 中搜过下列句子但没有找到什么有用的东西 也是件好事,即使它只是表明了搜索引擎不能提供哪些帮助。这么做(加上搜索过的字串)也让遇到相似问题的其他人能被搜索引擎引导到你的提问来。

别着急,不要指望几秒钟的 Google 搜索就能解决一个复杂的问题。在向专家求助之前,再阅读一下常见问题文件(FAQ)、放轻松、坐得舒服一些,再花点时间思考一下这个问题。相信我们,他们能从你的提问看出你做了多少阅读与思考,如果你是有备而来,将更有可能得到解答。不要将所有问题一股脑拋出,只因你的第一次搜索没有找到答案(或者找到太多答案)。

准备好你的问题,再将问题仔细地思考过一遍,因为草率的发问只能得到草率的回答,或者根本得不到任何答案。越是能表现出在寻求帮助前你为解决问题所付出的努力,你越有可能得到实质性的帮助。

小心别问错了问题。如果你的问题基于错误的假设,某个普通黑客(J. Random Hacker)多半会一边在心里想着蠢问题…,一边用无意义的字面解释来答复你,希望着你会从问题的回答(而非你想得到的答案)中汲取教训。

绝不要自以为够格得到答案,你没有;你并没有。毕竟你没有为这种服务支付任何报酬。你将会是自己去挣到一个答案,靠提出有内涵的、有趣的、有思维激励作用的问题 —— 一个有潜力能贡献社区经验的问题,而不仅仅是被动地从他人处索取知识。

另一方面,表明你愿意在找答案的过程中做点什么是一个非常好的开端。谁能给点提示?我的这个例子里缺了什么?以及我应该检查什么地方请把我需要的确切的过程贴出来更容易得到答复。因为你表现出只要有人能指个正确方向,你就有完成它的能力和决心。

当你提问时

慎选提问的论坛

小心选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者:

黑客会剔除掉那些搞错场合的问题,以保护他们沟通的渠道不被无关的东西淹没。你不会想让这种事发生在自己身上的。

因此,第一步是找到对的论坛。再说一次,Google 和其它搜索引擎还是你的朋友,用它们来找到与你遭遇到困难的软硬件问题最相关的网站。通常那儿都有常见问题(FAQ)、邮件列表及相关说明文件的链接。如果你的努力(包括阅读 FAQ)都没有结果,网站上也许还有报告 Bug(Bug-reporting)的流程或链接,如果是这样,链过去看看。

向陌生的人或论坛发送邮件最可能是风险最大的事情。举例来说,别假设一个提供丰富内容的网页的作者会想充当你的免费顾问。不要对你的问题是否会受到欢迎做太乐观的估计 —— 如果你不确定,那就向别处发送,或者压根别发。

在选择论坛、新闻群组或邮件列表时,别太相信它的名字,先看看 FAQ 或者许可书以弄清楚你的问题是否切题。发文前先翻翻已有的话题,这样可以让你感受一下那里的文化。事实上,事先在新闻组或邮件列表的历史记录中搜索与你问题相关的关键词是个极好的主意,也许这样就找到答案了。即使没有,也能帮助你归纳出更好的问题。

别像机关枪似的一次“扫射”所有的帮助渠道,这就像大喊大叫一样会使人不快。要一个一个地来。

搞清楚你的主题!最典型的错误之一是在某种致力于跨平台可移植的语言、套件或工具的论坛中提关于 Unix 或 Windows 操作系统程序界面的问题。如果你不明白为什么这是大错,最好在搞清楚这之间差异之前什么也别问。

一般来说,在仔细挑选的公共论坛中提问,会比在私有论坛中提同样的问题更容易得到有用的回答。有几个理由可以支持这点,一是看潜在的回复者有多少,二是看观众有多少。黑客较愿意回答那些能帮助到许多人的问题。

可以理解的是,老练的黑客和一些热门软件的作者正在接受过多的错发信息。就像那根最后压垮骆驼背的稻草一样,你的加入也有可能使情况走向极端 —— 已经好几次了,一些热门软件的作者由于涌入其私人邮箱的大量不堪忍受的无用邮件而不再提供支持。

Stack Overflow

搜索,然后在 Stack Exchange 问。

近年来,Stack Exchange 社区已经成为回答技术及其他问题的主要渠道,尤其是那些开放源码的项目。

因为 Google 索引是即时的,在看 Stack Exchange 之前先在 Google 搜索。有很高的几率某人已经问了一个类似的问题,而且 Stack Exchange 网站们往往会是搜索结果中最前面几个。如果你在 Google 上没有找到任何答案,你再到特定相关主题的网站去找。用标签(Tag)搜索能让你更缩小你的搜索结果。

如果你还是找不到任何对你的问题有用的内容,请把你的问题发在与它最相关的网站上。提问的时候请善用格式化工具,尤其注意为代码添加格式,并且添加相关的标签(特别是编程语言、操作系统或库/包的名称)。当有人要求你提供更多相关信息时,请编辑你的贴子来补充它们[译注:而不是发一个回帖或回答!]。如果你觉得一个答案对你有帮助,点击向上的箭头来为它投票;如果一个答案提供了问题的正确解决方案,点击投票按钮下方的对勾来将它标记为正解。

Stack Exchange 已经成长到超过一百个网站,以下是最常用的几个站:

网站和 IRC 论坛

本地的用户群组(user group),或者你所用的 Linux 发行版本也许正在宣传他们的网页论坛或 IRC 频道,并提供新手帮助(在一些非英语国家,新手论坛很可能还是邮件列表),这些都是开始提问的好地方,特别是当你觉得遇到的也许只是相对简单或者很普通的问题时。有广告赞助的 IRC 频道是公开欢迎提问的地方,通常可以即时得到回应。

事实上,如果程序出的问题只发生在特定 Linux 发行版提供的版本(这很常见),最好先去该发行版的论坛或邮件列表中提问,再到程序本身的论坛或邮件列表提问。(否则)该项目的黑客可能仅仅回复“使用我们的版本”。

在任何论坛发文以前,先确认一下有没有搜索功能。如果有,就试着搜索一下问题的几个关键词,也许这会有帮助。如果在此之前你已做过通用的网页搜索(你也该这样做),还是再搜索一下论坛,搜索引擎有可能没来得及索引此论坛的全部内容。

通过论坛或 IRC 频道来提供用户支持服务有增长的趋势,电子邮件则大多为项目开发者间的交流而保留。所以最好先在论坛或 IRC 中寻求与该项目相关的协助。

在使用 IRC 的时候,首先最好不要发布很长的问题描述,有些人称之为频道洪水。最好通过一句话的问题描述来开始聊天。

第二步,使用项目邮件列表

当某个项目提供开发者邮件列表时,要向列表而不是其中的个别成员提问,即使你确信他能最好地回答你的问题。查一查项目的文件和首页,找到项目的邮件列表并使用它。有几个很好的理由支持我们采用这种办法:

如果一个项目既有“用户”也有“开发者”(或“黑客”)邮件列表或论坛,而你又不会动到那些源代码,那么就向“用户”列表或论坛提问。不要假设自己会在开发者列表中受到欢迎,那些人多半会将你的提问视为干扰他们开发的噪音。

然而,如果你确信你的问题很特别,而且在“用户”列表或论坛中几天都没有回复,可以试试前往“开发者”列表或论坛发问。建议你在张贴前最好先暗地里观察几天以了解那里的行事方式(事实上这是参与任何私有或半私有列表的好主意)

如果你找不到一个项目的邮件列表,而只能查到项目维护者的电子邮件地址,尽管向他发信。即使是在这种情况下,也别假设(项目)邮件列表不存在。在你的电子邮件中,请陈述你已经试过但没有找到合适的邮件列表,也提及你不反对将自己的邮件转发给他人(许多人认为,即使没什么秘密,私人电子邮件也不应该被公开。通过允许将你的电子邮件转发他人,你给了相应人员处置你邮件的选择)。

使用有意义且描述明确的标题

在邮件列表、新闻群组或论坛中,大约 50 字以内的标题是抓住资深专家注意力的好机会。别用喋喋不休的帮帮忙跪求(更别说救命啊!!!!这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。

一个好标题范例是目标 —— 差异式的描述,许多技术支持组织就是这样做的。在目标部分指出是哪一个或哪一组东西有问题,在差异部分则描述与期望的行为不一致的地方。

蠢问题:救命啊!我的笔记本电脑不能正常显示了!

聪明问题:X.org 6.8.1 的鼠标指针会变形,某牌显卡 MV1005 芯片组。

更聪明问题:X.org 6.8.1 的鼠标指针,在某牌显卡 MV1005 芯片组环境下 - 会变形。

编写目标 —— 差异 式描述的过程有助于你组织对问题的细致思考。是什么被影响了? 仅仅是鼠标指针或者还有其它图形?只在 X.org 的 X 版中出现?或只是出现在 6.8.1 版中? 是针对某牌显卡芯片组?或者只是其中的 MV1005 型号? 一个黑客只需瞄一眼就能够立即明白你的环境你遇到的问题。

总而言之,请想像一下你正在一个只显示标题的存档讨论串(Thread)索引中查寻。让你的标题更好地反映问题,可使下一个搜索类似问题的人能够关注这个讨论串,而不用再次提问相同的问题。

如果你想在回复中提出问题,记得要修改内容标题,以表明你是在问一个问题, 一个看起来像 Re: 测试 或者 Re: 新 bug 的标题很难引起足够重视。另外,在不影响连贯性之下,适当引用并删减前文的内容,能给新来的读者留下线索。

对于讨论串,不要直接点击回复来开始一个全新的讨论串,这将限制你的观众。因为有些邮件阅读程序,比如 mutt ,允许用户按讨论串排序并通过折叠讨论串来隐藏消息,这样做的人永远看不到你发的消息。

仅仅改变标题还不够。mutt 和其它一些邮件阅读程序还会检查邮件标题以外的其它信息,以便为其指定讨论串。所以宁可发一个全新的邮件。

在网页论坛上,好的提问方式稍有不同,因为讨论串与特定的信息紧密结合,并且通常在讨论串外就看不到里面的内容,故通过回复提问,而非改变标题是可接受的。不是所有论坛都允许在回复中出现分离的标题,而且这样做了基本上没有人会去看。不过,通过回复提问,这本身就是暧昧的做法,因为它们只会被正在查看该标题的人读到。所以,除非你只想在该讨论串当前活跃的人群中提问,不然还是另起炉灶比较好。

使问题容易回复

请将你的回复发送到……来结束你的问题多半会使你得不到回答。如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦,我们也觉得花几秒钟思考你的问题更麻烦。如果你的邮件程序不支持这样做,换个好点的;如果是操作系统不支持这种邮件程序,也换个好点的。

在论坛,要求通过电子邮件回复是非常无礼的,除非你认为回复的信息可能比较敏感(有人会为了某些未知的原因,只让你而不是整个论坛知道答案)。如果你只是想在有人回复讨论串时得到电子邮件提醒,可以要求网页论坛发送给你。几乎所有论坛都支持诸如追踪此讨论串有回复时发送邮件提醒等功能。

使用清晰、正确、精准且合乎语法的语句

我们从经验中发现,粗心的提问者通常也会粗心地写程序与思考(我敢打包票)。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。

正确的拼写、标点符号和大小写是很重要的。一般来说,如果你觉得这样做很麻烦,不想在乎这些,那我们也觉得麻烦,不想在乎你的提问。花点额外的精力斟酌一下字句,用不着太僵硬与正式 —— 事实上,黑客文化很看重能准确地使用非正式、俚语和幽默的语句。但它必须很准确,而且有迹象表明你是在思考和关注问题。

正确地拼写、使用标点和大小写,不要将its混淆为it'sloose搞成lose或者将discrete弄成discreet。不要全部用大写,这会被视为无礼的大声嚷嚷(全部小写也好不到哪去,因为不易阅读。Alan Cox 也许可以这样做,但你不行)。

更白话的说,如果你写得像是个半文盲[译注:小白],那多半得不到理睬。也不要使用即时通信中的简写或火星文,如将简化为d会使你看起来像一个为了少打几个键而省字的小白。更糟的是,如果像个小孩似地鬼画符那绝对是在找死,可以肯定没人会理你(或者最多是给你一大堆指责与挖苦)。

如果在使用非母语的论坛提问,你可以犯点拼写和语法上的小错,但决不能在思考上马虎(没错,我们通常能弄清两者的分别)。同时,除非你知道回复者使用的语言,否则请使用英语书写。繁忙的黑客一般会直接删除用他们看不懂的语言写的消息。在网络上英语是通用语言,用英语书写可以将你的问题在尚未被阅读就被直接删除的可能性降到最低。

如果英文是你的外语(Second language),提示潜在回复者你有潜在的语言困难是很好的: [译注:以下附上原文以供使用]

English is not my native language; please excuse typing errors.

If you speak $LANGUAGE, please email/PM me; I may need assistance translating my question.

I am familiar with the technical terms, but some slang expressions and idioms are difficult for me.

I've posted my question in $LANGUAGE and English. I'll be glad to translate responses, if you only use one or the other.

使用易于读取且标准的文件格式发送问题

如果你人为地将问题搞得难以阅读,它多半会被忽略,人们更愿读易懂的问题,所以:

如果你使用图形用户界面的邮件程序(如微软公司的 Outlook 或者其它类似的),注意它们的默认设置不一定满足这些要求。大多数这类程序有基于选单的查看源代码命令,用它来检查发送文件夹中的邮件,以确保发送的是纯文本文件同时没有一些奇怪的字符。

精确地描述问题并言之有物

尽量去揣测一个黑客会怎样反问你,在你提问之前预先将黑客们可能提出的问题回答一遍。

以上几点中,当你报告的是你认为可能在代码中的问题时,给黑客一个可以重现你的问题的环境尤其重要。当你这么做时,你得到有效的回答的机会和速度都会大大的提升。

Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。强力推荐你也读一读。

话不在多而在精

你需要提供精确有内容的信息。这并不是要求你简单的把成堆的出错代码或者资料完全转录到你的提问中。如果你有庞大而复杂的测试样例能重现程序挂掉的情境,尽量将它剪裁得越小越好。

这样做的用处至少有三点。 第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加; 第二,简化问题使你更有可能得到有用的答案; 第三,在精炼你的 bug 报告的过程中,你很可能就自己找到了解决方法或权宜之计。

别动辄声称找到 Bug

当你在使用软件中遇到问题,除非你非常、非常的有根据,不要动辄声称找到了 Bug。提示:除非你能提供解决问题的源代码补丁,或者提供回归测试来表明前一版本中行为不正确,否则你都多半不够完全确信。这同样适用在网页和文件,如果你(声称)发现了文件的Bug,你应该能提供相应位置的修正或替代文件。

请记得,还有其他许多用户没遇到你发现的问题,否则你在阅读文件或搜索网页时就应该发现了(你在抱怨前已经做了这些,是吧?)。这也意味着很有可能是你弄错了而不是软件本身有问题。

编写软件的人总是非常辛苦地使它尽可能完美。如果你声称找到了 Bug,也就是在质疑他们的能力,即使你是对的,也有可能会冒犯到其中某部分人。当你在标题中嚷嚷着有Bug时,这尤其严重。

提问时,即使你私下非常确信已经发现一个真正的 Bug,最好写得像是做错了什么。如果真的有 Bug,你会在回复中看到这点。这样做的话,如果真有 Bug,维护者就会向你道歉,这总比你惹恼别人然后欠别人一个道歉要好一点。

低声下气不能代替你的功课

有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 —— 低声下气:我知道我只是个可悲的新手,一个撸瑟,但...。这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。

别用原始灵长类动物的把戏来浪费你我的时间。取而代之的是,尽可能清楚地描述背景条件和你的问题情况。这比低声下气更好地定位了你的位置。

有时网页论坛会设有专为新手提问的版面,如果你真的认为遇到了初学者的问题,到那去就是了,但一样别那么低声下气。

描述问题症状而非你的猜测

告诉黑客们你认为问题是怎样造成的并没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,而不是你的解释和理论;让黑客们来推测和诊断。如果你认为陈述自己的猜测很重要,清楚地说明这只是你的猜测,并描述为什么它们不起作用。

蠢问题

我在编译内核时接连遇到 SIG11 错误, 我怀疑某条飞线搭在主板的走线上了,这种情况应该怎样检查最好?

聪明问题

我的组装电脑是 FIC-PA2007 主机板搭载 AMD K6/233 CPU(威盛 Apollo VP2 芯片组), 256MB Corsair PC133 SDRAM 内存,在编译内核时,从开机 20 分钟以后就频频产生 SIG11 错误, 但是在头 20 分钟内从没发生过相同的问题。重新启动也没有用,但是关机一晚上就又能工作 20 分钟。 所有内存都换过了,没有效果。相关部分的标准编译记录如下…

由于以上这点似乎让许多人觉得难以配合,这里有句话可以提醒你:所有的诊断专家都来自密苏里州。 美国国务院的官方座右铭则是:让我看看(出自国会议员 Willard D. Vandiver 在 1899 年时的讲话:我来自一个出产玉米,棉花,牛蒡和民主党人的国家,滔滔雄辩既不能说服我,也不会让我满意。我来自密苏里州,你必须让我看看。) 针对诊断者而言,这并不是一种怀疑,而只是一种真实而有用的需求,以便让他们看到的是与你看到的原始证据尽可能一致的东西,而不是你的猜测与归纳的结论。所以,大方地展示给我们看吧!

按发生时间先后列出问题症状

问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,你的说明里应该包含你的操作步骤,以及机器和软件的反应,直到问题发生。在命令行处理的情况下,提供一段操作记录(例如运行脚本工具所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。

如果挂掉的程序有诊断选项(如 -v 的详述开关),试着选择这些能在记录中增加调试信息的选项。记住,不等于。试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中。

如果你的说明很长(如超过四个段落),在开头简述问题,接下来再按时间顺序详述会有所帮助。这样黑客们在读你的记录时就知道该注意哪些内容了。

描述目标而不是过程

如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。

经常寻求技术帮助的人在心中有个更高层次的目标,而他们在自以为能达到目标的特定道路上被卡住了,然后跑来问该怎么走,但没有意识到这条路本身就有问题。结果要费很大的劲才能搞定。

蠢问题

我怎样才能从某绘图程序的颜色选择器中取得十六进制的 RGB 值?

聪明问题

我正试着用替换一幅图片的色码(color table)成自己选定的色码,我现在知道的唯一方法是编辑每个色码区块(table slot), 但却无法从某绘图程序的颜色选择器取得十六进制的 RGB 值。

第二种提问法比较聪明,你可能得到像是建议采用另一个更合适的工具的回复。

别要求使用私人电邮回复

黑客们认为问题的解决过程应该公开、透明,此过程中如果更有经验的人注意到不完整或者不当之处,最初的回复才能够、也应该被纠正。同时,作为提供帮助者可以得到一些奖励,奖励就是他的能力和学识被其他同行看到。

当你要求私下回复时,这个过程和奖励都被中止。别这样做,让回复者来决定是否私下回答 —— 如果他真这么做了,通常是因为他认为问题编写太差或者太肤浅,以至于不可能使其他人产生兴趣。

这条规则存在一条有限的例外,如果你确信提问可能会引来大量雷同的回复时,那么这个神奇的提问句会是向我发电邮,我将为论坛归纳这些回复。试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的 —— 但你必须信守诺言。

清楚明确地表达你的问题以及需求

漫无边际的提问是近乎无休无止的时间黑洞。最有可能给你有用答案的人通常也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞相当厌恶,所以他们也倾向于厌恶那些漫无边际的提问。

如果你明确表述需要回答者做什么(如提供指点、发送一段代码、检查你的补丁、或是其他等等),就最有可能得到有用的答案。因为这会定出一个时间和精力的上限,便于回答者能集中精力来帮你。这么做很棒。

要理解专家们所处的世界,请把专业技能想像为充裕的资源,而回复的时间则是稀缺的资源。你要求他们奉献的时间越少,你越有可能从真正专业而且很忙的专家那里得到解答。

所以,界定一下你的问题,使专家花在辨识你的问题和回答所需要付出的时间减到最少,这技巧对你获得有用的答案相当有帮助 —— 但这技巧通常和简化问题有所区别。因此,问我想更好地理解 X,可否指点一下哪有好一点说明?通常比问你能解释一下 X 吗?更好。如果你的代码不能运作,通常请别人看看哪里有问题,比要求别人替你改正要明智得多。

询问有关代码的问题时

如果没有提示别人应该从何入手,别要求他人帮你调试有问题的代码。张贴几百行的代码,然后说一声:它不能工作会让你完全被忽略。只贴几十行代码,然后说一句:在第七行以后,我期待它显示 <x>,但实际出现的是 <y>比较有可能让你得到回应。

最有效描述程序问题的方法是提供最精简的 Bug 展示测试用例(bug-demonstrating test case)。什么是最精简的测试用例?那是问题的缩影;一小个程序片段能刚好展示出程序的异常行为,而不包含其他令人分散注意力的内容。怎么制作最精简的测试用例?如果你知道哪一行或哪一段代码会造成异常的行为,复制下来并加入足够重现这个状况的代码(例如,足以让这段代码能被编译/直译/被应用程序处理)。如果你无法将问题缩减到一个特定区块,就复制一份代码并移除不影响产生问题行为的部分。总之,测试用例越小越好(查看话不在多而在精一节)。

一般而言,要得到一段相当精简的测试用例并不太容易,但永远先尝试这样做是一个好习惯。这种方式可以帮助你了解如何自行解决这个问题 —— 而且即使你的尝试不成功,黑客们也会看到你在尝试取得答案的过程中付出了努力,这可以让他们更愿意与你合作。

如果你只是想让别人帮忙审查(Review)一下代码,在信的开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。

别把自己家庭作业的问题贴上来

黑客们很擅长分辨哪些问题是家庭作业式的问题;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由来搞定,你会从中学到东西。你可以要求给点提示,但别要求得到完整的解决方案。

如果你怀疑自己碰到了一个家庭作业式的问题,但仍然无法解决,试试在用户群组,论坛或(最后一招)在项目的用户邮件列表或论坛中提问。尽管黑客们看出来,但一些有经验的用户也许仍会给你一些提示。

去掉无意义的提问句

避免用无意义的话结束提问,例如有人能帮我吗?或者这有答案吗?

首先:如果你对问题的描述不是很好,这样问更是画蛇添足。

其次:由于这样问是画蛇添足,黑客们会很厌烦你 —— 而且通常会用逻辑上正确,但毫无意义的回答来表示他们的蔑视, 例如:没错,有人能帮你或者不,没答案

一般来说,避免用 是或否对或错有或没有类型的问句,除非你想得到是或否类型的回答

即使你很急也不要在标题写紧急

这是你的问题,不是我们的。宣称紧急极有可能事与愿违:大多数黑客会直接删除无礼和自私地企图即时引起关注的问题。更严重的是,紧急这个字(或是其他企图引起关注的标题)通常会被垃圾信过滤器过滤掉 —— 你希望能看到你问题的人可能永远也看不到。

有半个例外的情况是,如果你是在一些很高调,会使黑客们兴奋的地方,也许值得这样去做。在这种情况下,如果你有时间压力,也很有礼貌地提到这点,人们也许会有兴趣回答快一点。

当然,这风险很大,因为黑客们兴奋的点多半与你的不同。譬如从 NASA 国际空间站(International Space Station)发这样的标题没有问题,但用自我感觉良好的慈善行为或政治原因发肯定不行。事实上,张贴诸如紧急:帮我救救这个毛茸茸的小海豹!肯定让你被黑客忽略或惹恼他们,即使他们认为毛茸茸的小海豹很重要。

如果你觉得这点很不可思议,最好再把这份指南剩下的内容多读几遍,直到你弄懂了再发文。

礼多人不怪,而且有时还很有帮助

彬彬有礼,多用谢谢您的关注,或谢谢你的关照。让大家都知道你对他们花时间免费提供帮助心存感激。

坦白说,这一点并没有比使用清晰、正确、精准且合乎语法和避免使用专用格式重要(也不能取而代之)。黑客们一般宁可读有点唐突但技术上鲜明的 Bug 报告,而不是那种有礼但含糊的报告。(如果这点让你不解,记住我们是按问题能教给我们什么来评价问题的价值的)

然而,如果你有一串的问题待解决,客气一点肯定会增加你得到有用回应的机会。

(我们注意到,自从本指南发布后,从资深黑客那里得到的唯一严重缺陷反馈,就是对预先道谢这一条。一些黑客觉得先谢了意味着事后就不用再感谢任何人的暗示。我们的建议是要么先说先谢了然后事后再对回复者表示感谢,或者换种方式表达感激,譬如用谢谢你的关注谢谢你的关照。)

问题解决后,加个简短的补充说明

问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在新闻组或者邮件列表中引起了广泛关注,应该在那里贴一个说明比较恰当。

最理想的方式是向最初提问的话题回复此消息,并在标题中包含已修正已解决或其它同等含义的明显标记。在人来人往的邮件列表里,一个看见讨论串问题 X问题 X - 已解决的潜在回复者就明白不用再浪费时间了(除非他个人觉得问题 X有趣),因此可以利用此时间去解决其它问题。

补充说明不必很长或是很深入;简单的一句你好,原来是网线出了问题!谢谢大家 – Bill比什么也不说要来的好。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇大论更好。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。

对于有深度的问题,张贴调试记录的摘要是有帮助的。描述问题的最终状态,说明是什么解决了问题,在此之后才指明可以避免的盲点。避免盲点的部分应放在正确的解决方案和其它总结材料之后,而不要将此信息搞成侦探推理小说。列出那些帮助过你的名字,会让你交到更多朋友。

除了有礼貌和有内涵以外,这种类型的补充也有助于他人在邮件列表/新闻群组/论坛中搜索到真正解决你问题的方案,让他们也从中受益。

至少,这种补充有助于让每位参与协助的人因问题的解决而从中得到满足感。如果你自己不是技术专家或者黑客,那就相信我们,这种感觉对于那些你向他们求助的大师或者专家而言,是非常重要的。问题悬而未决会让人灰心;黑客们渴望看到问题被解决。好人有好报,满足他们的渴望,你会在下次提问时尝到甜头。

思考一下怎样才能避免他人将来也遇到类似的问题,自问写一份文件或加个常见问题(FAQ)会不会有帮助。如果是的话就将它们发给维护者。

在黑客中,这种良好的后继行动实际上比传统的礼节更为重要,也是你如何透过善待他人而赢得声誉的方式,这是非常有价值的资产。

如何解读答案

RTFM 和 STFW:如何知道你已完全搞砸了

有一个古老而神圣的传统:如果你收到RTFM(Read The Fucking Manual)的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。

RTFM 有一个年轻的亲戚。如果你收到STFW(Search The Fucking Web)的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。(更温和一点的说法是 Google 是你的朋友!)

在论坛,你也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为你提供以前解决此问题的讨论串。但不要依赖这种关照,提问前应该先搜索一下旧文。

通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为:

你不应该因此不爽;依照黑客的标准,他已经表示了对你一定程度的关注,而没有对你的要求视而不见。你应该对他祖母般的慈祥表示感谢。

如果还是搞不懂

如果你看不懂回应,别立刻要求对方解释。像你以前试着自己解决问题时那样(利用手册,FAQ,网络,身边的高手),先试着去搞懂他的回应。如果你真的需要对方解释,记得表现出你已经从中学到了点什么。

比方说,如果我回答你:看来似乎是 zentry 卡住了;你应该先清除它。,然后,这是一个很糟的后续问题回应:zentry 是什么? 的问法应该是这样:哦~~~我看过说明了但是只有 -z 和 -p 两个参数中提到了 zentries,而且还都没有清楚的解释如何清除它。你是指这两个中的哪一个吗?还是我看漏了什么?

处理无礼的回应

很多黑客圈子中看似无礼的行为并不是存心冒犯。相反,它是直截了当,一针见血式的交流风格,这种风格更注重解决问题,而不是使人感觉舒服而却模模糊糊。

如果你觉得被冒犯了,试着平静地反应。如果有人真的做了出格的事,邮件列表、新闻群组或论坛中的前辈多半会招呼他。如果这没有发生而你却发火了,那么你发火对象的言语可能在黑客社区中看起来是正常的,而将被视为有错的一方,这将伤害到你获取信息或帮助的机会。

另一方面,你偶尔真的会碰到无礼和无聊的言行。与上述相反,对真正的冒犯者狠狠地打击,用犀利的语言将其驳得体无完肤都是可以接受的。然而,在行事之前一定要非常非常的有根据。纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔,黑客们自己莽撞地越线的情况并不鲜见。如果你是新手或外人,避开这种莽撞的机会并不高。如果你想得到的是信息而不是消磨时光,这时最好不要把手放在键盘上以免冒险。

(有些人断言很多黑客都有轻度的自闭症或亚斯伯格综合症,缺少用于润滑人类社会正常交往所需的神经。这既可能是真也可能是假的。如果你自己不是黑客,兴许你认为我们脑袋有问题还能帮助你应付我们的古怪行为。只管这么干好了,我们不在乎。我们喜欢我们现在这个样子,并且通常对病患标记都有站得住脚的怀疑。)

Jeff Bigler 的观察总结和这个相关也值得一读 (tact filters)。

在下一节,我们会谈到另一个问题,当行为不当时所会受到的冒犯

如何避免扮演失败者

在黑客社区的论坛中,你以本指南所描述的或类似的方式,可能会有那么几次搞砸了。而你会在公开场合中被告知你是如何搞砸的,也许攻击的言语中还会带点夹七夹八的颜色。

这种事发生以后,你能做的最糟糕的事莫过于哀嚎你的遭遇、宣称被言语攻击、要求道歉、高声尖叫、憋闷气、威胁诉诸法律、向其雇主报怨、不去关马桶盖等等。相反地,你该这么做:

熬过去,这很正常。事实上,它是有益健康且合理的。

社区的标准不会自行维持,它们是通过参与者积极而公开地执行来维持的。不要哭嚎所有的批评都应该通过私下的邮件传送,它不是这样运作的。当有人评论你的一个说法有误或者提出不同看法时,坚持声称受到个人攻击也毫无益处,这些都是失败者的态度。

也有其它的黑客论坛,受过高礼节要求的误导,禁止参与者张贴任何对别人帖子挑毛病的消息,并声称如果你不想帮助用户就闭嘴。 结果造成有想法的参与者纷纷离开,这么做只会使它们沦为毫无意义的唠叨与无用的技术论坛。

夸张的讲法是:你要的是“友善”(以上述方式)还是有用?两个里面挑一个。

记着:当黑客说你搞砸了,并且(无论多么刺耳)告诉你别再这样做时,他正在为关心他的社区而行动。对他而言,不理你并将你从他的生活中滤掉更简单。如果你无法做到感谢,至少要表现得有点尊严,别大声哀嚎,也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者,就指望别人像对待脆弱的洋娃娃那样对你。

有时候,即使你没有搞砸(或者只是在他的想像中你搞砸了),有些人也会无缘无故地攻击你本人。在这种情况下,抱怨倒是真的会把问题搞砸。

这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙,要么就是测试你是否真会搞砸的心理专家。其它读者要么不理睬,要么用自己的方式对付他们。这些来找麻烦的人在给他们自己找麻烦,这点你不用操心。

也别让自己卷入口水战,最好不要理睬大多数的口水战 —— 当然,这是在你检验它们只是口水战,并且未指出你有搞砸的地方,同时也没有巧妙地将问题真正的答案藏于其后(这也是有可能的)。

不该问的问题

以下是几个经典蠢问题,以及黑客没回答时心中所想的:

问题:我能在哪找到 X 程序或 X 资源?

问题:我怎样用 X 做 Y?

问题:如何设定我的 shell 提示?

问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗?

问题:我的程序/设定/SQL 语句没有用

问题:我的 Windows 电脑有问题,你能帮我吗?

问题:我的程序不会动了,我认为系统工具 X 有问题

问题:我在安装 Linux(或者 X )时有问题,你能帮我吗?

问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢?


问题:我能在哪找到 X 程序或 X 资源?

回答:就在我找到它的地方啊,白痴 —— 搜索引擎的那一头。天哪!难道还有人不会用 Google 吗?

问题:我怎样用 X 做 Y?

回答:如果你想解决的是 Y ,提问时别给出可能并不恰当的方法。这种问题说明提问者不但对 X 完全无知,也对 Y 要解决的问题糊涂,还被特定形势禁锢了思维。最好忽略这种人,等他们把问题搞清楚了再说。

问题:如何设定我的 shell 提示??

回答:如果你有足够的智慧提这个问题,你也该有足够的智慧去 RTFM,然后自己去找出来。

问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗?

回答:试试看就知道了。如果你试过,你就知道了答案,就不用浪费我的时间了。

问题:我的{程序/设定/SQL 语句}没有用

回答:这不算是问题吧,我对要我问你二十个问题才找得出你真正问题的问题没兴趣 —— 我有更有意思的事要做呢。在看到这类问题的时候,我的反应通常不外如下三种

问题:我的 Windows 电脑有问题,你能帮我吗?

回答:能啊,扔掉微软的垃圾,换个像 Linux 或 BSD 的开源操作系统吧。

注意:如果程序有官方版 Windows 或者与 Windows 有互动(如 Samba),你可以问与 Windows 相关的问题,只是别对问题是由 Windows 操作系统而不是程序本身造成的回复感到惊讶, 因为 Windows 一般来说实在太烂,这种说法通常都是对的。

问题:我的程序不会动了,我认为系统工具 X 有问题

回答:你完全有可能是第一个注意到被成千上万用户反复使用的系统调用与函数库文件有明显缺陷的人,更有可能的是你完全没有根据。不同凡响的说法需要不同凡响的证据,当你这样声称时,你必须有清楚而详尽的缺陷说明文件作后盾。

问题:我在安装 Linux(或者 X )时有问题,你能帮我吗?

回答:不能,我只有亲自在你的电脑上动手才能找到毛病。还是去找你当地的 Linux 使用群组者寻求实际的指导吧(你能在这儿找到用户群组的清单)。

注意:如果安装问题与某 Linux 的发行版有关,在它的邮件列表、论坛或本地用户群组中提问也许是恰当的。此时,应描述问题的准确细节。在此之前,先用 Linux所有被怀疑的硬件作关键词仔细搜索。

问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢?

回答:想要这样做,说明了你是个卑鄙小人;想找个黑客帮你,说明你是个白痴!

好问题与蠢问题

最后,我将透过举一些例子,来说明怎样聪明的提问;同一个问题的两种问法被放在一起,一种是愚蠢的,另一种才是明智的。

蠢问题

我可以在哪儿找到关于 Foonly Flurbamatic 的资料?

这种问法无非想得到 STFW 这样的回答。

聪明问题

我用 Google 搜索过 "Foonly Flurbamatic 2600",但是没找到有用的结果。谁知道上哪儿去找对这种设备编程的资料?

这个问题已经 STFW 过了,看起来他真的遇到了麻烦。

蠢问题

我从 foo 项目找来的源码没法编译。它怎么这么烂?

他觉得都是别人的错,这个傲慢自大的提问者。

聪明问题

foo 项目代码在 Nulix 6.2 版下无法编译通过。我读过了 FAQ,但里面没有提到跟 Nulix 有关的问题。这是我编译过程的记录,我有什么做的不对的地方吗?

提问者已经指明了环境,也读过了 FAQ,还列出了错误,并且他没有把问题的责任推到别人头上,他的问题值得被关注。

蠢问题

我的主机板有问题了,谁来帮我?

某黑客对这类问题的回答通常是:好的,还要帮你拍拍背和换尿布吗?,然后按下删除键。

聪明问题

我在 S2464 主机板上试过了 X 、 Y 和 Z ,但没什么作用,我又试了 A 、 B 和 C 。请注意当我尝试 C 时的奇怪现象。显然 florbish 正在 grommicking,但结果出人意料。通常在 Athlon MP 主机板上引起 grommicking 的原因是什么?有谁知道接下来我该做些什么测试才能找出问题?

这个家伙,从另一个角度来看,值得去回答他。他表现出了解决问题的能力,而不是坐等天上掉答案。

在最后一个问题中,注意告诉我答案给我启示,指出我还应该做什么诊断工作之间微妙而又重要的区别。

事实上,后一个问题源自于 2001 年 8 月在 Linux 内核邮件列表(lkml)上的一个真实的提问。我(Eric)就是那个提出问题的人。我在 Tyan S2464 主板上观察到了这种无法解释的锁定现象,列表成员们提供了解决这一问题的重要信息。

通过我的提问方法,我给了别人可以咀嚼玩味的东西;我设法让人们很容易参与并且被吸引进来。我显示了自己具备和他们同等的能力,并邀请他们与我共同探讨。通过告诉他们我所走过的弯路,以避免他们再浪费时间,我也表明了对他们宝贵时间的尊重。

事后,当我向每个人表示感谢,并且赞赏这次良好的讨论经历的时候,一个 Linux 内核邮件列表的成员表示,他觉得我的问题得到解决并非由于我是这个列表中的人,而是因为我用了正确的方式来提问。

黑客从某种角度来说是拥有丰富知识但缺乏人情味的家伙;我相信他是对的,如果我个乞讨者那样提问,不论我是谁,一定会惹恼某些人或者被他们忽视。他建议我记下这件事,这直接导致了本指南的出现。

如果得不到回答

如果仍得不到回答,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。没有回应不代表你被忽视,虽然不可否认这种差别很难区分。

总的来说,简单地重复张贴问题是个很糟的点子。这将被视为无意义的喧闹。有点耐心,知道你问题答案的人可能生活在不同的时区,可能正在睡觉,也有可能你的问题一开始就没有组织好。

你可以通过其他渠道获得帮助,这些渠道通常更适合初学者的需要。

有许多网上的以及本地的用户群组,由热情的软件爱好者(即使他们可能从没亲自写过任何软件)组成。通常人们组建这样的团体来互相帮助并帮助新手。

另外,你可以向很多商业公司寻求帮助,不论公司大还是小。别为要付费才能获得帮助而感到沮丧!毕竟,假使你的汽车发动机汽缸密封圈爆掉了 —— 完全可能如此 —— 你还得把它送到修车铺,并且为维修付费。就算软件没花费你一分钱,你也不能强求技术支持总是免费的。

对像是 Linux 这种大众化的软件,每个开发者至少会对应到上万名用户。根本不可能由一个人来处理来自上万名用户的求助电话。要知道,即使你要为这些协助付费,和你所购买的同类软件相比,你所付出的也是微不足道的(通常封闭源代码软件的技术支持费用比开源软件的要高得多,且内容也没那么丰富)。

如何更好地回答问题

态度和善一点。 问题带来的压力常使人显得无礼或愚蠢,其实并不是这样。

对初犯者私下回复。 对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找常见问题都不知道。

如果你不确定,一定要说出来! 一个听起来权威的错误回复比没有还要糟,别因为听起来像个专家很好玩,就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。

如果帮不了忙,也别妨碍他。 不要在实际步骤上开玩笑,那样也许会毁了提问者的设置 —— 有些可怜的呆瓜会把它当成真的指令。

试探性的反问以引出更多的细节。 如果你做得好,提问者可以学到点东西 —— 你也可以。试试将蠢问题转变成好问题,别忘了我们都曾是新手。

尽管对那些懒虫抱怨一声 RTFM 是正当的,但能给出文档的链接(即使只是建议个 Google 搜索关键词)会更好。

如果你决定回答,就请给出好的答案。 当别人正在用错误的工具或方法时别建议笨拙的权宜之计(workaround),应推荐更好的工具,重新界定问题。

正面地回答问题! 如果这个提问者已经很深入的研究而且也表明已经试过 X 、 Y 、 Z 、 A 、 B 、 C 但没得到结果,回答 试试看 A 或是 B 或者 试试 X 、 Y 、 Z 、 A 、 B 、 C 并附上一个链接一点用都没有。

帮助你的社区从问题中学习。 当回复一个好问题时,问问自己如何修改相关文件或常见问题文件以免再次解答同样的问题?,接着再向文件维护者发一份补丁。

如果你在研究一番后才作出了回答,展现你的技巧而不是直接端出结果。毕竟授人以鱼不如授人以渔

相关资源

如果你需要个人电脑、Unix 系统和网络如何运作的基础知识,参阅 Unix 系统和网络基本原理

当你发布软件或补丁时,试着按软件发布实践操作。

鸣谢

Evelyn Mitchel 贡献了一些愚蠢问题例子并启发了编写如何更好地回答问题这一节, Mikhail Ramendik 贡献了一些特别有价值的建议和改进。

- + \ No newline at end of file diff --git a/docs/other/changelog.html b/docs/other/changelog.html index fc1dcb7b..284eb5b7 100644 --- a/docs/other/changelog.html +++ b/docs/other/changelog.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

1.0.0 (2023-03-23)

这是 crane4j 的第一个正式版本,如果遇到问题可以在群内或 issues 中反馈,作者会尽快响应。

具体内容参见:Milestone

Feature

Refactor

Test

docs

chore

1.1.0 (2023-03-30)

这一个重构与增强版本,增强了一些新功能,并且调整了一部分 api 的使用方式。

具体内容参见:Milestone

Feature

Refactor

docs

1.2.0 (2023-04-09)

这一个重构版本,增强了一些新功能,并且调整了 MybatisPlus 扩展的引入方式,如果已经使用了 MybatisPlus 插件,则需要按文档重新引入。

具体内容参见:Milestone

Feature

Refactor

Fix

1.3.0-ALPHA (2023-05-10)

这是 1.3.0 的预览版本,重构和增强了一些已有功能,并添加了一些新的功能。

其中,基于新特性添加基于接口代理的填充方法,crane4j 将更好的支持处理 JSONObjectMap 类型的非 JavaBean 对象。

具体内容参见:Milestone

Feature

Refactor

Test

Doc

2.0.0-ALPHA (2023-07-08)

这是 2.0.0 的预览版本,基于 1.3.0-ALPHA 升级而来。

项目进行了一次范围较大的重构,优化了大量的代码与逻辑,部分 API 可能不向下兼容。

具体内容参见:Milestone

Feature

Refactor

Doc

2.0.0-BATE (2023-07-30)

这是 2.0.0 的第二个预览版本,在上一个版本的基础上修复了一些 bug,并添加了一些新功能。

具体内容参见:Milestone

Fix

Refactor

Feature

2.0.0 (2023-08-06)

这是 2.0.0 的正式版本,相对最近的一个正式版本 1.2.0 做了大幅度的重构,优化了很多旧功能,并且添加了较多新特性。

具体内容参见:Milestone

Feature

Refactor

Fix

Doc

2.1.0 (2023-08-21)

这是一个正常迭代版本,相对上一个版本,修复了一些问题,并调整了关于枚举和常量扫描相关的功能。

具体内容参见:Milestone

Feature

Fix

Refactor

Doc

2.2.0 (2023-09-25)

这是一个正常迭代版本,主要修复了一些问题,并添加了少量新功能。

具体内容参见:Milestone

Feature

Fix

Refactor

2.3.0 (2023-10-18)

这是一个正常迭代版本,主要修复了一些问题,并添加了少量新功能。

具体内容参见:Milestone

Feature

Fix

Refactor

Doc

2.3.1 (2023-12-10)

这是一个 Bug 修复版本,请尽快升级。

Fix

2.4.0 (2024-01-15)

这是一个功能迭代版本,重构并大幅度增强了缓存功能,并修复了一些问题。

具体内容参见:Milestone

Feature

2.5.0 (2024-02-01)

这是一个功能迭代版本,修复了 crane4j 与 SpringBoot 集成的一些问题,完善了文档与代码注释,并优化了一些功能的使用方式。

具体内容参见:Milestone

Feature

Refactor

Fix

2.6.0 (2024-02-23)

这是一个新特性版本,添加了对条件操作的支持,并额外支持了常量和键值两种数据源容器的选项式配置。

具体内容参见:Milestone

Feature

Refactor

Fix

2.6.1 (2024-03-13)

这是一个 Bug 修复版本,请尽快升级。

Fix

2.6.2 (2024-03-27)

这是一个 Bug 修复版本,请尽快升级。

Fix

2.7.0 (2024-04-08)

这是一个新特性版本,修复了一些问题,重构了一些底层组件,提高了字段映射的执行性能,并添加了键值解析器、字段映射的字面量配置的新特性。

具体内容参见:Milestone

Feature

Refactor

Fix

Doc

2.8.0 (2024-05-07)

这是一个新特性版本,修复了一些问题,优化了一些功能。

具体内容参见:Milestone

Feature

Fix

Refactor

2.8.1 (2024-06-05)

这是一个 Bug 修复版本,请尽快升级。

Fix

2.8.2 (2024-06-16)

这是一个 Bug 修复版本,请尽快升级。

Fix

2.9.0 (2024-06-30)

这是一个新特性版本,修复了一些已知问题,添加了一些新功能。

具体内容参见:Milestone

Feature

Fix

Refactor

- + \ No newline at end of file diff --git a/docs/other/community.html b/docs/other/community.html index 063f6ad6..d9706b9a 100644 --- a/docs/other/community.html +++ b/docs/other/community.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

如果在使用中遇到了问题、发现了 bug ,又或者是有什么好点子,欢迎提出 issue 或 pr,或者可以加作者微信让作者拉进群:

image-20230224232024009
- + \ No newline at end of file diff --git a/docs/other/configuration_properties.html b/docs/other/configuration_properties.html index 5eeece72..550dc8a9 100644 --- a/docs/other/configuration_properties.html +++ b/docs/other/configuration_properties.html @@ -8,10 +8,10 @@ - + - + @@ -41,7 +41,7 @@ operate-entity-packages: cn.crane4j.springboot.config.*

5.是否忽略 key 值为 null 的操作

在默认情况下,即使 key 值为 null,crane4j 依然认为其为有效值,并尝试通过容器获取对应的数据。

举个例子,你定义了一个根据 id 查询用户信息并填充数据的操作,但是当 id 为 null,时 crane4j 依然会拿着 null 去调用查询用户信息的方法。

在 2.5.0 即以上版本,如果你认为 null 值都是无效值,当 key 值为 null 时需要忽略这个操作,那么可以配置:

yml
crane4j:
  # 当 key 值为 null 时忽略此操作
  ignore-null-key-when-assembling: true

该值默认为 true。

- + \ No newline at end of file diff --git a/docs/use_case/example_additional_action.html b/docs/use_case/example_additional_action.html index 4b131c33..e898536b 100644 --- a/docs/use_case/example_additional_action.html +++ b/docs/use_case/example_additional_action.html @@ -8,10 +8,10 @@ - + - + @@ -37,7 +37,7 @@ } } }

具体内容可参见:组件的回调方法 一节。

- + \ No newline at end of file diff --git a/docs/use_case/example_exclude_operation.html b/docs/use_case/example_exclude_operation.html index 1c416ec0..606941ad 100644 --- a/docs/use_case/example_exclude_operation.html +++ b/docs/use_case/example_exclude_operation.html @@ -8,10 +8,10 @@ - + - + @@ -90,7 +90,7 @@ || Objects.nonNull(this.id3); } }

在上述代码中,当 id3 属性为空时,不执行对应的填充操作。

关于此类回调接口,具体可参见 组件的回调接口 一节。

- + \ No newline at end of file diff --git a/docs/use_case/example_fill_enum.html b/docs/use_case/example_fill_enum.html index 98aaa3e3..b371d44a 100644 --- a/docs/use_case/example_fill_enum.html +++ b/docs/use_case/example_fill_enum.html @@ -8,10 +8,10 @@ - + - + @@ -86,7 +86,7 @@ private Integer genderCode; private String genderName; }

其他部分与之前完全一样。

- + \ No newline at end of file diff --git a/docs/use_case/example_fill_method.html b/docs/use_case/example_fill_method.html index 87da8cc2..dc542a5e 100644 --- a/docs/use_case/example_fill_method.html +++ b/docs/use_case/example_fill_method.html @@ -8,10 +8,10 @@ - + - + @@ -104,7 +104,7 @@ private String userAddress; private Integer userAge; }

其他配置完全不变。

- + \ No newline at end of file diff --git a/docs/use_case/example_fill_relations.html b/docs/use_case/example_fill_relations.html index e3cb369f..579b41f7 100644 --- a/docs/use_case/example_fill_relations.html +++ b/docs/use_case/example_fill_relations.html @@ -8,10 +8,10 @@ - + - + @@ -107,7 +107,7 @@ private Integer thirdDeptId; private String thirdDeptName; }

TIP

关于方法容器的使用和配置,请参见 方法容器 一节。

- + \ No newline at end of file diff --git a/docs/use_case/example_fill_wrapped_return_value.html b/docs/use_case/example_fill_wrapped_return_value.html index 802e3ed2..ae5335bb 100644 --- a/docs/use_case/example_fill_wrapped_return_value.html +++ b/docs/use_case/example_fill_wrapped_return_value.html @@ -8,10 +8,10 @@ - + - + @@ -45,7 +45,7 @@ // Result.data -> Page.list -> List<UserVo> return new Result<>(userService.pageByIds(ids, pageDTO)); }

image-20231013230948877

- + \ No newline at end of file diff --git a/docs/use_case/example_multi_datasource.html b/docs/use_case/example_multi_datasource.html index b66b8f31..1fe2c73d 100644 --- a/docs/use_case/example_multi_datasource.html +++ b/docs/use_case/example_multi_datasource.html @@ -8,10 +8,10 @@ - + - + @@ -257,7 +257,7 @@ private String name; private String type; } - + \ No newline at end of file diff --git a/docs/use_case/example_multi_key.html b/docs/use_case/example_multi_key.html index e7be1100..2eaac5ed 100644 --- a/docs/use_case/example_multi_key.html +++ b/docs/use_case/example_multi_key.html @@ -8,10 +8,10 @@ - + - + @@ -129,7 +129,7 @@ .stream().collect(Collectors.toMap<>(DictVO::getId, dict -> dict)); } }

具体参见 数据源容器提供者 一节;

- + \ No newline at end of file diff --git a/docs/user_guide/basic_concept.html b/docs/user_guide/basic_concept.html index 51444a4e..ae1be43a 100644 --- a/docs/user_guide/basic_concept.html +++ b/docs/user_guide/basic_concept.html @@ -8,10 +8,10 @@ - + - + @@ -85,7 +85,7 @@ private Integer customerId; private String customerName; private String customerType;

两者效果一致,各有优劣,前者的缺点就是后者的优点,反之亦然,你可以根据情况选择:

选项式组合式
支持的数据源类型枚举 (@AssembleEnum)
常量 (@AssembleConstant)
方法(@AssembleMethod
键值映射(@AssembleKey
ORM 框架 (目前仅支持 MybatisPlus,对应注解为@AssembleMp)
所有类型的数据源
优点配置方便,且便于集中管理灵活度高,便于复用相同的数据源
缺点即使数据源相同也需要重复配置配置较为零散

选项式配置的注解基于注解解析器 OperationAnnotationHandler 实现,你也可以添加自己的注解处理器以便支持自定义注解。具体请参见后文 “注解处理器” 一节。

此外,基于 Spring 的 MergedAnnotation 和 Hutool 的 SynthesizedAnnotation ,crane4j 也支持组合式注解,具体参见后文的 “组合注解” 一节。

- + \ No newline at end of file diff --git a/docs/user_guide/faq.html b/docs/user_guide/faq.html index f9c93a13..e52ce6be 100644 --- a/docs/user_guide/faq.html +++ b/docs/user_guide/faq.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

FAQ

以下是一些常见问题与对应的解决方案。如果当你遇到问题时,可以先尝试在这里寻找解决方案。

填充不生效?

  • 确认在 @AssembleXXX 注解中正确配置了 containerprop / props 属性;
  • 确认操作涉及的属性存在,且都有相应的 settergetter 方法;
  • 确认目标对象对应的 key 属性值不为空;
  • 确认指定的数据源容器确实有根据 key 值列表返回非空集合;
  • 确认通过 BeanOperationParser 解析类后,得到的 BeanOperations 中的 AssembleOperation 列表中有该 key 属性对应的操作配置;

当确认上述步骤皆无问题后,你可以尝试在源码中 cn.crane4j.core.executor.handler.AbstractAssembleOperationHandler 类的 doProcess 方法中添加断点:

  • 如果未进入断点,则说明该操作配置未能生效,请重新确认上述原因;
  • 进入 collectToEntities:在这一步,确认你填充的对象是否都已经被收集到,且 key 值被正确地获取;
  • 进入 getSourcesFromContainer:在这一步,确认通过上述 key 值能够正确的从数据源获取到数据;
  • 进入 getTheAssociatedSource:在这一步,确认待填充的对象可以通过 key 值获得相应的数据源对象;
  • 进入 completeMapping:在这一步,确认 crane4j 是否按你的配置正确的将数据源对象的属性值映射到待填充的对象上;

如果仍然无法解决,可以在 issues 中或者相关交流群中反馈。

如何实现嵌套填充?

在需要嵌套填充的属性上添加 @Disassemble 注解即可,具体参见 填充嵌套对象

如何实现级联填充?

参见 示例:如何级联填充 一节。

如何处理一对多的情况?

通过 @AssembleXXX 注解中的 handlerhandlerType 属性指定装配处理器为一对多装配处理器 OneToManyAssembleOperationHandler 类型或名称(在 Spring 中即为 bean 名称)即可。

具体参见 一对多&多对多 中一对多装配一节。

键字段可以是按分隔符拼接的字符串吗?

通过 @AssembleXXX 注解中的 handlerhandlerType 属性指定装配处理器为一对多装配处理器 ManyToManyAssembleOperationHandler 的类型或名称(在 Spring 中即为 bean 名称)即可。

具体参见 一对多&多对多 中多对多装配一节。

键字段可以是集合或数组吗?

同上,通过 @AssembleXXX 注解中的 handlerhandlerType 属性指定装配处理器为一对多装配处理器 ManyToManyAssembleOperationHandler 的类型或名称(在 Spring 中即为 bean 名称)即可。

具体参见 一对多&多对多 中多对多装配一节。

为什么使用异步执行器的时候报错?

默认情况下,并没有注册异步操作执行器 AsyncBeanOperationExecutor,用户需要自行创建后再将其注册到全局配置中。

具体参见 基本概念 中异步执行器一节。

怎么刷新容器的数据 ?

  • 如果容器是 ConstantContainer ,直接通过 get 方法获取缓存的 Map 集合后直接修改即可;
  • 获取 Crane4jGlobalConfigurationContainerManager 后,通过 registerContainer 使用命名空间相同的容器对旧容器进行覆盖;

怎么忽略掉某些字段不进行填充?

参见 示例:如何在执行时排除某一些操作 一节。

为什么 @ContainerMethod 注解不生效?

如果是非 Spring 环境,则需要手动的通过 ContainerMethodAnnotationProcessor 扫描指定类并向全局配置注册扫描获取的方法容器。

如果是 Spring 环境,请确保:

  • 容器中存在 BeanMethodContainerRegistrar 后处理器;
  • 被注解的方法所在类被 Spring 扫描,且容器中存在对应的 bean;
  • 被注解的方法所在类在 BeanMethodContainerRegistrar 后处理器初始化后才加载;

为什么 @AutoOperate 注解不生效?

如果是非 Spring 环境,则需要手动的通过 MethodArgumentAutoOperateSupportMethodResultAutoOperateSupport 拦截方法调用。

如果是 Spring 环境,请确保:

  • 开启了 SpringAOP 功能;
  • 容器中存在 MethodResultAutoOperateAdvisorMethodArgumentAutoOperateAdvisor 通知器;
  • 被注解的方法所在类被 Spring 扫描、容器中存在对应的 bean 且被 Spring 代理;

为什么引了 guava 和 hutool ?

不想要重复造轮子,有些组件直接使用成熟的开源库比自己再写一套更可靠。

此外,crane4j 仅在有限的地方使用了这些工具类库:

  • guava :使用了缓存组件 Cache 与用于构造 WeakConcurrentMapMapMaker
  • hutool:使用了类型转换取组件 Convert,如果没用到 HutoolConverterManager 可以在依赖中排除;

支持 jdk9+ / springboot3 吗?

支持。

容器可以做一些自定义的初始化/销毁操作吗?

实现 Container.Lifecycle 接口即可,具体参见 容器的生命周期

可以支持同时根据多个 key 字段填充数据吗?

可以,具体参照 示例:如何通过多个Key关联数据

启动应用报错 “No ServletContext set”

在 2.4.0 及更早的版本中,当你在 web 环境中通过 @EnableCrane4j 注解引入框架后,启动项目有可能会出现 “No ServletContext set” 问题,关于该问题的解决方案参见:在启动类添加 @EnableCrane4j 注解后,启动应用报错 “No ServletContext set”

你可以直接升级 crane4j 到 2.5.0 或更高版本解决这个问题。

可以多线程填充吗?

你可以通过在手动或自动装配时指定使用异步执行器来实现多线程填充的效果,具体参见:

- + \ No newline at end of file diff --git a/docs/user_guide/getting_started/getting_started_abstract.html b/docs/user_guide/getting_started/getting_started_abstract.html index cd403171..a4914317 100644 --- a/docs/user_guide/getting_started/getting_started_abstract.html +++ b/docs/user_guide/getting_started/getting_started_abstract.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

快速开始

crane4j 推荐与 spring/springboot 集成使用,不过在非 Spring 环境中也提供了很好的支持。

两者区在主要的功能和配置上完全一致,不过在非 Spring 环境中,由于缺少依赖注入和自动装配功能的支持,因此一些组件或扩展点需要手动启用。不过不必担心,涉及到的功能都会在对应的文档上进行强调。

接下来,我们引导你通过一个简单的示例,了解如何在你的本地项目中整合与使用 crane4j:

当你在本地成功运行示例后,你可以选择阅读后续章节,进一步了解 crane4j 提供的功能,或者直接查看 “场景用例” 部分内容,尝试参考用例直接在项目中使用。

- + \ No newline at end of file diff --git a/docs/user_guide/getting_started/getting_started_with_spring.html b/docs/user_guide/getting_started/getting_started_with_spring.html index 72607306..e7fa0123 100644 --- a/docs/user_guide/getting_started/getting_started_with_spring.html +++ b/docs/user_guide/getting_started/getting_started_with_spring.html @@ -8,10 +8,10 @@ - + - + @@ -140,7 +140,7 @@ private String name; } } - + \ No newline at end of file diff --git a/docs/user_guide/getting_started/getting_started_with_springboot.html b/docs/user_guide/getting_started/getting_started_with_springboot.html index 05735768..0dd97050 100644 --- a/docs/user_guide/getting_started/getting_started_with_springboot.html +++ b/docs/user_guide/getting_started/getting_started_with_springboot.html @@ -8,10 +8,10 @@ - + - + @@ -135,7 +135,7 @@ private String name; } } - + \ No newline at end of file diff --git a/docs/user_guide/getting_started/getting_started_without_spring.html b/docs/user_guide/getting_started/getting_started_without_spring.html index 957865ed..73af56b9 100644 --- a/docs/user_guide/getting_started/getting_started_without_spring.html +++ b/docs/user_guide/getting_started/getting_started_without_spring.html @@ -8,10 +8,10 @@ - + - + @@ -75,7 +75,7 @@ private String name; } } - + \ No newline at end of file diff --git a/docs/user_guide/operational_principle.html b/docs/user_guide/operational_principle.html index a2fd2507..228d1769 100644 --- a/docs/user_guide/operational_principle.html +++ b/docs/user_guide/operational_principle.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

原理

crane4j 的整体执行流程可大致分为两阶段:

  • 配置解析阶段:根据 AnnotatedElement (一般是类或者方法)解析获得对应的操作配置对象 BeanOperations,通过该配置对象我们可以知道一个对象中有多少个字段需要处理,要怎么处理,在 BeanOperation 里面,一个 key 字段对应的一个操作会被转为一个 Operation 对象;
  • 操作执行阶段:输入要处理的对象,与该对象类型对应操作配置,然后交由操作执行器 BeanOperationExecutor 生成待完成的任务 Execution,并最终分发给操作执行器 OperationHandlerOperationHandler 会根据配置从数据源获得对象,并完成具体的字段映射;

简而言之,和 Spring 类似,配置解析阶段最终的产物是 BeanOperations,而执行阶段所有的组件都围绕 BeanOperations 的配置执行。

operation_principle

上图描述了一个 Foo 对象,是如何通过 id 获得数据源,并最终将数据源中的 userName 字段值映射到 Fooname 字段上的过程。

- + \ No newline at end of file diff --git a/docs/user_guide/what_is_crane4j.html b/docs/user_guide/what_is_crane4j.html index c8b49a54..d39dbe59 100644 --- a/docs/user_guide/what_is_crane4j.html +++ b/docs/user_guide/what_is_crane4j.html @@ -8,10 +8,10 @@ - + - + @@ -47,7 +47,7 @@ private Integer genderCode; private String genderName; }

等到方法调用后,crane4j 将会自动地完成填充,效果与执行之前的代码完全一致。

3.为什么需要 crane4j?

字段填充是一个广泛存在的需求,而 crane4j 则是针对它的一套完善的解决方案。

crane4j 有着详细的注释和文档,完善的测试用例,灵活而直观的 API,通过引入 crane4j,你可以在避免“重复造轮子”的前提下,通过更少的代码搞定各种关联字段填充的需求。并且,你还可以通过 crane4j 处理比示例更复杂的各种情况,包括且不限于下述场景:

你所面临的场景越多样化,那么 crane4j 就可能能够带给你越多的便利。

4.如何开始使用?

如果你是第一次接触此类框架的新用户,那么推荐你先阅读 “基本概念” 建立对框架的初步认知,然后跟着 “快速开始” 一节尝试在本地编写一个可运行的最小示例,最后再根据情况继续阅读 “场景示例” 或其他内容。

如果你已经使用过类似的框架,你可以直接阅读 “快速开始”,然后根据需要阅读后续的 “场景示例” 即可。

- + \ No newline at end of file diff --git a/website/docs/basic/operation_sort.md b/website/docs/basic/operation_sort.md index f24ee871..f50f8a5b 100644 --- a/website/docs/basic/operation_sort.md +++ b/website/docs/basic/operation_sort.md @@ -84,7 +84,9 @@ public List listStudent(List ids) { ## 3.与嵌套填充配合使用 -出于批量操作的性能考虑,拆卸操作(即使用 `@Disassemble` 声明的嵌套填充操作)总是先于装配操作执行,因此你**无法通过类似下面这种方式来指定两者的执行顺序**: +### 3.1.平铺操作执行器 + +出于批量操作的性能考虑,当使用默认的操作执行器时,拆卸操作(即使用 `@Disassemble` 声明的嵌套填充操作)总是先于装配操作执行,因此你**无法通过类似下面这种方式来指定两者的执行顺序**: ~~~java public class Dept { @@ -125,10 +127,65 @@ public List listByIds(Collection ids) { :::tip +- 关于执行器,可参见 [基本概念](./../user_guide/basic_concept.md) 中操作执行器部分; - 关于嵌套填充,具体可参见 [嵌套嵌套对象](./declare_disassemble_operation.md); - 关于使用 `@AutoOperate` 配置自动填充,具体可参见 [触发填充操作](./trigger_operation.md) 中自动填充这一节; ::: +### 3.2.递归操作执行器 + +在 2.9.0 及以上版本,新增了三个支持递归填充的操作执行器,它们支持先执行装配操作,再执行拆卸操作,然后再对提取出来的嵌套对象执行装配操作……直到递归完成整个填充过程: + +- `DisorderedBeanOperationRecursiveExecutor`:递归版本的 `DisorderedBeanOperationExecutor`; +- `OrderedBeanOperationRecursiveExecutor`:递归版本的 `OrderedBeanOperationExecutor` +- `AsyncBeanOperationRecursiveExecutor`:递归版本的 `AsyncBeanOperationExecutor`; +它们的操作逻辑非常类似于树的递归构件过程,你可以基于下面的示例感受一下: + +~~~java +@Component +public class NodeService { + @ContainerMethod(namespace = "children", resultType = Node.class) + public List selectChildrenNodesById(String nodeId) { + // 根据节点ID查询子节点 + } +} + +@Data +@RequiredArgsConstructor +public static class Node { + // 根据 ID 填充子节点,然后再递归子节点重复该填充过程 + @Assemble(container = "children", prop = ":children") + private final Integer id; + private String name; + @Disassemble(type = Foo.class) + private List children; +} + +@Service +public class ExampleService { + + // 指定执行器为无序的递归执行器 + @AutoOperate(executorType = OrderedBeanOperationRecursiveExecutor.class) + public Node getTree(String id) { + return new Node(0); + } +} +~~~ +在上述代码中,你只需返回一个根节点,执行器将根据你的配置为你完成树的构建。 + +:::tip + +- 关于执行器,可参见 [基本概念](./../user_guide/basic_concept.md) 中操作执行器部分; +- 关于嵌套填充,具体可参见 [嵌套嵌套对象](./declare_disassemble_operation.md); +- 关于使用 `@AutoOperate` 配置自动填充,具体可参见 [触发填充操作](./trigger_operation.md) 中自动填充这一节; + +:::warning + +当前版本的递归执行器实际上是基于栈实现的,因此一般情况下不必担心栈溢出。 + +不过由于在每一层级都要进行查询,因此当层级过多的时候会比较影响性能,为了保证性能,请不要在非必要的场景使用该类型的执行器。 + +:::