动态
开发
利用 IDEA 高效 debug
暂停在 Idea 中调试 java 代码时,断点类型有两种: All使用all模式对于程序中含有多个线程来说,所有的线程都要在当前位置被阻塞,谁先来就先阻塞谁,发生阻塞时其他的线程当前时刻执行到哪里就在哪里进行原地等待 Tread如果是Thread的模式,所有的线程都会执行到断点处然后阻塞,每个线程依次进行调试,依次进入断点中 不暂停的 debug查看变量值不暂停直接观察相关变量值 查看控制台输出 强行改变变量值只能用于修改Boolean类型的值(如果勾选了Suspend,则是条件断点) 查看调用堆栈可以直接观察到调用堆栈 命中断点如果执行了断点所在位置,会在控制台打出一行日志 快速 ...
开发
Spring AOP 内部调用失效问题
Spring AOP基本原理Spring AOP 是基于动态代理机制实现的,通过动态代理机制生成目标对象的代理对象,当外部调用目标对象的相关方法时,Spring注入的其实是代理对象Proxy,通过调用代理对象的方法执行AOP增强处理,然后回调目标对象的方法。 失效原因AOP使用的是JDK动态代理或者cglib代理的机制,它会给类生成一个代理类,事务的相关操作都在代理类上完成。 而当类内部调用增强方法时,使用的是实例调用,并没有通过代理类调用方法,所以会导致事务失效 只有引用的是被 动态代理 所创对象,才能被Spring增强,实现期望的AOP功能。 复现创建了 Spring Boot 项目,依 ...
开发
本地缓存Caffeine Cache
说明Spring Boot 1.x版本中的默认本地缓存是Guava Cache。在 Spring5 (SpringBoot 2.x)后,Spring 官方放弃了 Guava Cache 作为缓存机制,而是使用性能更优秀的 Caffeine 作为默认缓存组件。 适用场景因为Caffeine cache是类似于 Guava cache 的一种内存缓存,所以适合单机的数据缓存;因为存储在内存的,没有持久化,因此适合一些短期或者启动以及结果信息的短暂缓存。当涉及到多机多服务的缓存时候,属于分布式缓存的范畴,可以使用Redis、memcached等分布式的缓存组件。 使用引入依赖12345<dep ...
开发
Docker Secrets 的使用
Docker命令行工具提供了docker secret命令来管理敏感信息 docker secret 只能从Docker Swarm模式的manager节点调用,如果在本机进行试验,请先执行 Note: Docker secrets are only available to swarm services, not to standalone containers. To use this feature, consider adapting your container to run as a service. Stateful containers can typically run ...
经验总结
outline 部署
开始使用 docker-compose 完成 docker-compose 文件,需要修改postgres的密码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071version: '3.8'services: outline: image: docker.io/outlinewiki/outline:0.72.2 container_name: ...
开发
Git 合并几次 commit 记录
合并几次 commit 记录查看需要合并的 commit 记录 1git log 运行以下命令,将你想要合并的 commit 记录的数量替换为 <要合并的次数>: 1git rebase -i HEAD~<要合并的次数> 例如,如果你想合并最近的 5 次 commit 记录,那么命令会是: 1git rebase -i HEAD~5 输入命令回车以后,会打开一个交互式的文本编辑器,显示了你选择的 commit 记录(越往下的越新)。每个 commit 记录前面都有一个动作,通常是 pick。 你需要将你想要合并的 commit 记录的动作从 pick 改为 sq ...
经验总结
PicGo-Core 配置 BackBlaze B2
安装需要安装的 Node.js 版本 >= 16,全局安装使用命令【官方文档】 1npm install picgo -g 支持PicGo-Core的插件:插件查找 使用的S3插件:https://www.npmjs.com/package/picgo-plugin-s3 安装插件 1picgo add s3 配置配置文件位置 %USERPROFILE%\.picgo\config.json 1234567891011121314151617181920212223{ "picBed": { "uploader" ...
开发
SpringBoot单元测试
Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库 基础部分 JUnit 5介绍JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform:Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。 JUnit Jupiter:JUnit Jupiter提供了JUnit5的新的编程模型,是JUnit5新特性的核心。内部包含了一个测试引擎,用于在Junit Platform上运行。 JUnit Vintage:提供了 ...
经验总结
Python3 独立运行环境
错误提示直接使用pip命令安装软件包,出现报错 error: externally-managed-environment × This environment is externally managed╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, cr ...
经验总结
FileBrowser 简单配置
安装 FileBrowser1curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash 配置 FileBrowser首先创建配置数据库,.filebrowser.db 会在当前目录下 1filebrowser -d .filebrowser.db config init 设置监听地址(需要外网访问的话,设置为 0.0.0.0) 1filebrowser -d .filebrowser.db config set --address 0.0.0.0 设置监听端口 1filebrowse ...