Ewebeditor
说明
ewebeditor 没有设置序列号,则编辑器不能正常加载
使用其它站点序列号,修改其中 ip 或域名为当前站点 ip 或域名,则编辑器能正常加载,但 word 粘贴功能受限
123456789ewebeditor 登录地址:http://ip:port/ewebeditor/admin/login.jsp账号密码「默认」: admin admin账号密码也可以在 ewebeditor/jsp/config.jsp 文件头部查看序列号示例「word 粘贴功能受限」2:48699:3:2:1::106.12.193.33:d6ac1d1248b005dfaa8bfd3ab5eb664b2:55353:3:2:1::172.16.166.53:fef77c57623fe2cd2bdd4ab8d52349e12:57303:3:2:1::192.168.1.112:79dc72b9100c39cac9ad5dcbc2bedd7a2:56502:3:2:1::106.13.39.73:32de418372e1907001c0c7c24c44f9ff
每个站点都需要 ewebedit ...
VuePress
教程首页 | VuePress (vuejs.org)
VuePress 博客搭建系列 33 篇正式完结! - 冴羽的JavaScript博客 - SegmentFault 思否
TypeScript
网站TypeScript 中文文档 (nodejs.cn)
https://ts.yayujs.com/
Uniapp-接入企业微信客服
参考uniapp接入企业微信客服 – 月半猪博客 (fatterpig.com)
步骤
打开企业微信-应用管理-微信客服
企业微信 (qq.com)
启用微信客服
客服账号-创建账号,选择公司
人工接待配置,添加人员
选择接入场景
在App中接入:在App中接入 (qq.com)
代码示例
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253//界面代码<u-tag :text="$t('联系客服')" shape="circle" class="u-m-r-30" @click="chat" type="info" />//方法chat() { //WORKWXCORPID 企业ID //WORKWXURL 企业客服链接 // #ifdef H5 // 触发跳 ...
加密数据如何实现模糊查询
解密后存储到内存「不推荐」准备
将数据加载到内存中,将密文数据解密得到明文
创建映射Map,例如明文—数据 ID,存储到内存
数据新增、修改【密文数据更新】、删除时,需要同步更新内存中的数据
使用
后端代码,从内存中取出映射数据,根据 key 模糊查询,筛选出满足条件的 value 即数据 ID
根据数据 ID 过滤数据
缺点
数据量大时,会出现 OOM 问题
需要保证数据一致性,也就是数据库数据变化时需要同步更新内存中的数据
多实例部署时,需要解决多实例服务内存中数据一致性问题。对于分布式系统来说,这会增加系统的复杂度,得不偿失
一个后端服务实例数据变化时,除了更新当前服务内存中数据,还要通知其它服务实例更新内存数据
通知会有延迟问题,还要保证通知必达,一定执行等
解密后存储到缓存「不推荐」与上述方案类似,但将解密后的数据放入 Redis 中,虽然解决了多服务实例时数据一致性问题,但解密后的数据放入 Redis,这本身就带来了数据泄露的隐患
使用数据库DES、AES 加密解密函数「不推荐」
在 MySQL 中使用DES_ENCRYPT或DES_DECRYPT 函数,或者更安 ...
Java全栈-上
Java 基础语法基础面向对象特性
封装:将数据和业务逻辑细节封装到类中,对外提供一些方法。1. 简化操作 2. 保护数据 3. 可复用性
继承:类是单继承,接口支持多继承。父类引用指向子类对象称为 向上转型
多态:编译时多态和运行时多态。编译时多态就是方法的重载:方法名一样,但参数不一致。运行时多态就是在运行期间才确定具体对象类型,三个条件:继承、重写、向上转型
访问修饰符
用来控制类、变量、方法和构造函数的可见性和访问权限
public:都可以访问
protect:同包和子类中可以访问
无修饰符:同一个包内的类可以访问
private:仅在类内部可以访问
如何理解private所修饰的方法是隐式的finalprivate 修饰的方法,子类无法继承,更不能重写,所以可以看成是 final 的
final 类如何拓展?final 类无法被继承,但可以使用外观模式进行拓展
final方法可以被重载吗?父类的final方法是不能够被子类重写的,那么final方法可以被重载吗? 答案是可以的,也就是编译时多态
Java 内存模型 JMMJava内存模型(Java Memory Mod ...
Java全栈-下
开发基础常用类库基础
Hutool:国产后起之秀,Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率
Google Guava:Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等
Apache Commons:Apache Commons是对JDK的拓展,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动
Spring常用工具类:Spring作为常用的开发框架,在Spring框架应用中,排在ApacheCommon,Guava, Huool等通用库后,第二优先级可以考虑使用Spring-core-xxx.jar中的util包
JSON库org.json
这是一个非常基础且轻量级的 ...
我对ai的几点认识
很多人只是把 AI 当成一个工具,这太低估 AI 了,简直是一种侮辱
我认为生成式 AI 技术是技术演进过程中的一个巨大里程碑,具有划时代的重大意义
算法-布隆过滤器
布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于测试一个元素是否在一个集合中。它的主要特点是空间效率高,但是可能会有误报(false positives),即判断一个不在集合中的元素可能被错误地标记为在集合中,但它绝不会错误地判断一个在集合中的元素不在集合中(即不存在false negatives)。
原理概述:
位数组:布隆过滤器的核心是一个很长的二进制位数组(一系列比特位),所有位初始都设置为0。
哈希函数:选择多个独立的哈希函数(理想情况下,这些哈希函数之间的碰撞概率很低)。一般情况下,k个不同的哈希函数用于处理每个待插入的元素。
插入操作:当一个元素要加入到布隆过滤器时,它会经过k个哈希函数的处理,每个哈希函数都会产生一个位数组的索引位置。然后,这些索引位置上的比特位都会被置为1。
查询操作:检查某个元素是否存在于集合中时,同样将该元素通过k个哈希函数映射到位数组上,如果所有这些位置的比特位都是1,则算法会报告该元素“可能”在集合中;如果有任何一个位置是0,则可以确定该元素肯定不在集合中。
误报率:由于哈希碰撞的存在,不同的元素可能会被映 ...
Mac-安装JDK17
说明
安装 JDK17
支持在 JDK8、JDK17 等版本间快速切换环境变量JAVA_HOME、PATH
下载https://www.oracle.com/java/technologies/downloads/#jdk17
安装双击安装即可,安装目录如下
1234# cd /Library/Java/JavaVirtualMachines# lsjdk-17.jdk jdk1.8.0_261.jdk
环境变量
打开用户环境配置
1vi ~/.bash_profile
配置如下
123456789101112131415# jdk8 安装目录JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home# jdk17 安装目录JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home# 默认 JDK8export JAVA_HOME=$JAVA_8_HOMEexport PATH=$JAVA_HOM ...