提交 22391b5f 编写于 作者: M Mars Liu

add to map

上级 fc7afb4e
{
"node_id": "java-e5d307b8ce2049648b4afd9fecdb48b0",
"keywords": []
}
\ No newline at end of file
......@@ -2,5 +2,9 @@
"node_id": "java-0f1fc49b2e1c41368403ca2239810920",
"keywords": [],
"children": [],
"export": ["to_list.json"]
"export": [
"to_list.json",
"to_set.json",
"to_map.json"
]
}
\ No newline at end of file
{
"type": "code_options",
"author": "刘鑫",
"source": "to_map.md",
"notebook_enable": false
}
\ No newline at end of file
# Stream To Map
现有类型 Person 如下:
```java
public class Person{
private final int id;
private final String name;
public Person(int id, String name){
this.id = id;
this.name = name;
}
public int getId(){
return id;
}
public String getName(){
return name;
}
}
```
下面的程序将 `Stream<Person> people` 中的数据整理到一个 Map<Integer, String> 字典中,键和值分别对应 Person 类型的 id 和name。其中有错的是:
## 答案
```java
Map<Integer, String> dict = new Map();
people.collect(p ->{
dict.put(p.getId(), p.getName());
});
```
## 选项
### 常规收集器
```java
Map<Integer, String> dict = people().collect(Collectors.toMap(Person::getId, Person::getName));
```
### 朴素的过程化方法
```java
Map<Integer, String> dict = new HashMap<>();
people.forEach(p->{
dict.put(p.getId(), p.getName());
});
```
### 朴素的 for 循环,不推荐但是能用
```java
Map<Integer, String> dict = new HashMap<>();
for(var p: people.toList()){
dict.put(p.getId(), p.getName());
}
```
......@@ -4583,1618 +4583,11 @@
}
},
{
"Spring": {
"node_id": "java-b7646a9c26bb43c4aebfbf835cc2f701",
"keywords": [],
"children": [
{
"Spring IoC": {
"node_id": "java-9d799f3d92fe461a8bb6fd8aded28ac5",
"keywords": [],
"children": [
{
"Spring IoC概述": {
"keywords": [],
"children": [
{
"主动创建对象": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "主动创建对象"
}
},
{
"被动创建对象": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "被动创建对象"
}
},
{
"Spring IoC阐述": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "java-82114296d9b84100bafaf92d335a2e58",
"title": "Spring IoC概述"
}
},
{
"Spring IoC容器": {
"keywords": [],
"children": [
{
"Spring IoC容器的设计": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"Spring IoC容器的初始化和依赖注入": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"Spring Bean的生命周期": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
},
{
"装配Spring Bean": {
"node_id": "java-3c8077571f18440abb0daa20b89762f8",
"keywords": [],
"children": [
{
"依赖注入的3种方式": {
"keywords": [],
"children": [
{
"构造器注入": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "构造器注入"
}
},
{
"使用setter注入": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "使用setter注入"
}
},
{
"接口注入": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "java-2ec69188b9334cfa8639f45021536d06",
"title": "依赖注入的3种方式"
}
},
{
"装配Bean概述": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"通过XML配置装配Bean": {
"keywords": [],
"children": [
{
"装配简易值": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"装配集合": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"命名空间装配": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"通过注解装配Bean": {
"keywords": [],
"children": [
{
"使用@Component装配Bean": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"自动装配——@Autowired": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"自动装配的歧义性(@Primary和@Qualifier)": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"装载带有参数的构造方法类": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用@Bean装配Bean": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"注解自定义Bean的初始化和销毁方法": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"装配的混合使用": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用Profile": {
"keywords": [],
"children": [
{
"使用注解@Profile配置": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用XML定义Profile": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"启动Profile": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"点睛": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"演示": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"加载属性(properties)文件": {
"keywords": [],
"children": [
{
"使用注解方式加载属性文件": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用XML方式加载属性文件": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"条件化装配Bean": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"Bean的作用域": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用Spring表达式(Spring EL)": {
"keywords": [],
"children": [
{
"Spring EL相关的类": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"Spring EL运算": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
},
{
"面向切面编程": {
"node_id": "java-5e0f73f88d4448169d440cfe7d62a206",
"keywords": [],
"children": [
{
"一个简单的约定游戏": {
"keywords": [],
"children": [
{
"约定规则": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "约定规则"
}
},
{
"读者的代码": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "读者的代码"
}
},
{
"笔者的代码": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "java-0bc93af8b86343528c2fc1046b4f6c26",
"title": "一个简单的约定游戏"
}
},
{
"Spring AOP的基本概念": {
"keywords": [],
"children": [
{
"AOP的概念和使用原因": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"面向切面编程的术语": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"Spring对AOP的支持": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用@AspectJ注解开发Spring AOP": {
"keywords": [],
"children": [
{
"选择切点": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"创建切面": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"连接点": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"测试AOP": {
"keywords": [],
"children": [
{
"装配AOP": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用注解装配AOP": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"AOP避坑指南": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"环绕通知": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"织入": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"给通知传递参数": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"引入": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用XML配置开发Spring AOP": {
"keywords": [],
"children": [
{
"前置通知、后置通知、返回通知和异常通知": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"环绕通知": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"给通知传递参数": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"引入": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"经典Spring AOP应用程序": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"多个切面": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
},
{
"Spring数据库编程": {
"node_id": "java-e779ffbdf65e416583af01f10fdace0d",
"keywords": [],
"children": [
{
"传统的JDBC代码的弊端": {
"keywords": [],
"children": [],
"node_id": "java-c16acc9c6c024abfbb18c1f88896f8c7",
"title": "传统的JDBC代码的弊端"
}
},
{
"配置数据库资源": {
"keywords": [],
"children": [
{
"使用简单数据库配置": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "使用简单数据库配置"
}
},
{
"使用第三方数据库连接池": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用JNDI数据库连接池": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "配置数据库资源"
}
},
{
"JDBC代码失控的解决方案——jdbcTemplate": {
"keywords": [],
"children": [
{
"jdbcTemplate的增、删、查、改": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"执行多条SQL": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"jdbcTemplate的源码分析": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"Spring的缺点": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
},
{
"深入Spring数据库事务管理": {
"node_id": "java-95598f8cc5da42db99fae07c82b014c3",
"keywords": [],
"children": [
{
"Spring数据库事务管理器的设计": {
"keywords": [],
"children": [
{
"配置事务管理器": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "配置事务管理器"
}
},
{
"用Java配置方式实现Spring数据库事务": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "用Java配置方式实现Spring数据库事务"
}
}
],
"node_id": "java-771650ac7eaa45efa910a7432236f442",
"title": "Spring数据库事务管理器的设计"
}
},
{
"编程式事务": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"声明式事务": {
"keywords": [],
"children": [
{
"Transactional的配置项": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用XML进行配置事务管理器": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"事务定义器": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"声明式事务的约定流程": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"数据库的相关知识": {
"keywords": [],
"children": [
{
"数据库事务ACID特性": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"丢失更新": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"隔离级别": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"选择隔离级别和传播行为": {
"keywords": [],
"children": [
{
"选择隔离级别": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"传播行为": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"在Spring+MyBatis组合中使用事务": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"典型错误用法的剖析": {
"keywords": [],
"children": [
{
"错误使用Service": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"过长时间占用事务": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"错误捕捉异常": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
},
{
"Spring配置": {
"node_id": "java-ba8a319433c94ea383719849144f73e7",
"keywords": [],
"children": [
{
"Java配置": {
"keywords": [],
"children": [],
"node_id": "java-f690e4f4f78948cca22732c96b0fed50",
"title": "Java配置"
}
}
]
}
}
]
}
},
{
"Spring MVC": {
"node_id": "java-6515147940654b64b7cbbe093328958b",
"keywords": [],
"children": [
{
"Spring MVC初始化": {
"node_id": "java-f747d3b79d0948e4a763fe30be86259f",
"keywords": [],
"children": []
}
},
{
"配置@RequestMapping": {
"node_id": "java-b4daec2a8b154abd8a14ef747205783d",
"keywords": [],
"children": []
}
},
{
"控制器的开发": {
"node_id": "java-47304ccf9c8e48f9bd8a9208307674c0",
"keywords": [],
"children": []
}
},
{
"视图渲染": {
"node_id": "java-32b5897d479e4c808cfbaac7376502e0",
"keywords": [],
"children": []
}
},
{
"使用@RequestParam注解获取参数": {
"node_id": "java-6ddaa708beb34971a34cb0c8c60c9540",
"keywords": [],
"children": []
}
},
{
"使用URL传递参数": {
"node_id": "java-389dd5900f2c4cffb59e6114daac5c47",
"keywords": [],
"children": []
}
},
{
"传递JSON参数": {
"node_id": "java-7f52453bf3914604af95b8acf9126cfa",
"keywords": [],
"children": []
}
},
{
"接收列表数据和表单序列化": {
"node_id": "java-08556dcd648a4c12899ff7c84f6e0971",
"keywords": [],
"children": []
}
},
{
"重定向": {
"node_id": "java-a542700299cf4f178df14f9e769f7e64",
"keywords": [],
"children": []
}
},
{
"保存并获取属性参数": {
"node_id": "java-975b60900f62496f836db22835f5b231",
"keywords": [],
"children": [
{
"注解@RequestAttribute": {
"keywords": [],
"children": [],
"node_id": "java-7f3f031ab2c142908c8f6a572ba0dbac",
"title": "注解@RequestAttribute"
}
},
{
"注解@SessionAttribute和注解@SessionAttributes": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "注解@SessionAttribute和注解@SessionAttributes"
}
},
{
"注解@CookieValue和注解@RequestHeader": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "注解@CookieValue和注解@RequestHeader"
}
}
]
}
},
{
"验证表单": {
"node_id": "java-e29b351351d84c2c836ab45a9dbe5773",
"keywords": [],
"children": [
{
"使用JSR 303注解验证输入内容": {
"keywords": [],
"children": [],
"node_id": "java-2aa4ceb984cf4b88a434802225d3e8f1",
"title": "使用JSR 303注解验证输入内容"
}
},
{
"使用验证器": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "使用验证器"
}
}
]
}
},
{
"数据模型": {
"node_id": "java-ff23ccf79711429c9c87165d231ace4f",
"keywords": [],
"children": []
}
},
{
"视图和视图解析器": {
"node_id": "java-67fd88d9c9404156922d2e1df978f935",
"keywords": [],
"children": [
{
"视图": {
"keywords": [],
"children": [],
"node_id": "java-f08ada909e244367b23c4a49dc0d4cfe",
"title": "视图"
}
},
{
"视图解析器": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "视图解析器"
}
}
]
}
},
{
"上传文件": {
"node_id": "java-8b3f9d1b3c274e61978d0919d472f737",
"keywords": [],
"children": []
}
},
{
"Spring MVC的数据转换和格式化": {
"node_id": "java-1d0c3eccb9654104840d5997324ae3ea",
"keywords": [],
"children": [
{
"HttpMessageConverter和JSON消息转换器": {
"keywords": [],
"children": [],
"node_id": "java-dbad99e5ad8e49bcbbd72e1f589be3b9",
"title": "HttpMessageConverter和JSON消息转换器"
}
},
{
"一对一转换器(Converter)": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "一对一转换器(Converter)"
}
},
{
"数组和集合转换器GenericConverter": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "数组和集合转换器GenericConverter"
}
},
{
"使用格式化器(Formatter)": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
},
{
"为控制器添加通知": {
"node_id": "java-bbedbe9adddf4f17b15378df9dbd9203",
"keywords": [],
"children": []
}
},
{
"处理异常": {
"node_id": "java-c672901bb15146ef95bb49cc07dc3160",
"keywords": [],
"children": []
}
},
{
"国际化": {
"node_id": "java-ca8f2a981f924ab2a881d306c8cab6fc",
"keywords": [],
"children": [
{
"MessageSource接口": {
"keywords": [],
"children": [],
"node_id": "java-902fba4adec244e1886bafb55202304e",
"title": "MessageSource接口"
}
},
{
"CookieLocaleResolver和SessionLocaleResolver": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "CookieLocaleResolver和SessionLocaleResolver"
}
},
{
"国际化拦截器(LocaleChangeInterceptor)": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "国际化拦截器(LocaleChangeInterceptor)"
}
},
{
"开发国际化": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
},
{
"Spring Aware": {
"node_id": "java-d2679700cd3140819571032e023437ad",
"keywords": [],
"children": [
{
"示例": {
"keywords": [],
"children": [],
"node_id": "java-4c3d595d39714a9898b89f5274c15d72",
"title": "示例"
}
}
]
}
},
{
"多线程": {
"node_id": "java-8e636a2e732b4ae092f5e16404b3f19f",
"keywords": [],
"children": [
{
"示例": {
"keywords": [],
"children": [],
"node_id": "java-0b11fed0595a4672a06e00bf1e9a6059",
"title": "示例"
}
}
]
}
},
{
"计划任务": {
"node_id": "java-1cb34893fbb9465389edef8bd0c62aae",
"keywords": [],
"children": [
{
"示例": {
"keywords": [],
"children": [],
"node_id": "java-8e087c9f320e457da7d448d5a798e688",
"title": "示例"
}
}
]
}
},
{
"条件注解@Conditional": {
"node_id": "java-4c06d7d08fc3442a9a4c8e55461ef8d5",
"keywords": [],
"children": [
{
"示例": {
"keywords": [],
"children": [],
"node_id": "java-ba777217b539466ba820df5c7d107f99",
"title": "示例"
}
}
]
}
},
{
"组合注解与元注解": {
"node_id": "java-aa42acb3545f42369f8f75da1d908c42",
"keywords": [],
"children": [
{
"示例": {
"keywords": [],
"children": [],
"node_id": "java-2071d740fc4e403dbf49f9a0447d1dc3",
"title": "示例"
}
}
]
}
},
{
"@Enable*注解的工作原理": {
"node_id": "java-db180cf37d1b470aaee25fb5c1ee4967",
"keywords": [],
"children": [
{
"第一类:直接导入配置类": {
"keywords": [],
"children": [],
"node_id": "java-062e6156671e44ddad0b7a2e8f0280b6",
"title": "第一类:直接导入配置类"
}
},
{
"第二类:依据条件选择配置类": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "第二类:依据条件选择配置类"
}
},
{
"第三类:动态注册Bean": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "第三类:动态注册Bean"
}
}
]
}
},
{
"测试": {
"node_id": "java-c15ac9b01d754d56b7ed4b8511836efb",
"keywords": [],
"children": [
{
"示例": {
"keywords": [],
"children": [],
"node_id": "java-cfc865d26ee44e3685f45a853c1803f7",
"title": "示例"
}
}
]
}
}
]
}
},
{
"Spring Boot": {
"node_id": "java-54d006361f33475282de23e43fdc8de2",
"keywords": [],
"children": []
}
},
{
"Mybatis": {
"node_id": "java-1e57ad0be67f4ac7974a52f5b5bc0925",
"keywords": [],
"children": [
{
"MyBatis的解析和运行原理": {
"node_id": "java-81a209e1e0e248bb83b45875408a2d28",
"keywords": [],
"children": [
{
"构建SqlSessionFactory过程": {
"keywords": [],
"children": [
{
"构建Configuration": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "构建Configuration"
}
},
{
"构建映射器的内部组成": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8",
"title": "构建映射器的内部组成"
}
},
{
"构建SqlSessionFactory": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "java-1daf32e864734f3dbdd59870b76c5b22",
"title": "构建SqlSessionFactory过程"
}
},
{
"SqlSession运行过程": {
"keywords": [],
"children": [
{
"映射器(Mapper)的动态代理": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"SqlSession下的四大对象": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"插件接口": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"插件的初始化": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"插件的代理和反射设计": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"常用的工具类——MetaObject": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"映射器": {
"keywords": [],
"children": [
{
"select元素——查询语句": {
"keywords": [],
"children": [
{
"简单的select元素的应用": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"自动映射和驼峰映射": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"传递多个参数": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用resultMap映射结果集": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"分页参数RowBounds": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"insert元素——插入语句": {
"keywords": [],
"children": [
{
"简单的insert语句的应用": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"主键回填": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"自定义主键": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"update元素和delete元素": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"sql元素": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"参数": {
"keywords": [],
"children": [
{
"存储过程参数支持": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"特殊字符串的替换和处理(#和$)": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"resultMap元素": {
"keywords": [],
"children": [
{
"resultMap元素的构成": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用map存储结果集": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"使用POJO存储结果集": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"级联": {
"keywords": [],
"children": [
{
"MyBatis中的级联": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"建立POJO": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"配置映射文件": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"延迟加载": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"另一种级联": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"多对多级联": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"缓存": {
"keywords": [],
"children": [
{
"一级缓存和二级缓存": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"缓存配置项、自定义和引用": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"存储过程": {
"keywords": [],
"children": [
{
"IN和OUT参数存储过程": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"游标的使用": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"动态SQL": {
"keywords": [],
"children": [
{
"if元素": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"choose、when、otherwise元素": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"trim、where、set元素": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"foreach元素": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"用test的属性判断字符串": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
},
{
"bind元素": {
"keywords": [],
"children": [],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
],
"node_id": "569d5e11c4fc5de7844053d9a733c5e8"
}
}
]
}
}
]
}
},
{
"Spark": {
"node_id": "java-5ce19c44d3134c6594cda48a28730edd",
"keywords": [],
"children": []
}
},
{
"Flink": {
"node_id": "java-6c6e3a98564443e09b0b419d474471f5",
"keywords": [],
"children": []
}
},
{
"Vert.x": {
"node_id": "java-c10f0f7ff663469aae3aac593b28be98",
"keywords": [],
"children": []
}
},
{
"Quarkus": {
"node_id": "java-b2558c64d18644088a9ac6186e99bb0b",
"keywords": [],
"children": []
}
},
{
"其他": {
"node_id": "java-2276731a06a64d72bd22867525ccfb87",
"keywords": [],
"children": [
{
"其他类别标签问题": {
"node_id": "java-9852b531ca784949b8867e55fe6948f2",
"keywords": [],
"children": []
}
},
{
"应用类问题": {
"node_id": "java-46930d850e9b4f31859d2dc9a61827af",
"Apache Common": {
"node_id": "java-e5d307b8ce2049648b4afd9fecdb48b0",
"keywords": [],
"children": []
}
},
{
"第三方包问题": {
"node_id": "java-cae0698f09d8447d9cba7ab4db79fd14",
"keywords": [],
"children": []
}
}
]
}
}
]
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册