xsd
Schemaxsd是Schema的后缀,故通常使用xsd表示Schema
能做什么
定义可以出现在文档中的元素
定义可以出现在文档中的属性
定义哪个元素是子元素
定义子元素的次序
定义子元素的数目
定义元素是否为空,或者是否可包含文本
定义元素和属性的数据类型
定义元素和属性的默认值以及固定值
例子1234567<?xml version="1.0"?><note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body></note>
对应的
12345678910111213141516<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2 ...
Async注解
作用标注在方法上,当调用该方法时,spring会启用一个线程去执行该方法
使用
启用@Async注解
在某个配置类上比如启动类上标注@EnableAsync注解
12345@SpringBootTest@EnableAsyncpublic class AsyncTest { }
定义接口用于让spring注入
12345678/** * @author boranget * @date 2023/11/29 */public interface IAsyncMethod { void A(); void B();}
实现类
12345678910111213141516171819202122package com.example.springweb;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;/** * @author boranget * @date ...
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
机器学习
定义计算机无需明确编程便可进行能力学习
机器学习常用的的两种算法:
监督学习
非监督学习
监督学习训练者给出正确答案用于学习 ,在监督学习中,数据同时带有输入x和标签y
回归算法预测一个数字,会有无限多可能的输出
分类算法输出一个分类,可能的输出是有限的
无监督学习不提供标签,没有标准答案,在无监督学习中,数据仅带有输入。将没有标签的数据自动分组到集群中
聚类算法
异常检测找到不正常的数据
数据降维压缩数据集,去掉不重要的维度
线性回归模型x称为输入,f为模型,y-hat 代表对y值的预测
成本函数fwb(x) = wx + b
m:数据总量
J(w,b) = (1/2m)*求和((yi-hat - yi)^2)
等同于
J(w,b) = (1/2m)*求和((fwb(xi) - yi)^2)
最终目标为找到使得J变小的w和b
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 ...
Vue
核心功能
声明式渲染
可以声明式的描述最终输出的HTML和JavaScript状态之间的关系
响应性
vue会自动跟踪js状态并在其发生变化时响应式的更新DOM
渐进式可以分块拉取依赖
Hello Vue1234567891011121314151617181920212223242526272829303132333435363738<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="./node_modules/vue/dist/vue.global.js"></s ...
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 ...
NodeJS&NPM
NodeJS类似于java虚拟机,可以再浏览器外部运行js,且可以操作系统IO流,安装教程在本博客搜索”node安装“
NPM类似于后端的Maven,但是只能管理依赖
前端框架的下载工具
可将云端仓库中的依赖下载到本地
前端项目的管理工具
项目初始化、依赖管理、研发模式运行、编译
切换镜像1234// 查看npm config get registry// 最新(2024)切换镜像npm config set registry https://registry.npmmirror.com
设置本地仓库地址1234// 查看npm config get prefix// 设置npm config set prefix "E:\tools\NodeJS\NPMGloableRegistry"
npm升级1234// 升级npm install -g npm@9.6.6// 验证npm -v
仓库依赖查询npm | Home (npmjs.com)
npm常用命令
项目初始化
npm init
初始化当前文件夹(项目)的信息,生成packag ...