-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
72 lines (63 loc) · 38.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="keywords" content="Hexo Theme Redefine"><meta name="author" content="SkyLeech"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="canonical" href="https://blog.skyleech.me/"><meta name="robots" content="index,follow"><meta name="googlebot" content="index,follow"><meta name="revisit-after" content="1 days"><meta property="og:type" content="website"><meta property="og:title" content="SkyLeech's Blog"><meta property="og:url" content="https://blog.skyleech.me/index.html"><meta property="og:site_name" content="SkyLeech's Blog"><meta property="og:locale" content="zh_CN"><meta property="article:author" content="SkyLeech"><meta name="twitter:card" content="summary"><link rel="icon" type="image/png" href="https://s2.loli.net/2024/04/06/pakrN9iuo2xCqRv.png" sizes="192x192"><link rel="apple-touch-icon" sizes="180x180" href="https://s2.loli.net/2024/04/06/pakrN9iuo2xCqRv.png"><meta name="theme-color" content="#A31F34"><link rel="shortcut icon" href="https://s2.loli.net/2024/04/06/pakrN9iuo2xCqRv.png"><title>SkyLeech's Blog - Redefine Your Hexo Journey.</title><link rel="stylesheet" href="/fonts/Chillax/chillax.css"><link rel="stylesheet" href="/css/style.css"><link rel="stylesheet" href="/assets/build/styles.css"><link rel="stylesheet" href="/fonts/GeistMono/geist-mono.css"><link rel="stylesheet" href="/fonts/Geist/geist.css"><script src="/js/libs/anime.min.js"></script><script id="hexo-configurations">window.config={hostname:"blog.skyleech.me",root:"/",language:"zh-CN",path:"search.xml"},window.theme={articles:{style:{font_size:"16px",line_height:1.5,image_border_radius:"14px",image_alignment:"center",image_caption:!1,link_icon:!0,title_alignment:"left",headings_top_spacing:{h1:"5rem",h2:"4rem",h3:"2.8rem",h4:"2.5rem",h5:"2.2rem",h6:"2rem"}},word_count:{enable:!0,count:!0,min2read:!0},author_label:{enable:!0,auto:!1,list:["lol"]},code_block:{copy:!0,style:"mac",highlight_theme:{light:"github",dark:"vs2015"},font:{enable:!1,family:null,url:null}},toc:{enable:!0,max_depth:3,number:!1,expand:!0,init_open:!0},copyright:{enable:!0,default:"cc_by_nc_sa"},lazyload:!0,recommendation:{enable:!1,title:"推荐阅读",limit:3,mobile_limit:2,placeholder:"https://s2.loli.net/2024/04/07/LCbKU7pyHlIEr2o.webp",skip_dirs:[]}},colors:{primary:"#A31F34",secondary:null,default_mode:"light"},global:{fonts:{chinese:{enable:!1,family:null,url:null},english:{enable:!1,family:null,url:null},title:{enable:!1,family:null,url:null}},content_max_width:"1000px",sidebar_width:"210px",hover:{shadow:!0,scale:!0},scroll_progress:{bar:!0,percentage:!0},website_counter:{url:"https://cn.vercount.one/js",enable:!0,site_pv:!0,site_uv:!0,post_pv:!0},single_page:!0,preloader:!0,open_graph:!0,google_analytics:{enable:!1,id:null}},home_banner:{enable:!0,style:"fixed",image:{light:"https://s2.loli.net/2024/04/07/LCbKU7pyHlIEr2o.webp",dark:"https://s2.loli.net/2024/04/07/FPZlvTQO5x16V9z.webp"},title:"Just a Blog",subtitle:{text:["富强","民主","文明","和谐"],hitokoto:{enable:!0,show_author:!1,api:"https://v1.hitokoto.cn?c=a&c=c&c=d&c=k"},typing_speed:100,backing_speed:80,starting_delay:500,backing_delay:1500,loop:!0,smart_backspace:!0},text_color:{light:"#fff",dark:"#d1d1b6"},text_style:{title_size:"2.8rem",subtitle_size:"1.5rem",line_height:1.2},custom_font:{enable:!1,family:null,url:null},social_links:{enable:!0,style:"default",links:{github:"https://github.com/SkyLeech",instagram:null,zhihu:null,twitter:null,email:null},qrs:{weixin:null}}},plugins:{feed:{enable:!1},aplayer:{enable:!1,type:"fixed",audios:[{name:null,artist:null,url:null,cover:null,lrc:null}]},mermaid:{enable:!1,version:"9.3.0"}},version:"2.7.2",navbar:{auto_hide:!1,color:{left:"#f78736",right:"#367df7",transparency:35},width:{home:"1200px",pages:"1000px"},links:{Home:{path:"/",icon:"fa-regular fa-house"},Archives:{path:"/archives",icon:"fa-regular fa-archive"},Categories:{icon:"fa-solid fa-folder",path:"/categories/"},Tags:{icon:"fa-solid fa-tags",path:"/tags/"},About:{icon:"fa-regular fa-user",submenus:{Github:"https://github.com/SkyLeech","DockerHub镜像站":"https://dockerhub.skyleech.me/"}}},search:{enable:!0,preload:!0}},page_templates:{friends_column:2,tags_style:"blur"},home:{sidebar:{enable:!0,position:"left",first_item:"menu",announcement:null,show_on_mobile:!0,links:null},article_date_format:"auto",excerpt_length:200,categories:{enable:!0,limit:3},tags:{enable:!0,limit:3}},footerStart:"2024/4/6 15:00:00"},window.lang_ago={second:"%s 秒前",minute:"%s 分钟前",hour:"%s 小时前",day:"%s 天前",week:"%s 周前",month:"%s 个月前",year:"%s 年前"},window.data={masonry:!1}</script><link rel="stylesheet" href="/fontawesome/fontawesome.min.css"><link rel="stylesheet" href="/fontawesome/brands.min.css"><link rel="stylesheet" href="/fontawesome/solid.min.css"><link rel="stylesheet" href="/fontawesome/regular.min.css"><meta name="generator" content="Hexo 6.3.0"></head><body><div class="progress-bar-container"><span class="scroll-progress-bar"></span> <span class="pjax-progress-bar"></span></div><style>:root{--preloader-background-color:#fff;--preloader-text-color:#000}@media (prefers-color-scheme:dark){:root{--preloader-background-color:#202124;--preloader-text-color:#fff}}@media (prefers-color-scheme:light){:root{--preloader-background-color:#fff;--preloader-text-color:#000}}@media (max-width:600px){.ml13{font-size:2.6rem!important}}.preloader{display:flex;flex-direction:column;gap:1rem;align-items:center;justify-content:center;position:fixed;padding:12px;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background-color:var(--preloader-background-color);z-index:1100;transition:opacity .2s ease-in-out}.ml13{font-size:3.2rem;color:var(--preloader-text-color);letter-spacing:-1px;font-weight:500;font-family:Chillax-Variable,sans-serif;text-align:center}.ml13 .word{display:inline-flex;flex-wrap:wrap;white-space:nowrap}.ml13 .letter{display:inline-block;line-height:1em}</style><div class="preloader"><h2 class="ml13">SkyLeech's Blog</h2><script>var textWrapper = document.querySelector('.ml13');
// Split text into words
var words = textWrapper.textContent.trim().split(' ');
// Clear the existing content
textWrapper.innerHTML = '';
// Wrap each word and its letters in spans
words.forEach(function(word) {
var wordSpan = document.createElement('span');
wordSpan.classList.add('word');
wordSpan.innerHTML = word.replace(/\S/g, "<span class='letter'>$&</span>");
textWrapper.appendChild(wordSpan);
textWrapper.appendChild(document.createTextNode(' ')); // Add space between words
});
var animation = anime.timeline({ loop: true })
.add({
targets: '.ml13 .letter',
translateY: [20, 0],
translateZ: 0,
opacity: [0, 1],
filter: ['blur(5px)', 'blur(0px)'],
easing: "easeOutExpo",
duration: 1200,
delay: (el, i) => 300 + 20 * i,
})
.add({
targets: '.ml13 .letter',
translateY: [0, -20],
opacity: [1, 0],
filter: ['blur(0px)', 'blur(5px)'],
easing: "easeInExpo",
duration: 1000,
delay: (el, i) => 15 * i,
complete: function() {
hidePreloader();
}
}, '-=700');
let themeStatus = JSON.parse(localStorage.getItem('REDEFINE-THEME-STATUS'))?.isDark;
// If the theme status is not found in local storage, check the preferred color scheme
if (themeStatus === undefined || themeStatus === null) {
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
themeStatus = 'dark';
} else {
themeStatus = 'light';
}
}
// Now you can use the themeStatus variable in your code
if (themeStatus) {
document.documentElement.style.setProperty('--preloader-background-color', '#202124');
document.documentElement.style.setProperty('--preloader-text-color', '#fff');
} else {
document.documentElement.style.setProperty('--preloader-background-color', '#fff');
document.documentElement.style.setProperty('--preloader-text-color', '#000');
}
window.addEventListener('load', function () {
setTimeout(hidePreloader, 5000); // Call hidePreloader after 5000 milliseconds if not already called by animation
});
function hidePreloader() {
var preloader = document.querySelector('.preloader');
preloader.style.opacity = '0';
setTimeout(function () {
preloader.style.display = 'none';
}, 200);
}</script></div><main class="page-container" id="swup"><style>.home-banner-container{background:0 0!important}.home-article-item,.right-bottom-tools,.sidebar-content,.sidebar-links,.sidebar-links .links:hover,a.extend,a.page-number,footer.footer{background-color:var(--background-color-transparent-80)!important}.right-bottom-tools:hover,a.extend:hover,a.page-number:hover{background-color:var(--primary-color)!important}.home-article-sticky-label,.site-info{background-color:var(--background-color-transparent-15)!important}.home-article-sticky-label{backdrop-filter:none!important}</style><div class="home-banner-background transition-fade fixed top-0 left-0 w-screen h-screen scale-125 sm:scale-110 box-border will-change-transform bg-cover"><img src="https://s2.loli.net/2024/04/07/LCbKU7pyHlIEr2o.webp" alt="home-banner-background" class="w-full h-full object-cover dark:hidden"> <img src="https://s2.loli.net/2024/04/07/FPZlvTQO5x16V9z.webp" alt="home-banner-background" class="w-full h-full object-cover hidden dark:block"></div><div class="home-banner-container flex justify-center items-center transition-fade relative"><div class="content mt-8 flex flex-col justify-center items-center"><div class="description flex flex-col justify-center items-center w-screen font-medium text-center">Just a Blog<p><i id="subtitle"></i></p></div><div class="absolute bottom-0.5 flex flex-row justify-between max-w-[1340px] items-center w-full px-8 sm:px-12"><div class="flex p-3 bg-gray-300/50 dark:bg-gray-500/40 backdrop-blur-lg border border-white/20 dark:border-gray-500/30 group rounded-full cursor-pointer flex justify-center items-center aspect-square h-full shadow-redefine-flat hover:shadow-redefine-flat-hover transition-shadow" onclick="scrollToMain()"><i class="fa-solid fa-arrow-down fa-fw fa-lg group-hover:translate-y-1 transition-transform"></i></div><div class="social-contacts px-6 py-3 bg-gray-300/50 dark:bg-gray-500/40 backdrop-blur-lg border border-white/20 dark:border-gray-500/30 shadow-redefine-flat rounded-full flex flex-row gap-3 items-center"><span class="social-contact-item github"><a target="_blank" href="https://github.com/SkyLeech"><i class="fa-brands fa-fw fa-lg fa-github"></i></a></span></div></div></div><script>const scrollToMain=()=>{console.log("scroll");document.querySelector(".main-content-container").scrollIntoView({behavior:"smooth"})}</script></div><div class="main-content-container flex flex-col justify-between min-h-dvh"><div class="main-content-header"><header class="navbar-container px-6 md:px-12"><div class="navbar-content transition-navbar has-home-banner"><div class="left"><a class="logo-image h-8 w-8 sm:w-10 sm:h-10 mr-3" href="/"><img src="https://s2.loli.net/2024/04/06/pakrN9iuo2xCqRv.png" class="w-full h-full rounded-sm"> </a><a class="logo-title" href="/"><h1>SkyLeech's Blog</h1></a></div><div class="right"><div class="desktop"><ul class="navbar-list"><li class="navbar-item"><a class="active" href="/"><i class="fa-regular fa-house fa-fw"></i> 首页</a></li><li class="navbar-item"><a href="/archives"><i class="fa-regular fa-archive fa-fw"></i> 归档</a></li><li class="navbar-item"><a href="/categories/"><i class="fa-solid fa-folder fa-fw"></i> 分类</a></li><li class="navbar-item"><a href="/tags/"><i class="fa-solid fa-tags fa-fw"></i> 标签</a></li><li class="navbar-item"><a class="has-dropdown" href="#" onclick=""return" false;"><i class="fa-regular fa-user fa-fw"></i> 关于 <i class="fa-solid fa-chevron-down fa-fw"></i></a><ul class="sub-menu"><li><a target="_blank" rel="noopener" href="https://github.com/SkyLeech">GITHUB</a></li><li><a target="_blank" rel="noopener" href="https://dockerhub.skyleech.me/">DOCKERHUB镜像站</a></li></ul></li><li class="navbar-item search search-popup-trigger"><i class="fa-solid fa-magnifying-glass"></i></li></ul></div><div class="mobile"><div class="icon-item search search-popup-trigger"><i class="fa-solid fa-magnifying-glass"></i></div><div class="icon-item navbar-bar"><div class="navbar-bar-middle"></div></div></div></div></div><div class="navbar-drawer h-dvh w-full absolute top-0 left-0 bg-background-color flex flex-col justify-between"><ul class="drawer-navbar-list flex flex-col px-4 justify-center items-start"><li class="drawer-navbar-item text-base my-1.5 flex flex-col w-full"><a class="py-1.5 px-2 flex flex-row items-center justify-between gap-1 hover:!text-primary active:!text-primary text-2xl font-semibold group border-b border-border-color hover:border-primary w-full active" href="/"><span>首页 </span><i class="fa-regular fa-house fa-sm fa-fw"></i></a></li><li class="drawer-navbar-item text-base my-1.5 flex flex-col w-full"><a class="py-1.5 px-2 flex flex-row items-center justify-between gap-1 hover:!text-primary active:!text-primary text-2xl font-semibold group border-b border-border-color hover:border-primary w-full" href="/archives"><span>归档 </span><i class="fa-regular fa-archive fa-sm fa-fw"></i></a></li><li class="drawer-navbar-item text-base my-1.5 flex flex-col w-full"><a class="py-1.5 px-2 flex flex-row items-center justify-between gap-1 hover:!text-primary active:!text-primary text-2xl font-semibold group border-b border-border-color hover:border-primary w-full" href="/categories/"><span>分类 </span><i class="fa-solid fa-folder fa-sm fa-fw"></i></a></li><li class="drawer-navbar-item text-base my-1.5 flex flex-col w-full"><a class="py-1.5 px-2 flex flex-row items-center justify-between gap-1 hover:!text-primary active:!text-primary text-2xl font-semibold group border-b border-border-color hover:border-primary w-full" href="/tags/"><span>标签 </span><i class="fa-solid fa-tags fa-sm fa-fw"></i></a></li><li class="drawer-navbar-item-sub text-base my-1.5 flex flex-col w-full"><div class="py-1.5 px-2 flex flex-row items-center justify-between gap-1 hover:!text-primary active:!text-primary cursor-pointer text-2xl font-semibold group border-b border-border-color hover:border-primary w-full active" navbar-data-toggle="submenu-About"><span>关于 </span><i class="fa-solid fa-chevron-right fa-sm fa-fw transition-all"></i></div><div class="flex-col items-start px-2 py-2 hidden" data-target="submenu-About"><div class="drawer-navbar-item text-base flex flex-col justify-center items-start hover:underline active:underline hover:underline-offset-1 rounded-3xl"><a class="text-third-text-color text-xl" target="_blank" rel="noopener" href="https://github.com/SkyLeech">GITHUB</a></div><div class="drawer-navbar-item text-base flex flex-col justify-center items-start hover:underline active:underline hover:underline-offset-1 rounded-3xl"><a class="text-third-text-color text-xl" target="_blank" rel="noopener" href="https://dockerhub.skyleech.me/">DOCKERHUB镜像站</a></div></div></li></ul><div class="statistics flex justify-around my-2.5"><a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/tags"><div class="number text-2xl sm:text-xl text-second-text-color font-semibold">27</div><div class="label text-third-text-color text-sm">标签</div></a><a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/categories"><div class="number text-2xl sm:text-xl text-second-text-color font-semibold">10</div><div class="label text-third-text-color text-sm">分类</div></a><a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/archives"><div class="number text-2xl sm:text-xl text-second-text-color font-semibold">17</div><div class="label text-third-text-color text-sm">文章</div></a></div></div><div class="window-mask"></div></header></div><div class="main-content-body"><div class="home-sidebar-container"><div class="sticky-container sticky"><div class="sidebar-content"><div class="avatar flex justify-center"><img src="https://s2.loli.net/2024/04/06/JXELKqHIMQFw3U6.jpg"></div><div class="author flex flex-col justify-center my-2.5 mx-0"><div class="name">SkyLeech</div><div class="label">lol</div></div><div class="statistics flex justify-around my-2.5"><a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/tags"><div class="number text-2xl sm:text-xl text-second-text-color font-semibold">27</div><div class="label text-third-text-color text-sm">标签</div></a><a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/categories"><div class="number text-2xl sm:text-xl text-second-text-color font-semibold">10</div><div class="label text-third-text-color text-sm">分类</div></a><a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/archives"><div class="number text-2xl sm:text-xl text-second-text-color font-semibold">17</div><div class="label text-third-text-color text-sm">文章</div></a></div></div></div></div><div class="main-content"><div class="home-content-container"><ul class="home-article-list"><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/10/27/npm%E5%B8%B8%E8%AF%86/">npm常识</a></h3><div class="home-article-content markdown-body">npm简介npm是 Node.js 标准的软件包管理器。 它起初是作为下载和管理 Node.js 包依赖的方式,但其现在也已成为前端Javascript 中使用的工具。 使用 初始化清单文件:npm init -y(得到 package.json 文件,有则略过此命令) 下载软件包:npm i 软件包名称 使用软件包 例子图解 安装所有依赖 命令:npm i 全局软...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Sun Oct 27 2024 22:37:03 GMT+0800">2024-10-27 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/nodejs/">nodejs</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a> </li><li>| <a href="/tags/%E5%89%8D%E7%AB%AF/">前端</a> </li><li>| <a href="/tags/nodejs/">nodejs</a> </li></ul></span></div><a href="/2024/10/27/npm%E5%B8%B8%E8%AF%86/">阅读全文<span class="seo-reader-text">npm常识</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/10/22/Swagger3-GET%E8%AF%B7%E6%B1%82%E4%BD%BF%E7%94%A8%E5%AF%B9%E8%B1%A1%E6%8E%A5%E6%94%B6-Query-%E5%8F%82%E6%95%B0%EF%BC%8C%E6%B3%A8%E8%A7%A3%E6%80%8E%E4%B9%88%E5%86%99%EF%BC%9F/">Swagger3 GET请求使用对象接收 Query 参数,注解怎么写?</a></h3><div class="home-article-content markdown-body">问题描述从 Swagger2 迁移到 Swagger3,遇到一个问题:Swagger3 如何处理 GET 请求的对象参数? 在 Swagger2 中,接口上不需要添加额外的 Swagger 注解,参数类添加 @ApiModel 注解,参数类的字段添加 @ApiModelProperty 注解即可。 1234567//Swagger2@GetMapping("/page")...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Tue Oct 22 2024 21:44:41 GMT+0800">2024-10-22 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/SpringBoot/">SpringBoot</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a> </li><li>| <a href="/tags/SpringBoot/">SpringBoot</a> </li><li>| <a href="/tags/Mybatis-Plus/">Mybatis-Plus</a> </li></ul></span></div><a href="/2024/10/22/Swagger3-GET%E8%AF%B7%E6%B1%82%E4%BD%BF%E7%94%A8%E5%AF%B9%E8%B1%A1%E6%8E%A5%E6%94%B6-Query-%E5%8F%82%E6%95%B0%EF%BC%8C%E6%B3%A8%E8%A7%A3%E6%80%8E%E4%B9%88%E5%86%99%EF%BC%9F/">阅读全文<span class="seo-reader-text">Swagger3 GET请求使用对象接收 Query 参数,注解怎么写?</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/10/13/%E5%85%B3%E4%BA%8EMybatis-Plus%E4%B8%8ESpring%E7%89%88%E6%9C%AC%E5%85%BC%E5%AE%B9%E9%97%AE%E9%A2%98/">关于Mybatis-Plus与Spring版本兼容问题</a></h3><div class="home-article-content markdown-body">Spring Boot 升级 3.2 报错 Invalid value type for attribute ‘factoryBeanObjectType’: java.lang.String问题描述升级 Spring Boot 3.2 版本项目启动报错: 1java.lang.IllegalArgumentException: Invalid value type for attribut...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Sun Oct 13 2024 00:53:08 GMT+0800">2024-10-13 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/SpringBoot/">SpringBoot</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a> </li><li>| <a href="/tags/SpringBoot/">SpringBoot</a> </li><li>| <a href="/tags/Bug/">Bug</a> </li></ul></span></div><a href="/2024/10/13/%E5%85%B3%E4%BA%8EMybatis-Plus%E4%B8%8ESpring%E7%89%88%E6%9C%AC%E5%85%BC%E5%AE%B9%E9%97%AE%E9%A2%98/">阅读全文<span class="seo-reader-text">关于Mybatis-Plus与Spring版本兼容问题</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/09/29/Shell%E8%84%9A%E6%9C%AC%E5%85%A5%E9%97%A8/">Shell脚本入门</a></h3><div class="home-article-content markdown-body">Shell脚本文件编写规范后缀名规范建议用.sh结尾 首行格式规范首行需要设置Shell解析器的类型,语法 1#!/bin/bash 含义:设置当前Shell脚本文件采用bash解析器运行 注释格式单行注释,语法 1# 注释内容 多行注释,语法 1234:<<!# 注释内容1# 注释内容2! 脚本文件的常用执行3种方式介绍1.sh解析器执行方式 语法:sh 脚...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Sun Sep 29 2024 23:03:39 GMT+0800">2024-09-29 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/Shell/">Shell</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/%E5%91%BD%E4%BB%A4/">命令</a> </li><li>| <a href="/tags/Shell/">Shell</a> </li></ul></span></div><a href="/2024/09/29/Shell%E8%84%9A%E6%9C%AC%E5%85%A5%E9%97%A8/">阅读全文<span class="seo-reader-text">Shell脚本入门</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/09/11/%E9%9D%A2%E8%AF%95%E5%85%AB%E8%82%A1%E6%96%87/">面试八股文</a></h3><div class="home-article-content markdown-body">Redis篇使用场景 缓存缓存穿透查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库 123解决方案一:缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存优点:简单缺点:消耗内存,可能会发生数据不一致的问题 123解决方案二:布隆过滤器优点:内存占用较少,没有多余key缺点:实现复杂,存在误判 布隆过滤器作用:检索一个元素是否在一个集合中。 ...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Wed Sep 11 2024 23:03:09 GMT+0800">2024-09-11 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/Java/">Java</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/Java/">Java</a> </li><li>| <a href="/tags/%E9%9D%A2%E8%AF%95/">面试</a> </li></ul></span></div><a href="/2024/09/11/%E9%9D%A2%E8%AF%95%E5%85%AB%E8%82%A1%E6%96%87/">阅读全文<span class="seo-reader-text">面试八股文</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/09/07/%E6%A6%82%E5%BF%B5POJO%E3%80%81DTO%E3%80%81DAO%E3%80%81PO%E3%80%81BO%E3%80%81VO%E3%80%81QO%E3%80%81ENTITY%E8%AF%A6%E8%A7%A3/">概念POJO、DTO、DAO、PO、BO、VO、QO、ENTITY详解</a></h3><div class="home-article-content markdown-body">一、POJO(Plain Ordinary Java Object 简单Java对象)实际就是普通JavaBeans,是为了避免和EJB(Enterprise Java Beans 企业级JavaBeans)混淆所创造的简称,也称为(Plain Old Java Object 又普通又老的对象)。 相比于EJB来说,的确是老的对象,因为ORM中间件的日趋流行,POJO又重新焕发了光彩。 PO...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Sat Sep 07 2024 17:14:34 GMT+0800">2024-09-07 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/SpringBoot/">SpringBoot</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/SpringBoot/">SpringBoot</a> </li><li>| <a href="/tags/Java/">Java</a> </li><li>| <a href="/tags/%E6%A6%82%E5%BF%B5/">概念</a> </li></ul></span></div><a href="/2024/09/07/%E6%A6%82%E5%BF%B5POJO%E3%80%81DTO%E3%80%81DAO%E3%80%81PO%E3%80%81BO%E3%80%81VO%E3%80%81QO%E3%80%81ENTITY%E8%AF%A6%E8%A7%A3/">阅读全文<span class="seo-reader-text">概念POJO、DTO、DAO、PO、BO、VO、QO、ENTITY详解</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/09/03/Linux%E5%9F%BA%E7%A1%80%E5%91%BD%E4%BB%A4/">Linux基础命令</a></h3><div class="home-article-content markdown-body">一、Linux的目录结构1.Linux的目录结构Linux的目录结构是一个树型结构,没有盘符概念,只有一个根目录/ 2.Linux路径的描述方式路径之间的层级关系使用/来表示 如: /usr/local/hello.txt 二、Linux命令入门1.什么是命令、命令行 命令行:即Linux终端(Terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Tue Sep 03 2024 23:12:38 GMT+0800">2024-09-03 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/Linux/">Linux</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a> </li><li>| <a href="/tags/Linux/">Linux</a> </li><li>| <a href="/tags/%E5%91%BD%E4%BB%A4/">命令</a> </li></ul></span></div><a href="/2024/09/03/Linux%E5%9F%BA%E7%A1%80%E5%91%BD%E4%BB%A4/">阅读全文<span class="seo-reader-text">Linux基础命令</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/07/24/JWT%E4%BB%A4%E7%89%8C/">JWT令牌</a></h3><div class="home-article-content markdown-body">简介 pom坐标 生成jwt</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Wed Jul 24 2024 23:37:26 GMT+0800">2024-07-24 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/SpringBoot/">SpringBoot</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a> </li><li>| <a href="/tags/JWT/">JWT</a> </li><li>| <a href="/tags/SpringBoot/">SpringBoot</a> </li></ul></span></div><a href="/2024/07/24/JWT%E4%BB%A4%E7%89%8C/">阅读全文<span class="seo-reader-text">JWT令牌</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/07/21/SpringBoot-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%B0%8F%E7%9F%A5%E8%AF%86/">SpringBoot-配置文件小知识</a></h3><div class="home-article-content markdown-body">@ConfigurationProperties配置文件中key的名字必须和实体类中的属性名一致 实体类必须有get/set方法,所以要加@Data注解 实体类交给ioc容器管理,加上@Component 用@ConfigurationProperties指定前缀 例: 1@ConfigurationProperties(prefix = "aliyun.oss"...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Sun Jul 21 2024 21:20:07 GMT+0800">2024-07-21 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/SpringBoot/">SpringBoot</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a> </li><li>| <a href="/tags/SpringBoot/">SpringBoot</a> </li><li>| <a href="/tags/Java/">Java</a> </li></ul></span></div><a href="/2024/07/21/SpringBoot-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%B0%8F%E7%9F%A5%E8%AF%86/">阅读全文<span class="seo-reader-text">SpringBoot-配置文件小知识</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li><li class="home-article-item"><div class="flex flex-col gap-5 px-7 pb-7 pt-7"><h3 class="home-article-title"><a href="/2024/05/29/C++%E5%8F%8B%E5%85%83/">C++友元</a></h3><div class="home-article-content markdown-body">在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术 友元的关键字为 friend 友元的三种实现 全局函数做友元 类做友元 成员函数做友元 全局函数做友元12345678910111213141516171819class Building{ //告诉编译器goodGay全局函数是Building类的好朋友,可以访问类中的私有内容 ...</div><div class="home-article-meta-info-container"><div class="home-article-meta-info"><span><i class="fa-solid fa-calendars"></i> <span class="home-article-date" data-date="Wed May 29 2024 15:05:33 GMT+0800">2024-05-29 </span></span><span class="home-article-category"><i class="fa-solid fa-folders"></i> <ul><li><a href="/categories/C/">C++</a> </li></ul></span><span class="home-article-tag"><i class="fa-solid fa-tags"></i> <ul><li><a href="/tags/C/">C++</a> </li><li>| <a href="/tags/%E5%8F%8B%E5%85%83/">友元</a> </li><li>| <a href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a> </li></ul></span></div><a href="/2024/05/29/C++%E5%8F%8B%E5%85%83/">阅读全文<span class="seo-reader-text">C++友元</span> <i class="fa-solid fa-angle-right"></i></a></div></div></li></ul><div class="home-paginator px-7 py-5"><div class="paginator"><span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="extend next" rel="next" href="/page/2/"><i class="fa-regular fa-angle-right"></i></a></div></div></div><div class="comment-container pjax"></div></div></div><div class="main-content-footer"><footer class="footer mt-5 py-5 h-auto text-base text-third-text-color relative border-t-2 border-t-border-color"><div class="info-container py-3 text-center"><div class="text-center">© <span>2024</span> - 2024 <i class="fa-solid fa-heart fa-beat" style="--fa-animation-duration:0.5s;color:#f54545"></i> <a href="/">SkyLeech</a><p class="post-count space-x-0.5"><span>共撰写了 17 篇文章 </span><span>共 14.9k 字</span></p></div><script data-swup-reload-script src="https://cn.vercount.one/js"></script><div class="relative text-center lg:absolute lg:right-[20px] lg:top-1/2 lg:-translate-y-1/2 lg:text-right"><span id="busuanzi_container_site_uv" class="lg:!block"><span class="text-sm">访问人数</span> <span id="busuanzi_value_site_uv"></span> </span><span id="busuanzi_container_site_pv" class="lg:!block"><span class="text-sm">总访问量</span> <span id="busuanzi_value_site_pv"></span></span></div><div class="relative text-center lg:absolute lg:left-[20px] lg:top-1/2 lg:-translate-y-1/2 lg:text-left"><span class="lg:block text-sm">由 <?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="relative top-[2px] inline-block align-baseline" version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1rem" height="1rem" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"><path fill="#0E83CD" d="M256.4,25.8l-200,115.5L56,371.5l199.6,114.7l200-115.5l0.4-230.2L256.4,25.8z M349,354.6l-18.4,10.7l-18.6-11V275H200v79.6l-18.4,10.7l-18.6-11v-197l18.5-10.6l18.5,10.8V237h112v-79.6l18.5-10.6l18.5,10.8V354.6z"/></svg><a target="_blank" class="text-base" href="https://hexo.io">Hexo</a> 驱动</span> <span class="text-sm lg:block">主题 <a class="text-base" target="_blank" href="https://github.com/EvanNotFound/hexo-theme-redefine">Redefine v2.7.2</a></span></div><div>博客已运行 <span class="odometer" id="runtime_days"></span> 天 <span class="odometer" id="runtime_hours"></span> 小时 <span class="odometer" id="runtime_minutes"></span> 分钟 <span class="odometer" id="runtime_seconds"></span> 秒</div><script data-swup-reload-script>try{function odometer_init(){document.querySelectorAll(".odometer").forEach(e=>{new Odometer({el:e,format:"( ddd).dd",duration:200})})}odometer_init()}catch(e){}</script></div></footer></div></div><div class="right-side-tools-container"><div class="side-tools-container"><ul class="hidden-tools-list"><li class="right-bottom-tools tool-font-adjust-plus flex justify-center items-center"><i class="fa-regular fa-magnifying-glass-plus"></i></li><li class="right-bottom-tools tool-font-adjust-minus flex justify-center items-center"><i class="fa-regular fa-magnifying-glass-minus"></i></li><li class="right-bottom-tools tool-dark-light-toggle flex justify-center items-center"><i class="fa-regular fa-moon"></i></li><li class="right-bottom-tools tool-scroll-to-bottom flex justify-center items-center"><i class="fa-regular fa-arrow-down"></i></li></ul><ul class="visible-tools-list"><li class="right-bottom-tools toggle-tools-list flex justify-center items-center"><i class="fa-regular fa-cog fa-spin"></i></li><li class="right-bottom-tools tool-scroll-to-top flex justify-center items-center"><i class="arrow-up fas fa-arrow-up"></i> <span class="percent"></span></li></ul></div></div><div class="image-viewer-container"><img src=""></div><div class="search-pop-overlay"><div class="popup search-popup"><div class="search-header"><span class="search-input-field-pre"><i class="fa-solid fa-keyboard"></i></span><div class="search-input-container"><input autocomplete="off" autocorrect="off" autocapitalize="off" placeholder="站内搜索您需要的内容..." spellcheck="false" type="search" class="search-input"></div><span class="popup-btn-close"><i class="fa-solid fa-times"></i></span></div><div id="search-result"><div id="no-result"><i class="fa-solid fa-spinner fa-spin-pulse fa-5x fa-fw"></i></div></div></div></div></main><script src="/js/libs/Swup.min.js"></script><script src="/js/libs/SwupSlideTheme.min.js"></script><script src="/js/libs/SwupScriptsPlugin.min.js"></script><script src="/js/libs/SwupProgressPlugin.min.js"></script><script src="/js/libs/SwupScrollPlugin.min.js"></script><script src="/js/libs/SwupPreloadPlugin.min.js"></script><script>const swup=new Swup({plugins:[new SwupScriptsPlugin({optin:!0}),new SwupProgressPlugin,new SwupScrollPlugin({offset:80}),new SwupSlideTheme({mainElement:".main-content-body"}),new SwupPreloadPlugin],containers:["#swup"]})</script><script src="/js/tools/imageViewer.js" type="module"></script><script src="/js/utils.js" type="module"></script><script src="/js/main.js" type="module"></script><script src="/js/layouts/navbarShrink.js" type="module"></script><script src="/js/tools/scrollTopBottom.js" type="module"></script><script src="/js/tools/lightDarkSwitch.js" type="module"></script><script src="/js/layouts/categoryList.js" type="module"></script><script src="/js/tools/localSearch.js" type="module"></script><script src="/js/tools/codeBlock.js" type="module"></script><script src="/js/layouts/lazyload.js" type="module"></script><script src="/js/tools/runtime.js"></script><script src="/js/libs/odometer.min.js"></script><link rel="stylesheet" href="/assets/odometer-theme-minimal.css"><script src="/js/libs/Typed.min.js"></script><script src="/js/plugins/typed.js" type="module"></script><script src="/js/tools/tocToggle.js" type="module" data-swup-reload-script=""></script><script src="/js/layouts/toc.js" type="module" data-swup-reload-script=""></script><script src="/js/plugins/tabs.js" type="module" data-swup-reload-script=""></script><script src="/js/libs/moment-with-locales.min.js" data-swup-reload-script=""></script><script src="/js/layouts/essays.js" type="module" data-swup-reload-script=""></script></body></html>