SpringAOP
SpringAOP的原理根据需要代理的目标对象的类型,SpringAOP会选择不同的代理方式生成代理类。
如果目标对象是一个Java接口,Spring会使用Java动态代理(反射)来生产代理类,如果目标对象是一个普通的java类,而不是接口,Spring会使用CGLib代理来生成代理类,CGLib是一种基于字节码的代理模式。
spring创建代理类后,会替换掉原先的对象引用,这样在调用目标增强方法时就会被增强。
SpringAOP调用本类中增强方法不生效如果某个类中,一个方法A是增强方法,同样在本类中的另一个方法B在调用A的时候并不会触发增强,因为增强的原理是替换掉对象引用,但在同一个类中的直接引用是通过this指针调用的,不会调用到被增强的代理类中的A方法。
解决方法:
使用当前类的被代理类执行A方法
AopContext.currentProxy()
1234public void B() { System.out.println("method B"); ((Son) AopContext.currentProxy()).A(); ...
安信可开发环境搭建
参考资料零基础搭建小安派Windows 开发环境 - 小安派S1教程合集 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)
(一)记录小安派之开发环境搭建(Windows) - 小安派S1教程合集 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)
前置环境由于我的电脑上vsc(vs code)和git都安装过了,不再重新安装一次了。不熟悉的朋友可在本博客查找对应文章:Boranget.博客(进入博客右上角有搜索图标)
安装vsc
安装并配置git
拉取源码在你常用的项目目录新建一个项目文件夹,进入,地址栏输入cmd打开控制台(或者通过别的方式在cmd中进入这个文件夹)
执行(需要配置好git)
1git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git
修改子模块源考虑到有些小伙伴的网络原因,拉取github网络不稳定,这里将github仓库换为gitee仓。
进入拉取下来的项目文件夹AiPi- ...
JupyterNotebook的安装
安装pythonhttps://www.python.org/
找到最新版或者你要下载的版本,往下滑,找到下载列表,选择合适的系统,点击下载。
直接运行安装包,可一路选择默认,最后会要求修改path长度限制,允许即可。
pip设置清华源
1pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip安装jupyter1pip install jupyter notebook
运行1jupyter notebook
alist挂载阿里云
参考资料一键脚本 | AList文档 (nn.ci)
安装alist1curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install
设置密码进入alist安装目录 /opt/alist
1234567---------如何获取密码?--------先cd到alist所在目录:cd /opt/alist随机设置新密码:./alist admin random或者手动设置新密码:./alist admin set NEW_PASSWORD
访问访问ip:5244后使用admin和密码进行登录
管理点击下方管理按钮进入管理界面
挂载阿里云获取阿里云刷新tokenGet Aliyundrive Refresh Token | AList Docs (nn.ci)
点击scan qrcode,使用阿里云飘盘扫描二维码后点击 i have scan,会跳转页面,显示刷新token
挂载左侧存储 > 添加 > 阿里云盘open
填写一个挂载点
填写刷新token,保存
操作查看状态:syste ...
kplayer直播推流到b站
参考资料24小时无人值守直播 来自 cnzixn - 酷安 (coolapk.com)
KPlayer文档
下载安装kplayer参考KPlayer文档,快速安装执行以下语句
1curl -fsSL get.kplayer.net | bash
获取推流地址访问哔哩哔哩:头像 > 个人中心 > 直播中心 > 我的直播间 > 开播设置
填写分类与直播间名称后点击开始直播,下面会展示服务器地址与串流密钥
拼接服务器地址与串流密钥,中间没有其他分隔符,组成推流地址。
配置kplayer安装结束后在当前目录下会生成kplayer文件夹,进入会有一个config.json.example文件,cp一份命名为config.json,编辑该文件。
其中,resource>list为直播资源的存放地址,extensions为资源文件的后缀。
output>reconnect_internal 为直播服务器重连时间,秒为单位,建议设置
output>lists>path 为上面组成的推流地址
1234567891011121314151617181920 ...
平板作电脑副屏的方案
小米平板如果平板版本足够新,可以使用小米妙享作为解决方案
要求:电脑端安装小米妙想,平板端安装miui+beta 3.7.0以上版本
实测下来有点不如spacedesk流畅,但感知不强
参考资料:
【小米妙享】在非小米笔记本使用小米妙享中心_哔哩哔哩_bilibili
100ms不到的小米平板5副屏,15秒即可连接成功,小米妙享初体验_哔哩哔哩_bilibili
若平板升级澎湃系统,电脑端需要使用小米电脑管家,具体方式在本博客内搜索小米电脑管家相关文章
其他安卓平板spacedesk官网(墙外):www.spacedesk.net
参考资料:【建议收藏】旧手机不要扔!一分钟教你做电脑副屏_哔哩哔哩_bilibili
注意:
最新版的spacedesk安装无法选择安装位置,会自动散装到Windows/System32,且听说卸载会删除该系统文件夹下所有内容,建议使用参考资料中的旧版(本人安装了最新版,现在不敢卸载)。
该工具没有密码访问功能,建议使用平板开热点,电脑去连接,否则电脑会暴露在你连接的局域网中,所有人都可连接。
建议:
平板端帧数调到60,画质颜色深度适当调低 ...
Milvus安装
参考资料Install Milvus Standalone with Docker Compose (CPU) Milvus documentation
安装环境需求
Docker: Error response from daemon: Ports are not available 端口没被占用,却显示被占用-CSDN博客
milvus 官网
前置条件已安装Docker桌面版(windows系统)
下载docker配置文件https://github.com/milvus-io/milvus/releases/download/v2.3.1/milvus-standalone-docker-compose.yml
下载该文件并将该文件重命名为‘“docker-compose.yml”
执行在该文件的存储目录执行
1docker-compose up -d
错误提示
1Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:9000 -> 0.0.0.0:0: listen ...
Docker桌面版安装
参考资料Install Docker Desktop on Windows | Docker Docs
前置条件已经开启了WSL2
下载Docker DesktopDocker Desktop: The #1 Containerization Tool for Developers | Docker
安装双击下载的安装软件即可
win11启用WSL2
参考资料如何在 Windows 10 上安装 WSL 2 - 知乎 (zhihu.com)
注意配置全程在管理员权限的powershell下运行
启用WSL1dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
这段命令是在Windows系统中使用DISM(Deployment Image Servicing and Management)工具来启用Windows Subsystem for Linux (WSL)功能。下面是这段命令的详细解释:
dism.exe: 这是Windows系统中的Deployment Image Servicing and Management工具,用于创建、准备和部署Windows映像。
/online: 这是一个选项,指示DISM在联机模式下运行,这意味着它直接从原始系统镜像进行操作。
/enable-feature: 这是告诉DISM要启用某个Windows功能。
/featurename:Microsoft ...
使用Filter更改请求目标地址
缺点缺点在于,继续执行filter中的其他filter和转发请求(修改目标地址)只能实现一个,转发之后就算后面继续写了执行过滤器链,也会先执行完请求之后再回来执行。所以建议转发Filter放到最后一个Filter。
实现12345678910111213141516171819202122232425262728293031package com.example.springweb;import org.springframework.stereotype.Component;import javax.servlet.*;import java.io.IOException;/** * @author boranget * @date 2023/10/20 * 注册为Bean的filter将会用于所有请求 */@Componentpublic class AbstractFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletExc ...