|
|
|
@ -1,163 +1,182 @@
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
|
<title>读尽天下源码,心中自然无码</title>
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
|
|
|
<meta name="keywords" content="doc,docs,doocs,documentation,github,gitee,source-code-hunter,AmyliaY" />
|
|
|
|
|
<meta name="description" content="读尽天下源码,心中自然无码——源码猎人" />
|
|
|
|
|
<meta name="viewport"
|
|
|
|
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
|
|
|
|
|
<link rel="stylesheet" href="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/themes/vue.css" />
|
|
|
|
|
<link rel="stylesheet" href="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-darklight-theme@latest/dist/style.min.css">
|
|
|
|
|
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png" />
|
|
|
|
|
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png" />
|
|
|
|
|
<style>
|
|
|
|
|
.markdown-section code {
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<nav>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
|
|
|
|
分类
|
|
|
|
|
<ul>
|
|
|
|
|
<li><a href="#/?id=spring-系列">Spring系列</a></li>
|
|
|
|
|
<li><a href="#/?id=mybatis">Mybatis</a></li>
|
|
|
|
|
<li><a href="#/?id=netty">Netty</a></li>
|
|
|
|
|
<li><a href="#/?id=tomcat">Tomcat</a></li>
|
|
|
|
|
<li><a href="#/?id=番外篇(jdk-18)">JDK 1.8</a></li>
|
|
|
|
|
<li><a href="#/?id=学习心得">学习心得</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
页面
|
|
|
|
|
<ul>
|
|
|
|
|
<li><a href="#/README">首页</a></li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="https://github.com/doocs" target="_blank">Doocs</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="https://github.com/AmyliaY" target="_blank">Author</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</nav>
|
|
|
|
|
<div id="app">本系列知识由 Doocs 开源社区总结发布</div>
|
|
|
|
|
<script>
|
|
|
|
|
window.$docsify = {
|
|
|
|
|
name: "source-code-hunter",
|
|
|
|
|
maxLevel: 3,
|
|
|
|
|
auto2top: true,
|
|
|
|
|
search: ["/"],
|
|
|
|
|
darklightTheme: {
|
|
|
|
|
defaultTheme: 'light',
|
|
|
|
|
siteFont: 'Source Sans Pro,Helvetica Neue,Arial,sans-serif',
|
|
|
|
|
codeFontFamily: 'Roboto Mono, Monaco, courier, monospace',
|
|
|
|
|
bodyFontSize: '15px',
|
|
|
|
|
dark: {
|
|
|
|
|
background: '#191919',
|
|
|
|
|
highlightColor: '#e96900',
|
|
|
|
|
codeBackgroundColor: '#202020',
|
|
|
|
|
codeTextColor: '#b4b4b4',
|
|
|
|
|
},
|
|
|
|
|
light: {
|
|
|
|
|
highlightColor: '#e96900',
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contributors: {
|
|
|
|
|
repo: 'doocs/source-code-hunter',
|
|
|
|
|
ignores: ['/README.md'],
|
|
|
|
|
image: {
|
|
|
|
|
margin: '0.2em',
|
|
|
|
|
isRound: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
plugins: [
|
|
|
|
|
function (hook, vm) {
|
|
|
|
|
hook.beforeEach(function (content) {
|
|
|
|
|
const en = vm.route.file.indexOf("README_EN") > -1;
|
|
|
|
|
if (/githubusercontent\.com/.test(vm.route.file)) {
|
|
|
|
|
url = vm.route.file
|
|
|
|
|
.replace("raw.githubusercontent.com", "github.com")
|
|
|
|
|
.replace(/\/main/, "/blob/main");
|
|
|
|
|
} else {
|
|
|
|
|
url =
|
|
|
|
|
"https://github.com/doocs/source-code-hunter/blob/main/" +
|
|
|
|
|
vm.route.file;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const github = `[GitHub](${url})`;
|
|
|
|
|
const gitee = `[Gitee](${url.replace("github", "gitee")})`;
|
|
|
|
|
|
|
|
|
|
const editHtml = en
|
|
|
|
|
? `:memo: Edit on ${github} / ${gitee}\n`
|
|
|
|
|
: `:memo: 在 ${github} / ${gitee} 编辑\n`;
|
|
|
|
|
|
|
|
|
|
if (vm.route.path == "/") {
|
|
|
|
|
return editHtml + content;
|
|
|
|
|
}
|
|
|
|
|
const subscription = `
|
|
|
|
|
## 公众号
|
|
|
|
|
|
|
|
|
|
[Doocs](https://github.com/doocs) 技术社区旗下唯一公众号「**Doocs开源社区**」,欢迎扫码关注,**专注分享技术领域相关知识及业内最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
|
|
|
|
|
|
|
|
|
|
关注「**Doocs**」公众号,回复 **PDF**,即可获取 [互联网 Java 工程师进阶知识完全扫盲](https://github.com/doocs/advanced-java) 项目离线 PDF 文档(283 页精华),学习更加方便!
|
|
|
|
|
|
|
|
|
|
<table>
|
|
|
|
|
<tr>
|
|
|
|
|
<td align="center" style="width: 200px;">
|
|
|
|
|
<a href="https://github.com/doocs">
|
|
|
|
|
<img src="./images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
|
|
|
|
|
<sub>公众平台</sub>
|
|
|
|
|
</a><br>
|
|
|
|
|
</td>
|
|
|
|
|
<td align="center" style="width: 200px;">
|
|
|
|
|
<a href="https://github.com/yanglbme">
|
|
|
|
|
<img src="./images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
|
|
|
|
|
<sub>个人微信</sub>
|
|
|
|
|
</a><br>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
`;
|
|
|
|
|
return editHtml + content + `\n` + subscription;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
hook.afterEach(function (html) {
|
|
|
|
|
const currentYear = new Date().getFullYear()
|
|
|
|
|
const footer = `<footer><span>Copyright © 2018-${currentYear} <a href="https://github.com/doocs" target="_blank">Doocs</a>. All Rights Reserved.</footer>`
|
|
|
|
|
return html + footer;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/docsify.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-c.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-bash.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-cpp.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-json.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-java.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-python.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-copy-code@2.1.1/dist/docsify-copy-code.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/plugins/search.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/plugins/zoom-image.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-darklight-theme@latest/dist/index.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-contributors@latest/dist/index.min.js"></script>
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
cdn.jsdelivr.net
|
|
|
|
|
test1.jsdelivr.net
|
|
|
|
|
testingcf.jsdelivr.net
|
|
|
|
|
fastly.jsdelivr.net
|
|
|
|
|
gcore.jsdelivr.net
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
</html>
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
|
<title>读尽天下源码,心中自然无码</title>
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
|
|
|
<meta
|
|
|
|
|
name="keywords"
|
|
|
|
|
content="doc,docs,doocs,documentation,github,gitee,source-code-hunter,AmyliaY"
|
|
|
|
|
/>
|
|
|
|
|
<meta name="description" content="读尽天下源码,心中自然无码——源码猎人" />
|
|
|
|
|
<meta
|
|
|
|
|
name="viewport"
|
|
|
|
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
|
|
|
|
|
/>
|
|
|
|
|
<link
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
href="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/themes/vue.css"
|
|
|
|
|
/>
|
|
|
|
|
<link
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
href="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-darklight-theme@latest/dist/style.min.css"
|
|
|
|
|
/>
|
|
|
|
|
<link
|
|
|
|
|
rel="icon"
|
|
|
|
|
type="image/png"
|
|
|
|
|
sizes="32x32"
|
|
|
|
|
href="images/favicon-32x32.png"
|
|
|
|
|
/>
|
|
|
|
|
<link
|
|
|
|
|
rel="icon"
|
|
|
|
|
type="image/png"
|
|
|
|
|
sizes="16x16"
|
|
|
|
|
href="images/favicon-16x16.png"
|
|
|
|
|
/>
|
|
|
|
|
<style>
|
|
|
|
|
.markdown-section code {
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<nav>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
|
|
|
|
分类
|
|
|
|
|
<ul>
|
|
|
|
|
<li><a href="#/?id=spring-系列">Spring系列</a></li>
|
|
|
|
|
<li><a href="#/?id=mybatis">Mybatis</a></li>
|
|
|
|
|
<li><a href="#/?id=netty">Netty</a></li>
|
|
|
|
|
<li><a href="#/?id=tomcat">Tomcat</a></li>
|
|
|
|
|
<li><a href="#/?id=番外篇(jdk-18)">JDK 1.8</a></li>
|
|
|
|
|
<li><a href="#/?id=学习心得">学习心得</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
页面
|
|
|
|
|
<ul>
|
|
|
|
|
<li><a href="#/README">首页</a></li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="https://github.com/doocs" target="_blank">Doocs</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="https://github.com/AmyliaY" target="_blank">Author</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</nav>
|
|
|
|
|
<div id="app">本系列知识由 Doocs 开源社区总结发布</div>
|
|
|
|
|
<script>
|
|
|
|
|
window.$docsify = {
|
|
|
|
|
name: 'source-code-hunter',
|
|
|
|
|
maxLevel: 3,
|
|
|
|
|
auto2top: true,
|
|
|
|
|
search: ['/'],
|
|
|
|
|
darklightTheme: {
|
|
|
|
|
defaultTheme: 'light',
|
|
|
|
|
siteFont: 'Source Sans Pro,Helvetica Neue,Arial,sans-serif',
|
|
|
|
|
codeFontFamily: 'Roboto Mono, Monaco, courier, monospace',
|
|
|
|
|
bodyFontSize: '15px',
|
|
|
|
|
dark: {
|
|
|
|
|
background: '#191919',
|
|
|
|
|
highlightColor: '#e96900',
|
|
|
|
|
codeBackgroundColor: '#202020',
|
|
|
|
|
codeTextColor: '#b4b4b4',
|
|
|
|
|
},
|
|
|
|
|
light: {
|
|
|
|
|
highlightColor: '#e96900',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
contributors: {
|
|
|
|
|
repo: 'doocs/source-code-hunter',
|
|
|
|
|
ignores: ['/README.md'],
|
|
|
|
|
image: {
|
|
|
|
|
margin: '0.2em',
|
|
|
|
|
isRound: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
plugins: [
|
|
|
|
|
function (hook, vm) {
|
|
|
|
|
hook.beforeEach(function (content) {
|
|
|
|
|
const en = vm.route.file.indexOf('README_EN') > -1;
|
|
|
|
|
if (/githubusercontent\.com/.test(vm.route.file)) {
|
|
|
|
|
url = vm.route.file
|
|
|
|
|
.replace('raw.githubusercontent.com', 'github.com')
|
|
|
|
|
.replace(/\/main/, '/blob/main');
|
|
|
|
|
} else {
|
|
|
|
|
url =
|
|
|
|
|
'https://github.com/doocs/source-code-hunter/blob/main/' +
|
|
|
|
|
vm.route.file;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const github = `[GitHub](${url})`;
|
|
|
|
|
const gitee = `[Gitee](${url.replace('github', 'gitee')})`;
|
|
|
|
|
|
|
|
|
|
const editHtml = en
|
|
|
|
|
? `:memo: Edit on ${github} / ${gitee}\n`
|
|
|
|
|
: `:memo: 在 ${github} / ${gitee} 编辑\n`;
|
|
|
|
|
|
|
|
|
|
if (vm.route.path == '/') {
|
|
|
|
|
return editHtml + content;
|
|
|
|
|
}
|
|
|
|
|
const subscription = `
|
|
|
|
|
## 公众号
|
|
|
|
|
|
|
|
|
|
[Doocs](https://github.com/doocs) 技术社区旗下唯一公众号「**Doocs开源社区**」,欢迎扫码关注,**专注分享技术领域相关知识及业内最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
|
|
|
|
|
|
|
|
|
|
关注「**Doocs**」公众号,回复 **PDF**,即可获取 [互联网 Java 工程师进阶知识完全扫盲](https://github.com/doocs/advanced-java) 项目离线 PDF 文档(283 页精华),学习更加方便!
|
|
|
|
|
|
|
|
|
|
<table>
|
|
|
|
|
<tr>
|
|
|
|
|
<td align="center" style="width: 200px;">
|
|
|
|
|
<a href="https://github.com/doocs">
|
|
|
|
|
<img src="./images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
|
|
|
|
|
<sub>公众平台</sub>
|
|
|
|
|
</a><br>
|
|
|
|
|
</td>
|
|
|
|
|
<td align="center" style="width: 200px;">
|
|
|
|
|
<a href="https://github.com/yanglbme">
|
|
|
|
|
<img src="./images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
|
|
|
|
|
<sub>个人微信</sub>
|
|
|
|
|
</a><br>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
`;
|
|
|
|
|
return editHtml + content + `\n` + subscription;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
hook.afterEach(function (html) {
|
|
|
|
|
const currentYear = new Date().getFullYear();
|
|
|
|
|
const footer = `<footer><span>Copyright © 2018-${currentYear} <a href="https://github.com/doocs" target="_blank">Doocs</a>. All Rights Reserved.</footer>`;
|
|
|
|
|
return html + footer;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/docsify.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-c.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-bash.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-cpp.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-json.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-java.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/prismjs/components/prism-python.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-copy-code@2.1.1/dist/docsify-copy-code.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/plugins/search.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify/lib/plugins/zoom-image.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-darklight-theme@latest/dist/index.min.js"></script>
|
|
|
|
|
<script src="https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/docsify-contributors@latest/dist/index.min.js"></script>
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
cdn.jsdelivr.net
|
|
|
|
|
test1.jsdelivr.net
|
|
|
|
|
testingcf.jsdelivr.net
|
|
|
|
|
fastly.jsdelivr.net
|
|
|
|
|
gcore.jsdelivr.net
|
|
|
|
|
-->
|
|
|
|
|
</html>
|
|
|
|
|