- 博客(94)
- 收藏
- 关注
原创 常用的Docker命令
本文总结了常用的Docker命令操作指南,包括容器日志查看、镜像/容器管理、容器状态控制(暂停/停止/启动)、容器创建与删除等核心功能。特别介绍了docker run的详细参数配置,以及如何通过docker-compose管理容器集群。还提供了容器文件映射、进入容器终端等实用技巧,并对比了暂停容器与停止容器的区别。最后分享了将容器内文件映射到宿主机的操作方法。这些命令覆盖了Docker日常使用的主要场景,适合开发运维人员快速查阅。
2025-06-04 23:57:27
623
原创 封装一个小程序选择器(可多选、单选、搜索)
因为Uniapp没有提供一个好用的选择器,所以自己封装了一个Uniapp可多选,可单选、可搜索的选择器组件
2025-05-28 21:08:37
471
原创 通过觅思文档项目实现Obsidian文章浏览器在线访问
觅思文档(MrDoc)是一个开源项目,用户可以通过GitHub或Gitee获取其代码。部署步骤包括在服务器上拉取代码、使用Docker进行安装、创建管理员账号,并通过指定IP地址访问。此外,觅思文档支持与Obsidian笔记软件的同步,用户需安装特定插件并设置访问地址和token。具体操作包括在Obsidian中配置觅思文档的访问信息,生成token,并通过右键菜单进行同步。这些步骤使得用户能够轻松管理和同步文档内容。
2025-05-18 21:39:42
449
原创 Hugo 安装保姆级教程(搭建个人blog)
本文详细介绍了如何在Windows系统上安装和配置Hugo静态网站生成器。首先,从Hugo的GitHub项目地址下载并解压Hugo可执行文件。接着,创建博客文件夹并配置环境变量,以便在任意位置使用Hugo命令。然后,通过命令行创建博客网站,并生成测试文章。文章创建后,需修改草稿状态以便展示。随后,从Hugo官网选择合适的主题,并将其放入themes文件夹中,同时在配置文件中指定主题。最后,通过命令行启动本地服务器,访问并测试博客网站。整个过程简洁明了,适合初学者快速上手Hugo。
2025-05-18 21:33:41
690
原创 idea中的--、-D、-X的区别
含义:-D用于设置JVM的系统属性(System Properties),格式为-Dkey=value,这些属性在程序运行时可以通过System.getProperty(“key”)读取。使用场景用于配置JVM或应用程序的运行时环境,比如调试开关、路径、配置文件等。是JVM级别的参数,影响整个程序。在IDEA中设置:在“Run/Debug Configurations”的“VM options”字段中输入。例子配置:-Dlog.level=debug -Dfile.path=/tmp。
2025-04-01 10:25:04
695
原创 在 Windows 中查看 Nginx 当前占用的端口
在 Windows 中查看 Nginx 当前占用的端口,可以通过以下步骤操作:Win + Rresmonnginx.exe80。
2025-03-29 14:51:18
749
原创 Quartz知识点总结
简单的定时任务使用Timer或者ScheduledExecutorServicequartz支持复杂的定时执行功能。支持ram存储(内存存储)和持久化存储。quartz有分布式和集群能力例子:使用了 Builder 模式(建造者模式):Quartz基本的实现原理job和jobdetail的关系是什么?Job(任务)是一个接口,表示一个具体的任务。你需要实现这个接口,并在 execute 方法中定义任务的具体逻辑。Job 只关注任务的执行逻辑,即 做什么。JobDetail(任务详情)JobD
2025-03-19 21:47:57
842
原创 方法引用和lambda表达式的奥妙
下面代码中两处使用了lambda表达式,一个是filter内,一个是forEach内。其中,forEach内的lambda表达式可以被方法引用替代,但是filter内的lambda表达式不能被方法引用替代。使用方法引用取代的做法:为什么filter内的lambda表达式不能使用方法引用取代,但是forEach内的lambda表达式可以被方法引用取代呢?这个需要看lambda表达式里面的内容了。在上面案例中,filter内的lambda表达式是写一个对流中元素进行处理的逻辑。而forEach内的lambd
2024-12-14 23:52:45
801
原创 重载方法匹配规则
方法重载后,方法调用处可能会遇到应该选择哪个重载方法的问题,如果只有唯一个重载方法可以匹配,那么就没问题,肯定选择这个唯一匹配的重载方法进行执行。但是,如果是有多个重载方法可以匹配调用的实参,那么这时候就会选择最合适的重载方法去执行。那么jvm选择的规则是什么呢?
2024-12-05 11:18:04
700
原创 lambda表达式的规则
成员内部类需要通过外部类的实例去调用。返回值是外部类名.内部类名,创建内部类实例的做法是外部类实例.new 内部类名。这种成员内部类的使用其实比较少,所以印象不是很深,要记一下。//其实这个要理解也好理解,就理解为new的优先级比点号的优先级高就行了,这样就可以理解new Outer().new Inner();了,理解为:外部类实例的内部类实例。点号理解为“的”。内部类中方法或者代码块中使用this.属性名或者直接使用属性名。
2024-12-04 11:49:37
793
原创 mybatis从浅入深一步步演变分析
超详细的mybatis笔记。mybatis从浅入深的分析怎么一步步变为springboot集成的mybatis
2024-10-31 23:07:33
1115
原创 java代理模式(动态代理、静态代理、需要实现类的JDK代理、不需要实现类的JDK动态代理、CGLIB代理)
java代理模式(动态代理、静态代理、需要实现类的JDK代理、不需要实现类的JDK动态代理、CGLIB代理)。其中mybatis使用的就是没有实现类的动态代理。
2024-10-07 22:49:28
1015
原创 SpEL表达式相关知识点
Spring 表达式,即 Spring Expression Language,简称 SpEL。那么是什么SpEL表达式呢?SpEL表达式的语法是什么样的?SpEL表达式主要用于哪里?在注解**@Value**中使用(这个其实我个人觉得和第三点类似,@Value中能写SpEL表达式,是因为@Value的解析程序用了Expression对象来解析了SpEL表达式,SpringBoot会自动调用这个内部解析程序,所以可以写。就像SpringSecurity中方法上的注解@PreAuthorize(“@ss.ha
2024-07-07 16:13:41
1222
1
原创 AOP、注解、EL表达、若依权限,Security原理综合分析
本文最开始只想记录AOP的使用,后来又扩展了很多其他的相关内容,比如SpringSecurity、SpEL表达式等知识点
2024-05-26 23:58:05
550
2
转载 mybatis各种批量操作(优秀摘录)
是扩展运算符,是es6的新语法for:简单、可以通过索引访问或者修改原数组while、do while:循环条件确定,和java一样for in:可以遍历对象出对象的属性和属性值。for of:既可以遍历列表也可以遍历对象。可以拿到列表的索引和值,也可以拿到对象的属性和属性值forEach:省内存,但是不能使用for寻找中的break。可以拿到数组的索引和元素。可以获取对象中的属性值。注意:forEach会改变原来数组中的值。forEach方法没有返回值,一般用于直接修改原数组;
2024-03-20 00:08:44
707
原创 for、while、do While、for in、forEach、map、reduce、every、some、filter的使用
是扩展运算符,是es6的新语法for:简单、可以通过索引访问或者修改原数组while、do while:循环条件确定,和java一样for in:可以遍历对象出对象的属性和属性值。for of:既可以遍历列表也可以遍历对象。可以拿到列表的索引和值,也可以拿到对象的属性和属性值forEach:省内存,但是不能使用for寻找中的break。可以拿到数组的索引和元素。可以获取对象中的属性值。注意:forEach会改变原来数组中的值。forEach方法没有返回值,一般用于直接修改原数组;
2024-03-10 22:13:23
1054
原创 Java Stream 的常用API
会返回处理结果中的第一个元素,而findAny会返回最先处理完的元素。我不知道,但是,不重要,因为用得场景不多,因为多线程下,谁是处理结果中的第一个元素一般不重要,因为谁都可能是第一个,所以这里我不去了解findFirst是否可能返回的不是第一个符合条件的元素了。总之就是串行流下,findFirst和findAny结果一样,并行流下,findAny效率更高,且并行流一般不在意谁是第一个,所以我建议平时使用findAny。如果要操作的元素不是int,是double,我们也可以用mapToDouble也行。
2023-11-13 23:41:18
626
原创 Collectors.groupingBy方法的使用
业务场景:现在有5个人,这些人都年龄分部在18-30岁之间。现要求把他们按照年龄进行分组key:年龄value:数据列表输出结果如下:效果相当于是,把list这个集合里面存放的100个人每个人都调用Perple的getAge方法,按照getAge方法的返回值进行分组。每个组是一个Map类型的对象。每个组,即Map,这个对象中的键是getAge的返回值,即,分组的依据。
2023-11-13 23:25:55
5862
原创 for、while、do While、for in、forEach、map、reduce、every、some、filter的使用
js中的for、while、do While、for in、forEach、map、reduce、every、some、filter的使用
2023-10-22 19:11:39
278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人