Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
update docs
  • Loading branch information
dunwu committed Nov 29, 2019
commit fecc0c26185995f8197b8d505c5a6057f999ca17
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ hs_err_pid*

# maven plugin temp files
.flattened-pom.xml
package-lock.json


# ------------------------------- javascript -------------------------------
Expand All @@ -47,6 +48,7 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
bundle*.js
book.pdf


# ------------------------------- intellij -------------------------------
Expand Down
48 changes: 27 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,42 @@

> 各种主流 Java 库的应用。

- [Dozer 使用指南](docs/javalib/dozer.md)
- [Freemark 使用指南](docs/javalib/freemark.md)
- [Dozer 应用指南](docs/javalib/dozer.md)
- [Freemark 应用指南](docs/javalib/freemark.md)
- [Java 与 JSON](docs/javalib/javalib-json.md)
- [细说 Java 主流日志工具库](docs/javalib/java-log.md)
- [细说 Java 主流工具包](docs/javalib/java-util.md)
- [JavaMail 使用指南](docs/javalib/javamail.md)
- [Jsoup 使用指南](docs/javalib/jsoup.md)
- [JUnit5 使用指南](docs/javalib/junit.md)
- [Lombok 使用指南](docs/javalib/lombok.md)
- [Mockito 使用指南](docs/javalib/mockito.md)
- [Reflections 使用指南](docs/javalib/reflections.md)
- [Thumbnailator 使用指南](docs/javalib/thumbnailator.md)
- [ZXing 使用指南](docs/javalib/zxing.md)
- [细说 Java 主流日志工具库](docs/javalib/javalib-log.md)
- [细说 Java 主流工具包](docs/javalib/javalib-util.md)
- [JavaMail 应用指南](docs/javalib/javamail.md)
- [Jsoup 应用指南](docs/javalib/jsoup.md)
- [JUnit5 应用指南](docs/javalib/junit.md)
- [Lombok 应用指南](docs/javalib/lombok.md)
- [Mockito 应用指南](docs/javalib/mockito.md)
- [Reflections 应用指南](docs/javalib/reflections.md)
- [Thumbnailator 应用指南](docs/javalib/thumbnailator.md)
- [ZXing 应用指南](docs/javalib/zxing.md)

## [JavaTool](docs/javatool/README.md)

> 各种主流 Java 工具的应用。

- [构建工具](docs/javatool/build/README.md)
- Maven 教程
- [Maven 教程 📚](docs/javatool/build/maven/README.md)
- [Maven 快速指南](docs/javatool/build/maven/maven-quickstart.md)
- [Maven 教程之 pom.xml 详解](docs/javatool/build/maven/maven-pom.md)
- [Maven 教程之 settings.xml 详解](docs/javatool/build/maven/maven-settings.md)
- [Maven 实战问题和最佳实践](docs/javatool/build/maven/maven-action.md)
- [Maven 教程之发布 jar 到私服或中央仓库](docs/javatool/build/maven/maven-deploy.md)
- [Maven 插件之代码检查](docs/javatool/build/maven/plugins/maven-checkstyle.md)
- [Maven 插件之代码检查](docs/javatool/build/maven/maven-checkstyle-plugin.md)
- [Ant 简易教程](docs/javatool/build/ant.md)
- Java IDE
- [Intellij IDEA 使用指南](docs/javatool/ide/intellij.md)
- [Eclipse 使用指南](docs/javatool/ide/eclipse.md)
- [搜索引擎 Elastic](docs/javatool/elastic/README.md)
- [Elastic 技术栈快速入门](docs/javatool/elastic/elastic-quickstart.md)
- [Elasticsearch 运维](docs/javatool/elastic/elastic-elasticsearch-ops.md)
- [Beats 运维](docs/javatool/elastic/elastic-beats-ops.md)
- [Kibana 运维](docs/javatool/elastic/elastic-kibana-ops.md)
- [Logstash 运维](docs/javatool/elastic/elastic-logstash-ops.md)
- [Java IDE](docs/javatool/ide/README.md)
- [Intellij IDEA 应用指南](docs/javatool/ide/intellij.md)
- [Eclipse 应用指南](docs/javatool/ide/eclipse.md)
- **测试**
- [Jmeter 应用指南](docs/javatool/test/jmeter.md)

Expand All @@ -62,10 +68,10 @@

## 相关技术栈

- :1234: [db-tutorial](https://dunwu.github.io/db-tutorial/) - 是对数据库领域开发经验的总结。内容包含:关系型数据库和 Nosql 理论、Mysql、Redis 等。
- :dart: [algorithm-tutorial](https://dunwu.github.io/algorithm-tutorial/) - 是对数据结构和算法的总结。内容包含:一些基本的数据结构、算法。
- :penguin: [linux-tutorial](https://github.com/dunwu/linux-tutorial) - 是对 Linux 操作系统的经验总结。内容包含:Linux 常用命令;各种常见软件的 Linux 环境安装配置;运维、部署脚本;Shell、Python 语法教程;Git、Docker 教程。
- :art: [frontend-tutorial](https://github.com/dunwu/frontend-tutorial) - 前端教程
- [db-tutorial](https://dunwu.github.io/db-tutorial/) - 是对数据库领域开发经验的总结。内容包含:关系型数据库和 Nosql 理论、Mysql、Redis 等。
- [algorithm-tutorial](https://dunwu.github.io/algorithm-tutorial/) - 是对数据结构和算法的总结。内容包含:一些基本的数据结构、算法。
- [linux-tutorial](https://github.com/dunwu/linux-tutorial) - 是对 Linux 操作系统的经验总结。内容包含:Linux 常用命令;各种常见软件的 Linux 环境安装配置;运维、部署脚本;Shell、Python 语法教程;Git、Docker 教程。
- [frontend-tutorial](https://github.com/dunwu/frontend-tutorial) - 前端教程

---

Expand Down
50 changes: 28 additions & 22 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,43 @@

> 各种主流 Java 库的应用。

- [Dozer 使用指南](javalib/dozer.md)
- [Freemark 使用指南](javalib/freemark.md)
- [Dozer 应用指南](javalib/dozer.md)
- [Freemark 应用指南](javalib/freemark.md)
- [Java 与 JSON](javalib/javalib-json.md)
- [细说 Java 主流日志工具库](javalib/java-log.md)
- [细说 Java 主流工具包](javalib/java-util.md)
- [JavaMail 使用指南](javalib/javamail.md)
- [Jsoup 使用指南](javalib/jsoup.md)
- [JUnit5 使用指南](javalib/junit.md)
- [Lombok 使用指南](javalib/lombok.md)
- [Mockito 使用指南](javalib/mockito.md)
- [Reflections 使用指南](javalib/reflections.md)
- [Thumbnailator 使用指南](javalib/thumbnailator.md)
- [ZXing 使用指南](javalib/zxing.md)
- [细说 Java 主流日志工具库](javalib/javalib-log.md)
- [细说 Java 主流工具包](javalib/javalib-util.md)
- [JavaMail 应用指南](javalib/javamail.md)
- [Jsoup 应用指南](javalib/jsoup.md)
- [JUnit5 应用指南](javalib/junit.md)
- [Lombok 应用指南](javalib/lombok.md)
- [Mockito 应用指南](javalib/mockito.md)
- [Reflections 应用指南](javalib/reflections.md)
- [Thumbnailator 应用指南](javalib/thumbnailator.md)
- [ZXing 应用指南](javalib/zxing.md)

## [JavaTool](javatool/README.md)

> 各种主流 Java 工具的应用。

- [构建工具](javatool/build/README.md)
- Maven 教程
- [Maven 教程 📚](javatool/build/maven/README.md)
- [Maven 快速指南](javatool/build/maven/maven-quickstart.md)
- [Maven 教程之 pom.xml 详解](javatool/build/maven/maven-pom.md)
- [Maven 教程之 settings.xml 详解](javatool/build/maven/maven-settings.md)
- [Maven 实战问题和最佳实践](javatool/build/maven/maven-action.md)
- [Maven 教程之发布 jar 到私服或中央仓库](javatool/build/maven/maven-deploy.md)
- [Maven 插件之代码检查](javatool/build/maven/plugins/maven-checkstyle.md)
- [Maven 插件之代码检查](javatool/build/maven/maven-checkstyle-plugin.md)
- [Ant 简易教程](javatool/build/ant.md)
- Java IDE
- [Intellij IDEA 使用指南](javatool/ide/intellij.md)
- [Eclipse 使用指南](javatool/ide/eclipse.md)
- **测试**
- [搜索引擎 Elastic](javatool/elastic/README.md)
- [Elastic 技术栈快速入门](javatool/elastic/elastic-quickstart.md)
- [Elasticsearch 运维](javatool/elastic/elastic-elasticsearch-ops.md)
- [Beats 运维](javatool/elastic/elastic-beats-ops.md)
- [Kibana 运维](javatool/elastic/elastic-kibana-ops.md)
- [Logstash 运维](javatool/elastic/elastic-logstash-ops.md)
- [Java IDE](javatool/ide/README.md)
- [Intellij IDEA 应用指南](javatool/ide/intellij.md)
- [Eclipse 应用指南](javatool/ide/eclipse.md)
- **测试工具**
- [Jmeter 应用指南](javatool/test/jmeter.md)

## [JavaCore 教程](https://dunwu.github.io/javacore/)
Expand All @@ -62,10 +68,10 @@

## 相关技术栈

- :1234: [db-tutorial](https://dunwu.github.io/db-tutorial/) - 是对数据库领域开发经验的总结。内容包含:关系型数据库和 Nosql 理论、Mysql、Redis 等。
- :dart: [algorithm-tutorial](https://dunwu.github.io/algorithm-tutorial/) - 是对数据结构和算法的总结。内容包含:一些基本的数据结构、算法。
- :penguin: [linux-tutorial](https://github.com/dunwu/linux-tutorial) - 是对 Linux 操作系统的经验总结。内容包含:Linux 常用命令;各种常见软件的 Linux 环境安装配置;运维、部署脚本;Shell、Python 语法教程;Git、Docker 教程。
- :art: [frontend-tutorial](https://github.com/dunwu/frontend-tutorial) - 前端教程
- [db-tutorial](https://dunwu.github.io/db-tutorial/) - 是对数据库领域开发经验的总结。内容包含:关系型数据库和 Nosql 理论、Mysql、Redis 等。
- [algorithm-tutorial](https://dunwu.github.io/algorithm-tutorial/) - 是对数据结构和算法的总结。内容包含:一些基本的数据结构、算法。
- [linux-tutorial](https://github.com/dunwu/linux-tutorial) - 是对 Linux 操作系统的经验总结。内容包含:Linux 常用命令;各种常见软件的 Linux 环境安装配置;运维、部署脚本;Shell、Python 语法教程;Git、Docker 教程。
- [frontend-tutorial](https://github.com/dunwu/frontend-tutorial) - 前端教程

---

Expand Down
69 changes: 69 additions & 0 deletions docs/book.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"gitbook": "3.2.2",
"title": "java-tutorial",
"language": "zh-hans",
"root": "./",
"structure": {
"summary": "sidebar.md"
},
"links": {
"sidebar": {
"java-tutorial": "https://github.com/dunwu/java-tutorial"
}
},
"plugins": [
"-lunr",
"-search",
"advanced-emoji@^0.2.2",
"anchor-navigation-ex@1.0.10",
"anchors@^0.7.1",
"edit-link@^2.0.2",
"expandable-chapters-small@^0.1.7",
"github@^2.0.0",
"search-plus@^0.0.11",
"simple-page-toc@^0.1.1",
"splitter@^0.0.8",
"tbfed-pagefooter@^0.0.1"
],
"pluginsConfig": {
"anchor-navigation-ex": {
"showLevel": false,
"associatedWithSummary": true,
"multipleH1": true,
"mode": "float",
"isRewritePageTitle": false,
"float": {
"showLevelIcon": false,
"level1Icon": "fa fa-hand-o-right",
"level2Icon": "fa fa-hand-o-right",
"level3Icon": "fa fa-hand-o-right"
},
"pageTop": {
"showLevelIcon": false,
"level1Icon": "fa fa-hand-o-right",
"level2Icon": "fa fa-hand-o-right",
"level3Icon": "fa fa-hand-o-right"
}
},
"edit-link": {
"base": "https://github.com/dunwu/java-tutorial/blob/master/docs",
"label": "编辑此页面"
},
"github": {
"url": "https://github.com/dunwu"
},
"simple-page-toc": {
"maxDepth": 4,
"skipFirstH1": true
},
"sharing": {
"weibo": true,
"all": ["weibo"]
},
"tbfed-pagefooter": {
"copyright": "Copyright © Zhang Peng 2017",
"modify_label": "该文件上次修订时间:",
"modify_format": "YYYY-MM-DD HH:mm:ss"
}
}
}
Binary file added docs/cover.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@
}

.markdown-section p {
line-height: 1rem;
word-spacing: 0.05rem;
}
</style>
Expand Down
18 changes: 9 additions & 9 deletions docs/javalib/dozer.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Dozer 使用指南
# Dozer 应用指南

这篇文章是本人在阅读 Dozer 官方文档(5.5.1 版本,官网已经一年多没更新了)的过程中,整理下来我认为比较基础的应用场景。

Expand All @@ -8,17 +8,17 @@

- [简介](#简介)
- [安装](#安装)
- [引入 jar 包](#引入-jar-包)
- [Eclipse 插件](#eclipse-插件)
- [引入 jar 包](#引入-jar-包)
- [Eclipse 插件](#eclipse-插件)
- [使用](#使用)
- [准备](#准备)
- [Dozer 的配置](#dozer-的配置)
- [与 Spring 整合](#与-spring-整合)
- [准备](#准备)
- [Dozer 的配置](#dozer-的配置)
- [与 Spring 整合](#与-spring-整合)
- [Dozer 支持的数据类型转换](#dozer-支持的数据类型转换)
- [Dozer 的映射配置](#dozer-的映射配置)
- [用注解来配置映射](#用注解来配置映射)
- [用 API 来配置映射](#用-api-来配置映射)
- [用 XML 来配置映射](#用-xml-来配置映射)
- [用注解来配置映射](#用注解来配置映射)
- [用 API 来配置映射](#用-api-来配置映射)
- [用 XML 来配置映射](#用-xml-来配置映射)
- [参考](#参考)

<!-- /TOC -->
Expand Down
20 changes: 10 additions & 10 deletions docs/javalib/freemark.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# Freemark 使用指南
# Freemark 应用指南

> FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML 网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个 Java 类库,是一款程序员可以嵌入他们所开发产品的组件。

<!-- TOC depthFrom:2 depthTo:3 -->

- [简介](#简介)
- [什么是 Freemark?](#什么是-freemark)
- [什么是 Freemark?](#什么是-freemark)
- [入门](#入门)
- [创建 Configuration 实例](#创建-configuration-实例)
- [创建数据模型](#创建数据模型)
- [获取模板](#获取模板)
- [合并模板和数据模型](#合并模板和数据模型)
- [完整示例](#完整示例)
- [创建 Configuration 实例](#创建-configuration-实例)
- [创建数据模型](#创建数据模型)
- [获取模板](#获取模板)
- [合并模板和数据模型](#合并模板和数据模型)
- [完整示例](#完整示例)
- [基础](#基础)
- [数值](#数值)
- [类型](#类型)
- [模板](#模板)
- [数值](#数值)
- [类型](#类型)
- [模板](#模板)
- [参考资料](#参考资料)

<!-- /TOC -->
Expand Down
11 changes: 6 additions & 5 deletions docs/javalib/javalib-binary.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@

原因很简单,就是 Java 默认的序列化机制(`ObjectInputStream` 和 `ObjectOutputStream`)具有很多缺点。

> 不了解 Java 默认的序列化机制,可以参考:[Java 序列化](https://github.com/dunwu/javacore/blob/master/docs/io/Java序列化.md)
> 不了解 Java 默认的序列化机制,可以参考:[Java 序列化](https://github.com/dunwu/javacore/blob/master/docs/io/Java序列化.md)

Java 自身的序列化方式具有以下缺点:

- **无法跨语言使用 **。这点最为致命,对于很多需要跨语言通信的异构系统来说,不能跨语言序列化,即意味着完全无法通信(彼此数据不能识别,当然无法交互了)。
- **序列化的性能不高**。序列化后的数据体积较大,这大大影响存储和传输的效率。
- 序列化一定需要实现 `Serializable` 接口。
- 需要关注 `serialVersionUID`。
- **序列化的性能不高**。序列化后的数据体积较大,这大大影响存储和传输的效率。
- 序列化一定需要实现 `Serializable` 接口。
- 需要关注 `serialVersionUID`。

引入二进制序列化库就是为了解决这些问题,这在 RPC 应用中尤为常见。

Expand Down Expand Up @@ -86,6 +86,7 @@ Java 自身的序列化方式具有以下缺点:
**(2)选型建议**

- 如果需要跨语言通信,那么可以考虑:Protobuf、Thrift、Hession。

- [thrift](https://github.com/apache/thrift)、[protobuf](https://github.com/protocolbuffers/protobuf) - 适用于对性能敏感,对开发体验要求不高的内部系统。
- [hessian](http://hessian.caucho.com/doc/hessian-overview.xtp) - 适用于对开发体验敏感,性能有要求的内外部系统。

Expand Down Expand Up @@ -334,4 +335,4 @@ System.out.printf("Kryo 序列化/反序列化耗时:%s", (end - begin));
- [Hessian 官网](http://hessian.caucho.com/)
- [FST Github](https://github.com/RuedigerMoeller/fast-serialization)
- **文章**
- [java序列化框架对比](https://www.jianshu.com/p/937883b6b2e5)
- [java 序列化框架对比](https://www.jianshu.com/p/937883b6b2e5)
34 changes: 17 additions & 17 deletions docs/javalib/java-log.md → docs/javalib/javalib-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,28 @@
<!-- TOC depthFrom:2 depthTo:3 -->

- [日志框架](#日志框架)
- [java.util.logging (JUL)](#javautillogging-jul)
- [Log4j](#log4j)
- [Logback](#logback)
- [Log4j2](#log4j2)
- [Log4j vs Logback vs Log4j2](#log4j-vs-logback-vs-log4j2)
- [java.util.logging (JUL)](#javautillogging-jul)
- [Log4j](#log4j)
- [Logback](#logback)
- [Log4j2](#log4j2)
- [Log4j vs Logback vs Log4j2](#log4j-vs-logback-vs-log4j2)
- [日志门面](#日志门面)
- [common-logging](#common-logging)
- [slf4j](#slf4j)
- [common-logging vs slf4j](#common-logging-vs-slf4j)
- [总结](#总结)
- [common-logging](#common-logging)
- [slf4j](#slf4j)
- [common-logging vs slf4j](#common-logging-vs-slf4j)
- [总结](#总结)
- [实施日志解决方案](#实施日志解决方案)
- [引入 jar 包](#引入-jar-包)
- [使用 API](#使用-api)
- [引入 jar 包](#引入-jar-包)
- [使用 API](#使用-api)
- [log4j2 配置](#log4j2-配置)
- [logback 配置](#logback-配置)
- [`<configuration>`](#configuration)
- [`<appender>`](#appender)
- [`<logger>`](#logger)
- [`<root>`](#root)
- [完整的 logback.xml 参考示例](#完整的-logbackxml-参考示例)
- [`<configuration>`](#configuration)
- [`<appender>`](#appender)
- [`<logger>`](#logger)
- [`<root>`](#root)
- [完整的 logback.xml 参考示例](#完整的-logbackxml-参考示例)
- [log4j 配置](#log4j-配置)
- [完整的 log4j.xml 参考示例](#完整的-log4jxml-参考示例)
- [完整的 log4j.xml 参考示例](#完整的-log4jxml-参考示例)
- [参考](#参考)

<!-- /TOC -->
Expand Down
File renamed without changes.
Loading